TIMESTAMP_UTC=20251226T191441Z APP=laravel-framework APP_ROOT=/home/amari/projects/manual/laravel-framework APP_GIT=27de0d9eaf APP_REMOTE=https://github.com/laravel/framework.git TESTING_ENGINE_GIT=8059458 CMD=cd /home/amari/projects/testing_engine && SATE_LARAVEL_ROOT=/home/amari/projects/manual/laravel-framework npm run verify:tests; echo EXIT:$? ---- > sate-testing-engine@1.0.0 verify:tests > node scripts/verifyTests.js ====================================================================== 🧪 STATIC TEST VERIFICATION (no execution) ====================================================================== 📁 Project root: /home/amari/projects/manual/laravel-framework 📄 Discovered test files: 877 🧾 Manifest: not written (gate failed) ====================================================================== 🧷 MANUAL STAGE (DISCOVER → SAFETY → QUALITY → KB_ELIGIBLE) ====================================================================== QUALITY_GATE=v1 (ENABLED) TESTS_DISCOVERED=10451 TESTS_APPROVED=5451 MANUAL_INPUT_SCOPE: - source: discoverPhpTestFiles (phpunit.xml/phpunit.xml.dist-aware) - files_total: 877 - files_considered: 877 - tests_discovered: 10451 (count of extracted PHPUnit/Pest test blocks; discovered PHP files include scaffolding/support with no tests) TEST: AuthAccessGateTest::testBasicClosuresCanBeDefined SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testBeforeCanTakeAnArrayCallbackAsObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testBeforeCanTakeAnArrayCallbackAsObjectStatic SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testBeforeCanTakeAnArrayCallbackWithStaticMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testBeforeCanAllowGuests SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAfterCanAllowGuests SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testClosuresCanAllowGuestUsers SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testPoliciesCanAllowGuests SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testPolicyBeforeNotCalledWithGuestsIfItDoesntAllowThem SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testBeforeAndAfterCallbacksCanAllowGuests SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testResourceGatesCanBeDefined SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testCustomResourceGatesCanBeDefined SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testBeforeCallbacksCanOverrideResultIfNecessary SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testBeforeCallbacksDontInterruptGateCheckIfNoValueIsReturned SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAfterCallbacksAreCalledWithResult SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAfterCallbacksCanAllowIfNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAfterCallbacksDoNotOverridePreviousResult SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAfterCallbacksDoNotOverrideEachOther SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testCanDefineGatesUsingBackedEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testBackedEnumInAllows SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testBackedEnumInDenies SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testArrayAbilitiesInAllows SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testArrayAbilitiesInDenies SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testCurrentUserThatIsOnGateAlwaysInjectedIntoClosureCallbacks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testASingleArgumentCanBePassedWhenCheckingAbilities SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testMultipleArgumentsCanBePassedWhenCheckingAbilities SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testClassesCanBeDefinedAsCallbacksUsingAtNotation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testInvokableClassesCanBeDefined SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testGatesCanBeDefinedUsingAnArrayCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testGatesCanBeDefinedUsingAnArrayCallbackWithStaticMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testPolicyClassesCanBeDefinedToHandleChecksForGivenType SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testPolicyClassesHandleChecksForAllSubtypes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testPolicyClassesHandleChecksForInterfaces SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testPolicyConvertsDashToCamel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testPolicyDefaultToFalseIfMethodDoesNotExistAndGateDoesNotExist SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testPolicyClassesCanBeDefinedToHandleChecksForGivenClassName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testPoliciesMayHaveBeforeMethodsToOverrideChecks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testPoliciesAlwaysOverrideClosuresWithSameName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testPoliciesDeferToGatesIfMethodDoesNotExist SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testForUserMethodAttachesANewUserToANewGateInstance SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testForUserMethodAttachesANewUserToANewGateInstanceWithGuessCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testDefineSecondParameterShouldBeStringOrCallable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAuthorizeThrowsUnauthorizedException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAuthorizeThrowsUnauthorizedExceptionWithCustomStatusCode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAuthorizeWithPolicyThatReturnsDeniedResponseObjectThrowsException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testPolicyThatThrowsAuthorizationExceptionIsCaughtInInspect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAuthorizeReturnsAllowedResponse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testResponseReturnsResponseWhenAbilityGranted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testResponseReturnsResponseWhenAbilityDenied SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAuthorizeReturnsAnAllowedResponseForATruthyReturn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAllowIfAuthorizesTrue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAllowIfAuthorizesTruthy SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAllowIfAuthorizesIfGuest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAllowIfAuthorizesCallbackTrue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAllowIfAuthorizesResponseAllowed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAllowIfAuthorizesCallbackResponseAllowed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAllowsIfCallbackAcceptsGuestsWhenAuthenticated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAllowIfCallbackAcceptsGuestsWhenUnauthenticated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAllowIfThrowsExceptionWhenFalse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAllowIfThrowsExceptionWhenCallbackFalse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAllowIfThrowsExceptionWhenResponseDenied SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAllowIfThrowsExceptionWhenCallbackResponseDenied SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAllowIfThrowsExceptionIfUnauthenticated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAllowIfThrowsExceptionIfAuthUserExpectedWhenGuest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testDenyIfAuthorizesFalse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testDenyIfAuthorizesFalsy SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testDenyIfAuthorizesIfGuest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testDenyIfAuthorizesCallbackFalse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testDenyIfAuthorizesResponseAllowed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testDenyIfAuthorizesCallbackResponseAllowed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testDenyIfCallbackAcceptsGuestsWhenAuthenticated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testDenyIfCallbackAcceptsGuestsWhenUnauthenticated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testDenyIfThrowsExceptionWhenTrue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testDenyIfThrowsExceptionWhenCallbackTrue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testDenyIfThrowsExceptionWhenResponseDenied SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testDenyIfThrowsExceptionWhenCallbackResponseDenied SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testDenyIfThrowsExceptionIfUnauthenticated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testDenyIfThrowsExceptionIfAuthUserExpectedWhenGuest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAnyAbilityCheckPassesIfAllPass SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAnyAbilityCheckPassesIfAtLeastOnePasses SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAnyAbilityCheckFailsIfNonePass SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testNoneAbilityCheckPassesIfAllFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testEveryAbilityCheckPassesIfAllPass SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testEveryAbilityCheckFailsIfAtLeastOneFails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testEveryAbilityCheckFailsIfNonePass SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAnyAbilitiesCheckUsingBackedEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testNoneAbilitiesCheckUsingBackedEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testAbilitiesCheckUsingBackedEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testHasAbilities SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testClassesCanBeDefinedAsCallbacksUsingAtNotationForGuests SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testCanSetDenialResponseInConstructor SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessGateTest::testCanSetDenialResponse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthAccessResponseTest::testAllowMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthAccessResponseTest::testDenyMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthAccessResponseTest::testDenyMethodWithNoMessageReturnsNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthAccessResponseTest::testItSetsEmptyStatusOnExceptionWhenAuthorizing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthAccessResponseTest::testItSetsStatusOnExceptionWhenAuthorizing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthAccessResponseTest::testAuthorizeMethodThrowsAuthorizationExceptionWhenResponseDenied SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthAccessResponseTest::testAuthorizeMethodThrowsAuthorizationExceptionWithDefaultMessage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthAccessResponseTest::testThrowIfNeededDoesntThrowAuthorizationExceptionWhenResponseAllowed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthAccessResponseTest::testCastingToStringReturnsMessage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthAccessResponseTest::testResponseToArrayMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthDatabaseTokenRepositoryTest::testCreateInsertsNewRecordIntoTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthDatabaseTokenRepositoryTest::testExistReturnsFalseIfNoRowFoundForUser SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthDatabaseTokenRepositoryTest::testExistReturnsFalseIfRecordIsExpired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthDatabaseTokenRepositoryTest::testExistReturnsTrueIfValidRecordExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthDatabaseTokenRepositoryTest::testExistReturnsFalseIfInvalidToken SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthDatabaseTokenRepositoryTest::testRecentlyCreatedReturnsFalseIfNoRowFoundForUser SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthDatabaseTokenRepositoryTest::testRecentlyCreatedReturnsTrueIfRecordIsRecentlyCreated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthDatabaseTokenRepositoryTest::testRecentlyCreatedReturnsFalseIfValidRecordExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthDatabaseTokenRepositoryTest::testDeleteMethodDeletesByToken SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthDatabaseTokenRepositoryTest::testDeleteExpiredMethodDeletesExpiredTokens SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthDatabaseUserProviderTest::testRetrieveByIDReturnsUserWhenUserIsFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthDatabaseUserProviderTest::testRetrieveByIDReturnsNullWhenUserIsNotFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthDatabaseUserProviderTest::testRetrieveByTokenReturnsUser SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthDatabaseUserProviderTest::testRetrieveTokenWithBadIdentifierReturnsNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthDatabaseUserProviderTest::testRetrieveByBadTokenReturnsNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthDatabaseUserProviderTest::testRetrieveByCredentialsReturnsUserWhenUserIsFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthDatabaseUserProviderTest::testRetrieveByCredentialsAcceptsCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthDatabaseUserProviderTest::testRetrieveByCredentialsReturnsNullWhenUserIsFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthDatabaseUserProviderTest::testRetrieveByCredentialsWithMultiplyPasswordsReturnsNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthDatabaseUserProviderTest::testCredentialValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthDatabaseUserProviderTest::testCredentialValidationFails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthDatabaseUserProviderTest::testCredentialValidationFailsGracefullyWithNullPassword SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthDatabaseUserProviderTest::testRehashPasswordIfRequired SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthDatabaseUserProviderTest::testDontRehashPasswordIfNotRequired SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthEloquentUserProviderTest::testRetrieveByIDReturnsUser SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthEloquentUserProviderTest::testRetrieveByTokenReturnsUser SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthEloquentUserProviderTest::testRetrieveTokenWithBadIdentifierReturnsNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthEloquentUserProviderTest::testRetrievingWithOnlyPasswordCredentialReturnsNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthEloquentUserProviderTest::testRetrieveByBadTokenReturnsNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthEloquentUserProviderTest::testRetrieveByCredentialsReturnsUser SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthEloquentUserProviderTest::testRetrieveByCredentialsAcceptsCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthEloquentUserProviderTest::testRetrieveByCredentialsWithMultiplyPasswordsReturnsNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthEloquentUserProviderTest::testCredentialValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthEloquentUserProviderTest::testCredentialValidationFailed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthEloquentUserProviderTest::testCredentialValidationFailsGracefullyWithNullPassword SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthEloquentUserProviderTest::testRehashPasswordIfRequired SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthEloquentUserProviderTest::testDontRehashPasswordIfNotRequired SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthEloquentUserProviderTest::testModelsCanBeCreated SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthEloquentUserProviderTest::testRegistersQueryHandler SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticatableTest::testItReturnsSameRememberTokenForString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticatableTest::testItReturnsStringAsRememberTokenWhenItWasSetToTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticatableTest::testItReturnsNullWhenRememberTokenNameWasSetToEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticateMiddlewareTest::testItCanGenerateDefinitionViaStaticMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticateMiddlewareTest::testItCanGenerateDefinitionViaStaticMethodForBasic SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticateMiddlewareTest::testDefaultUnauthenticatedThrows SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticateMiddlewareTest::testDefaultUnauthenticatedThrowsWithGuards SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticateMiddlewareTest::testDefaultAuthenticatedKeepsDefaultDriver SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticateMiddlewareTest::testSecondaryAuthenticatedUpdatesDefaultDriver SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticateMiddlewareTest::testMultipleDriversUnauthenticatedThrows SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticateMiddlewareTest::testMultipleDriversUnauthenticatedThrowsWithGuards SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticateMiddlewareTest::testMultipleDriversAuthenticatedUpdatesDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testBasicReturnsNullOnValidAttempt SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testBasicReturnsNullWhenAlreadyLoggedIn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testBasicReturnsResponseOnFailure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testBasicWithExtraConditions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testBasicWithExtraArrayConditions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testAttemptCallsRetrieveByCredentials SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testAttemptReturnsUserInterface SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testAttemptReturnsFalseIfUserNotGiven SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testAttemptAndWithCallbacks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testAttemptRehashesPasswordWhenRequired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testAttemptDoesntRehashPasswordWhenDisabled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testLoginStoresIdentifierInSession SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testSessionGuardIsMacroable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testLoginFiresLoginAndAuthenticatedEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testFailedAttemptFiresFailedEvent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testAuthenticateReturnsUserWhenUserIsNotNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testSetUserFiresAuthenticatedEvent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testAuthenticateThrowsWhenUserIsNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testHasUserReturnsTrueWhenUserIsNotNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testHasUserReturnsFalseWhenUserIsNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testIsAuthedReturnsTrueWhenUserIsNotNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testIsAuthedReturnsFalseWhenUserIsNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testUserMethodReturnsCachedUser SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testNullIsReturnedForUserIfNoUserFound SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testUserIsSetToRetrievedUser SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testLogoutRemovesSessionTokenAndRememberMeCookie SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testLogoutDoesNotEnqueueRememberMeCookieForDeletionIfCookieDoesntExist SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testLogoutFiresLogoutEvent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testLogoutDoesNotSetRememberTokenIfNotPreviouslySet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testLogoutCurrentDeviceRemovesRememberMeCookie SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testLogoutCurrentDeviceDoesNotEnqueueRememberMeCookieForDeletionIfCookieDoesntExist SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testLogoutCurrentDeviceFiresLogoutEvent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testLoginMethodQueuesCookieWhenRemembering SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testLoginMethodQueuesCookieWhenRememberingAndAllowsOverride SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testLoginMethodCreatesRememberTokenIfOneDoesntExist SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testLoginUsingIdLogsInWithUser SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testLoginUsingIdFailure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testOnceUsingIdSetsUser SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testOnceUsingIdFailure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testUserUsesRememberCookieIfItExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testLoginOnceSetsUser SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testLoginOnceFailure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthGuardTest::testForgetUserSetsUserToNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthHandlesAuthorizationTest::testAllowMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthHandlesAuthorizationTest::testDenyMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthHandlesAuthorizationTest::testDenyHasNullStatus SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthHandlesAuthorizationTest::testItCanDenyWithStatus SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthHandlesAuthorizationTest::testItCanDenyAsNotFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthListenersSendEmailVerificationNotificationHandleFunctionTest::testWillExecuted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthListenersSendEmailVerificationNotificationHandleFunctionTest::testUserIsNotInstanceOfMustVerifyEmail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthListenersSendEmailVerificationNotificationHandleFunctionTest::testHasVerifiedEmailAsTrue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthorizeMiddlewareTest::testItCanGenerateDefinitionViaStaticMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthorizeMiddlewareTest::testSimpleAbilityUnauthorized SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthorizeMiddlewareTest::testSimpleAbilityAuthorized SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthorizeMiddlewareTest::testSimpleAbilityWithStringParameter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthorizeMiddlewareTest::testSimpleAbilityWithBackedEnumParameter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthorizeMiddlewareTest::testSimpleAbilityWithNullParameter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthorizeMiddlewareTest::testSimpleAbilityWithOptionalParameter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthorizeMiddlewareTest::testSimpleAbilityWithStringParameterFromRouteParameter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthorizeMiddlewareTest::testSimpleAbilityWithStringParameter0FromRouteParameter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthorizeMiddlewareTest::testModelTypeUnauthorized SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthorizeMiddlewareTest::testModelTypeAuthorized SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthorizeMiddlewareTest::testModelUnauthorized SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthorizeMiddlewareTest::testModelAuthorized SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthorizeMiddlewareTest::testModelInstanceAsParameter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthorizesResourcesTest::testCreateMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthorizesResourcesTest::testStoreMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthorizesResourcesTest::testShowMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthorizesResourcesTest::testEditMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthorizesResourcesTest::testUpdateMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthorizesResourcesTest::testDestroyMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthPasswordBrokerTest::testIfUserIsNotFoundErrorRedirectIsReturned SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthPasswordBrokerTest::testIfTokenIsRecentlyCreated SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthPasswordBrokerTest::testGetUserThrowsExceptionIfUserDoesntImplementCanResetPassword SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthPasswordBrokerTest::testUserIsRetrievedByCredentials SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthPasswordBrokerTest::testBrokerCreatesTokenAndRedirectsWithoutError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthPasswordBrokerTest::testRedirectIsReturnedByResetWhenUserCredentialsInvalid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthPasswordBrokerTest::testRedirectReturnedByRemindWhenRecordDoesntExistInTable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthPasswordBrokerTest::testResetRemovesRecordOnReminderTableAndCallsCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthPasswordBrokerTest::testExecutesCallbackInsteadOfSendingNotification SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthTokenGuardTest::testUserCanBeRetrievedByQueryStringVariable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthTokenGuardTest::testTokenCanBeHashed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthTokenGuardTest::testUserCanBeRetrievedByAuthHeaders SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthTokenGuardTest::testUserCanBeRetrievedByBearerToken SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthTokenGuardTest::testValidateCanDetermineIfCredentialsAreValid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthTokenGuardTest::testValidateCanDetermineIfCredentialsAreInvalid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthTokenGuardTest::testValidateIfApiTokenIsEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthTokenGuardTest::testItAllowsToPassCustomRequestInSetterAndUseItForValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthTokenGuardTest::testUserCanBeRetrievedByBearerTokenWithCustomKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthTokenGuardTest::testUserCanBeRetrievedByQueryStringVariableWithCustomKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthTokenGuardTest::testUserCanBeRetrievedByAuthHeadersWithCustomField SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthTokenGuardTest::testValidateCanDetermineIfCredentialsAreValidWithCustomKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthTokenGuardTest::testValidateCanDetermineIfCredentialsAreInvalidWithCustomKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthTokenGuardTest::testValidateIfApiTokenIsEmptyWithCustomKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnsureEmailIsVerifiedTest::testItCanGenerateDefinitionViaStaticMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedirectIfAuthenticatedMiddlewareTest::testItCanGenerateDefinitionViaStaticMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AblyBroadcasterTest::testAuthCallValidAuthenticationResponseWithPrivateChannelWhenCallbackReturnTrue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AblyBroadcasterTest::testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenCallbackReturnFalse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AblyBroadcasterTest::testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenRequestUserNotFound SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AblyBroadcasterTest::testAuthCallValidAuthenticationResponseWithPresenceChannelWhenCallbackReturnAnArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AblyBroadcasterTest::testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenCallbackReturnNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AblyBroadcasterTest::testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenRequestUserNotFound SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testExtractingParametersWhileCheckingForUserAccess SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testCanUseChannelClasses SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testModelRouteBinding SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testUnknownChannelAuthHandlerTypeThrowsException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testCanRegisterChannelsAsClasses SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testNotFoundThrowsHttpException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testCanRegisterChannelsWithoutOptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testCanRegisterChannelsWithOptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testCanRetrieveChannelsOptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testCanRetrieveChannelsOptionsUsingAChannelNameContainingArgs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testCanRetrieveChannelsOptionsWhenMultipleChannelsAreRegistered SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testDontRetrieveChannelsOptionsWhenChannelDoesntExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testRetrieveUserWithoutGuard SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testRetrieveUserWithOneGuardUsingAStringForSpecifyingGuard SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testRetrieveUserWithMultipleGuardsAndRespectGuardsOrder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testRetrieveUserDontUseDefaultGuardWhenOneGuardSpecified SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testRetrieveUserDontUseDefaultGuardWhenMultipleGuardsSpecified SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testUserAuthenticationWithValidUser SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testUserAuthenticationWithInvalidUser SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testUserAuthenticationWithoutResolve SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcasterTest::testChannelNameMatchPattern SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcastEventTest::testBasicEventBroadcastParameterFormatting SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcastEventTest::testManualParameterSpecification SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcastEventTest::testSpecificBroadcasterGiven SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcastEventTest::testSpecificChannelsPerConnection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcastEventTest::testMiddlewareProxiesMiddlewareFromUnderlyingEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcastEventTest::testMiddlewareProxiesFailedHandlerFromUnderlyingEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PusherBroadcasterTest::testAuthCallValidAuthenticationResponseWithPrivateChannelWhenCallbackReturnTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PusherBroadcasterTest::testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenCallbackReturnFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PusherBroadcasterTest::testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenRequestUserNotFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PusherBroadcasterTest::testAuthCallValidAuthenticationResponseWithPresenceChannelWhenCallbackReturnAnArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PusherBroadcasterTest::testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenCallbackReturnNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PusherBroadcasterTest::testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenRequestUserNotFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PusherBroadcasterTest::testValidAuthenticationResponseCallPusherSocketAuthMethodWithPrivateChannel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PusherBroadcasterTest::testValidAuthenticationResponseCallPusherPresenceAuthMethodWithPresenceChannel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PusherBroadcasterTest::testUserAuthenticationForPusher SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisBroadcasterTest::testAuthCallValidAuthenticationResponseWithPrivateChannelWhenCallbackReturnTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisBroadcasterTest::testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenCallbackReturnFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisBroadcasterTest::testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenRequestUserNotFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisBroadcasterTest::testAuthCallValidAuthenticationResponseWithPresenceChannelWhenCallbackReturnAnArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisBroadcasterTest::testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenCallbackReturnNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisBroadcasterTest::testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenRequestUserNotFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisBroadcasterTest::testValidAuthenticationResponseWithPrivateChannel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisBroadcasterTest::testValidAuthenticationResponseWithPresenceChannel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: UsePusherChannelsNamesTest::testChannelNameNormalization SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: UsePusherChannelsNamesTest::testChannelNameNormalizationSpecialCase SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: UsePusherChannelsNamesTest::testChannelNamePatternMatching SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: UsePusherChannelsNamesTest::testIsGuardedChannel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FakeBroadcasterUsingPusherChannelsNames::testChannelNameMatchesPattern SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusBatchableTest::test_batch_may_be_retrieved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusBatchableTest::test_with_fake_batch_sets_and_returns_fake SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusBatchableTest::test_batching_reflects_cancelled_state SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusBatchTest::test_jobs_can_be_added_to_the_batch SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusBatchTest::test_jobs_can_be_added_to_pending_batch SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusBatchTest::test_jobs_can_be_added_to_the_pending_batch_from_iterable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusBatchTest::test_processed_jobs_can_be_calculated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusBatchTest::test_successful_jobs_can_be_recorded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusBatchTest::test_failed_jobs_can_be_recorded_while_not_allowing_failures SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusBatchTest::test_failed_jobs_can_be_recorded_while_allowing_failures SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusBatchTest::test_failure_callbacks_execute_correctly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusBatchTest::test_batch_can_be_cancelled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusBatchTest::test_batch_can_be_deleted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusBatchTest::test_batch_state_can_be_inspected SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusBatchTest::test_chain_can_be_added_to_batch SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusBatchTest::test_chained_closure_after_multiple_batches_is_properly_dispatched SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusBatchTest::test_options_serialization_on_postgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusBatchTest::test_options_unserialize_on_postgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusDispatcherTest::testCommandsThatShouldQueueIsQueued SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusDispatcherTest::testCommandsThatShouldQueueIsQueuedUsingCustomHandler SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusDispatcherTest::testCommandsThatShouldQueueIsQueuedUsingCustomQueueAndDelay SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusDispatcherTest::testDispatchNowShouldNeverQueue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusDispatcherTest::testDispatcherCanDispatchStandAloneHandler SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusDispatcherTest::testOnConnectionOnJobWhenDispatching SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusPendingBatchTest::test_pending_batch_may_be_configured_and_dispatched SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusPendingBatchTest::test_batch_is_deleted_from_storage_if_exception_thrown_during_batching SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusPendingBatchTest::test_batch_is_dispatched_when_dispatchif_is_true SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusPendingBatchTest::test_batch_is_not_dispatched_when_dispatchif_is_false SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusPendingBatchTest::test_batch_is_dispatched_when_dispatchunless_is_false SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusPendingBatchTest::test_batch_is_not_dispatched_when_dispatchunless_is_true SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusPendingBatchTest::test_batch_before_event_is_called SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusPendingBatchTest::test_it_throws_exception_if_batched_job_is_not_batchable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusPendingBatchTest::test_it_throws_an_exception_if_batched_job_contains_batch_with_nonbatchable_job SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusPendingBatchTest::test_it_can_batch_a_closure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusPendingBatchTest::test_allow_failures_with_boolean_true_enables_failure_tolerance SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusPendingBatchTest::test_allow_failures_with_boolean_false_disables_failure_tolerance SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusPendingBatchTest::test_allow_failures_with_single_closure_registers_callback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusPendingBatchTest::test_allow_failures_with_single_callable_registers_callback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusPendingBatchTest::test_allow_failures_with_array_of_callables_registers_multiple_callbacks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusPendingBatchTest::test_allow_failures_registers_only_valid_callbacks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusPendingBatchTest::test_allow_failures_with_empty_array_enables_tolerance_without_callbacks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusPendingBatchTest::test_allow_failures_is_chainable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusPendingBatchTest::test_failure_callbacks_accessor_returns_registered_callbacks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BusPendingDispatchTest::testOnConnection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusPendingDispatchTest::testOnQueue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusPendingDispatchTest::testAllOnConnection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusPendingDispatchTest::testAllOnQueue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusPendingDispatchTest::testDelay SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusPendingDispatchTest::testWithoutDelay SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusPendingDispatchTest::testAfterCommit SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusPendingDispatchTest::testBeforeCommit SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusPendingDispatchTest::testChain SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusPendingDispatchTest::testAfterResponse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusPendingDispatchTest::testGetJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BusPendingDispatchTest::testDynamicallyProxyMethods SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueableTest::testOnConnection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueableTest::testAllOnConnection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueableTest::testOnQueue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueableTest::testAllOnQueue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheApcStoreTest::testGetReturnsNullWhenNotFound SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheApcStoreTest::testAPCValueIsReturned SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheApcStoreTest::testAPCFalseValueIsReturned SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheApcStoreTest::testGetMultipleReturnsNullWhenNotFoundAndValueWhenFound SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheApcStoreTest::testSetMethodProperlyCallsAPC SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheApcStoreTest::testSetMultipleMethodProperlyCallsAPC SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheApcStoreTest::testIncrementMethodProperlyCallsAPC SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheApcStoreTest::testDecrementMethodProperlyCallsAPC SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheApcStoreTest::testStoreItemForeverProperlyCallsAPC SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheApcStoreTest::testForgetMethodProperlyCallsAPC SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheApcStoreTest::testFlushesCached SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testItemsCanBeSetAndRetrieved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testCacheTtl SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testMultipleItemsCanBeSetAndRetrieved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testItemsCanExpire SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testStoreItemForeverProperlyStoresInArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testValuesCanBeIncremented SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testValuesGetCastedByIncrementOrDecrement SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testIncrementNonNumericValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testNonExistingKeysCanBeIncremented SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testExpiredKeysAreIncrementedLikeNonExistingKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testValuesCanBeDecremented SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testItemsCanBeRemoved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testItemsCanBeFlushed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testCacheKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testCannotAcquireLockTwice SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testCanAcquireLockAgainAfterExpiry SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testLockExpirationLowerBoundary SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testLockWithNoExpirationNeverExpires SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testCanAcquireLockAfterRelease SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testAnotherOwnerCannotReleaseLock SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testAnotherOwnerCanForceReleaseALock SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testValuesAreNotStoredByReference SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testValuesAreStoredByReferenceIfSerializationIsDisabled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testReleasingLockAfterAlreadyForceReleasedByAnotherOwnerFails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testOwnerStatusCanBeCheckedAfterRestoringLock SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testOtherOwnerDoesNotOwnLockAfterRestore SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testRestoringNonExistingLockDoesNotOwnAnything SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testCanGetAll SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheArrayStoreTest::testCanGetAllWhenSerialized SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheDatabaseStoreTest::testNullIsReturnedWhenItemNotFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheDatabaseStoreTest::testNullIsReturnedAndItemDeletedWhenItemIsExpired SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheDatabaseStoreTest::testDecryptedValueIsReturnedWhenItemIsValid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheDatabaseStoreTest::testValueIsReturnedOnPostgres SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheDatabaseStoreTest::testValueIsReturnedOnSqlite SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheDatabaseStoreTest::testValueIsUpserted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheDatabaseStoreTest::testValueIsUpsertedOnPostgres SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheDatabaseStoreTest::testValueIsUpsertedOnSqlite SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheDatabaseStoreTest::testForeverCallsStoreItemWithReallyLongTime SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheDatabaseStoreTest::testItemsMayBeRemovedFromCache SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheDatabaseStoreTest::testItemsMayBeFlushedFromCache SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheDatabaseStoreTest::testIncrementReturnsCorrectValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheDatabaseStoreTest::testDecrementReturnsCorrectValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheEventsTest::testHasTriggersEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventsTest::testGetTriggersEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventsTest::testPullTriggersEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventsTest::testPullTriggersEventsUsingTags SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventsTest::testPutTriggersEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventsTest::testAddTriggersEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventsTest::testForeverTriggersEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventsTest::testRememberTriggersEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventsTest::testRememberForeverTriggersEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventsTest::testForgetTriggersEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventsTest::testForgetDoesTriggerFailedEventOnFailure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventsTest::testFlushTriggersEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventsTest::testFlushFailureDoesDispatchEvent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testNullIsReturnedIfFileDoesntExist SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testPutCreatesMissingDirectories SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testPutWillConsiderZeroAsEternalTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testPutWillConsiderBigValuesAsEternalTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testExpiredItemsReturnNullAndGetDeleted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testValidItemReturnsContents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testStoreItemProperlyStoresValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testStoreItemProperlySetsPermissions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testStoreItemDirectoryProperlySetsPermissions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testForeversAreStoredWithHighTimestamp SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testForeversAreNotRemovedOnIncrement SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testIncrementExpiredKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testIncrementCanAtomicallyJump SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testDecrementCanAtomicallyJump SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testIncrementNonNumericValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testIncrementNonExistentKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testIncrementDoesNotExtendCacheLife SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testRemoveDeletesFileDoesntExist SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testRemoveDeletesFile SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testFlushCleansDirectory SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testFlushFailsDirectoryClean SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testFlushIgnoreNonExistingDirectory SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheFileStoreTest::testItHandlesForgettingNonFlexibleKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheManagerTest::testCustomDriverClosureBoundObjectIsCacheManager SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheManagerTest::testCustomDriverOverridesInternalDrivers SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheManagerTest::testItCanBuildRepositories SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheManagerTest::testItMakesRepositoryWhenContainerHasNoDispatcher SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheManagerTest::testItRefreshesDispatcherOnAllStores SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheManagerTest::testItSetsDefaultDriverChangesGlobalConfig SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheManagerTest::testItPurgesMemoizedStoreObjects SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheManagerTest::testForgetDriver SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheManagerTest::testForgetDriverForgets SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheManagerTest::testThrowExceptionWhenUnknownDriverIsUsed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheManagerTest::testThrowExceptionWhenUnknownStoreIsUsed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheManagerTest::testMakesRepositoryWithoutDispatcherWhenEventsDisabled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheMemcachedConnectorTest::testServersAreAddedCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheMemcachedConnectorTest::testServersAreAddedCorrectlyWithPersistentConnection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheMemcachedConnectorTest::testServersAreAddedCorrectlyWithValidOptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheMemcachedConnectorTest::testServersAreAddedCorrectlyWithSaslCredentials SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheMemcachedStoreTest::testGetReturnsNullWhenNotFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheMemcachedStoreTest::testMemcacheValueIsReturned SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheMemcachedStoreTest::testMemcacheGetMultiValuesAreReturnedWithCorrectKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheMemcachedStoreTest::testSetMethodProperlyCallsMemcache SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheMemcachedStoreTest::testIncrementMethodProperlyCallsMemcache SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheMemcachedStoreTest::testDecrementMethodProperlyCallsMemcache SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheMemcachedStoreTest::testStoreItemForeverProperlyCallsMemcached SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheMemcachedStoreTest::testForgetMethodProperlyCallsMemcache SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheMemcachedStoreTest::testFlushesCached SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheMemcachedStoreTest::testGetAndSetPrefix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheNullStoreTest::testItemsCanNotBeCached SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheNullStoreTest::testGetMultipleReturnsMultipleNulls SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheNullStoreTest::testIncrementAndDecrementReturnFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRateLimiterTest::testTooManyAttemptsReturnTrueIfAlreadyLockedOut SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRateLimiterTest::testHitProperlyIncrementsAttemptCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRateLimiterTest::testIncrementProperlyIncrementsAttemptCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRateLimiterTest::testDecrementProperlyDecrementsAttemptCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRateLimiterTest::testHitHasNoMemoryLeak SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRateLimiterTest::testRemainingIsNotNegative SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRateLimiterTest::testRetriesLeftReturnsCorrectCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRateLimiterTest::testClearClearsTheCacheKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRateLimiterTest::testAvailableInReturnsPositiveValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRateLimiterTest::testAttemptsCallbackReturnsTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRateLimiterTest::testAttemptsCallbackReturnsCallbackReturn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRateLimiterTest::testAttemptsCallbackReturnsFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRateLimiterTest::testKeysAreSanitizedFromUnicodeCharacters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRateLimiterTest::testKeyIsSanitizedOnlyOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRedisStoreTest::testGetReturnsNullWhenNotFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRedisStoreTest::testRedisValueIsReturned SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRedisStoreTest::testRedisMultipleValuesAreReturned SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRedisStoreTest::testRedisValueIsReturnedForNumerics SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRedisStoreTest::testSetMethodProperlyCallsRedis SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRedisStoreTest::testSetMultipleMethodProperlyCallsRedis SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRedisStoreTest::testSetMethodProperlyCallsRedisForNumerics SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRedisStoreTest::testIncrementMethodProperlyCallsRedis SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRedisStoreTest::testDecrementMethodProperlyCallsRedis SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRedisStoreTest::testStoreItemForeverProperlyCallsRedis SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRedisStoreTest::testForgetMethodProperlyCallsRedis SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRedisStoreTest::testFlushesCached SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRedisStoreTest::testGetAndSetPrefix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testGetReturnsValueFromCache SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testGetReturnsMultipleValuesFromCacheWhenGivenAnArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testGetReturnsMultipleValuesFromCacheWhenGivenAnArrayWithDefaultValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testGetReturnsMultipleValuesFromCacheWhenGivenAnArrayOfOneTwoThree SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testDefaultValueIsReturned SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testSettingDefaultCacheTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testHasMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testMissingMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testRememberMethodCallsPutAndReturnsDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testRememberForeverMethodCallsForeverAndReturnsDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testPuttingMultipleItemsInCache SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testSettingMultipleItemsInCacheArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testSettingMultipleItemsInCacheIterator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testPutWithNullTTLRemembersItemForever SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testPutWithDatetimeInPastOrZeroSecondsRemovesOldItem SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testPutManyWithNullTTLRemembersItemsForever SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testAddWithStoreFailureReturnsFalse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testCacheAddCallsRedisStoreAdd SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testAddMethodCanAcceptDateIntervals SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testAddMethodCanAcceptDateTimeInterface SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testAddWithNullTTLRemembersItemForever SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testAddWithDatetimeInPastOrZeroSecondsReturnsImmediately SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testGetSeconds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testRegisterMacroWithNonStaticCall SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testForgettingCacheKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testRemovingCacheKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testSettingCache SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testClearingWholeCache SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testGettingMultipleValuesFromCache SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testRemovingMultipleKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testRemovingMultipleKeysFailsIfOneFails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testAllTagsArePassedToTaggableStore SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testItThrowsExceptionWhenStoreDoesNotSupportTags SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testTagMethodReturnsTaggedCache SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testPossibleInputTypesToTags SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testEventDispatcherIsPassedToStoreFromRepository SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testDefaultCacheLifeTimeIsSetOnTaggableStore SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testTaggableRepositoriesSupportTags SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheRepositoryTest::testNonTaggableRepositoryDoesNotSupportTags SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheSessionStoreTest::testItemsCanBeSetAndRetrieved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSessionStoreTest::testCacheTtl SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSessionStoreTest::testMultipleItemsCanBeSetAndRetrieved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSessionStoreTest::testItemsCanExpire SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSessionStoreTest::testStoreItemForeverProperlyStoresInArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSessionStoreTest::testValuesCanBeIncremented SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSessionStoreTest::testValuesGetCastedByIncrementOrDecrement SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSessionStoreTest::testIncrementNonNumericValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSessionStoreTest::testNonExistingKeysCanBeIncremented SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSessionStoreTest::testExpiredKeysAreIncrementedLikeNonExistingKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSessionStoreTest::testValuesCanBeDecremented SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSessionStoreTest::testItemsCanBeRemoved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSessionStoreTest::testItemsCanBeFlushed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSessionStoreTest::testCacheKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSessionStoreTest::testItemKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSessionStoreTest::testValuesAreStoredByReference SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSessionStoreTest::testCanGetAll SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSpyMemoTest::test_cache_spy_works_with_memoized_cache SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSpyMemoTest::test_cache_spy_tracks_remember_on_memoized_cache_as_described_in_issue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSpyMemoTest::test_cache_spy_tracks_remember_calls_on_memoized_cache SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheSpyMemoTest::test_cache_spy_memo_returns_spied_repository SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTaggedCacheTest::testCacheCanBeSavedWithMultipleTags SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTaggedCacheTest::testCacheCanBeSetWithDatetimeArgument SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTaggedCacheTest::testCacheSavedWithMultipleTagsCanBeFlushed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTaggedCacheTest::testTagsWithStringArgument SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTaggedCacheTest::testWithIncrement SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTaggedCacheTest::testWithDecrement SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTaggedCacheTest::testMany SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTaggedCacheTest::testManyWithDefaultValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTaggedCacheTest::testGetMultiple SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTaggedCacheTest::testGetMultipleWithDefaultValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTaggedCacheTest::testTagsWithIncrementCanBeFlushed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTaggedCacheTest::testTagsWithDecrementCanBeFlushed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTaggedCacheTest::testTagsCacheForever SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ClearCommandTest::testClearWithNoStoreArgument SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ClearCommandTest::testClearWithStoreArgument SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ClearCommandTest::testClearWithInvalidStoreArgument SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ClearCommandTest::testClearWithTagsOption SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ClearCommandTest::testClearWithStoreArgumentAndTagsOption SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ClearCommandTest::testClearWillClearRealTimeFacades SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ClearCommandTest::testClearWillNotClearRealTimeFacadesIfCacheDirectoryDoesntExist SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LimitTest::testConstructors SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RateLimiterTest::testRegisterNamedRateLimiter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RateLimiterTest::testShouldUseOriginKeyAsPrefixWhenMultipleLimiterWithSameKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConditionableTest::testWhen SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConditionableTest::testUnless SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testGetValueWhenKeyContainDot SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testGetBooleanValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testGetNullValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testConstruct SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testHasIsTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testHasIsFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testGet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testGetWithArrayOfKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testGetMany SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testGetWithDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testSetArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testPrepend SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testPush SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testPrependWithNewKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testPushWithNewKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testAll SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testOffsetExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testOffsetGet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testOffsetSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testOffsetUnset SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testItIsMacroable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testItGetsAsString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testItThrowsAnExceptionWhenTryingToGetNonStringValueAsString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testItGetsAsArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testItThrowsAnExceptionWhenTryingToGetNonArrayValueAsArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testItGetsAsCollection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testItGetsAsBoolean SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testItThrowsAnExceptionWhenTryingToGetNonBooleanValueAsBoolean SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testItGetsAsInteger SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testItThrowsAnExceptionWhenTryingToGetNonIntegerValueAsInteger SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testItGetsAsFloat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testItThrowsAnExceptionWhenTryingToGetNonFloatValueAsFloat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testCanCreateMutex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testCannotCreateMutexIfAlreadyExist SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testCanCreateMutexWithCustomConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testCanCreateMutexWithLockProvider SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testCanCreateMutexWithCustomLockProviderConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testCannotCreateMutexIfAlreadyExistWithLockProvider SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testCanCreateMutexWithCustomConnectionWithLockProvider SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testCommandMutexNameWithoutIsolatedMutexNameMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testCommandMutexNameWithIsolatedMutexNameMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testCanRunIsolatedCommandIfNotBlocked SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testCannotRunIsolatedCommandIfBlocked SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testCanRunCommandAgainAfterOtherCommandFinished SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testCanRunCommandAgainNonAutomated SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CommandTest::testCallingClassCommandResolveCommandViaApplicationResolution SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testGettingCommandArgumentsAndOptionsByClass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testTheInputSetterOverwrite SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testTheOutputSetterOverwrite SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testSetHidden SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testHiddenProperty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAliasesProperty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testChoiceIsSingleSelectByDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testChoiceWithMultiselect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CommandTrapTest::testTrapWhenAvailable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CommandTrapTest::testTrapWhenNotAvailable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CommandTrapTest::testUntrap SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CommandTrapTest::testNestedTraps SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: InteractsWithIOTest::testWithProgressBarIterable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: InteractsWithIOTest::testWithProgressBarInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConfiguresPromptsTest::testSelectFallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConfiguresPromptsTest::testMultiselectFallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testAddSetsLaravelInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testLaravelNotSetOnSymfonyCommands SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testResolveAddsCommandViaApplicationResolution SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testResolvingCommandsWithAliasViaAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testResolvingCommandsWithAliasViaProperty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testResolvingCommandsWithNoAliasViaAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testResolvingCommandsWithNoAliasViaProperty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testCallFullyStringCommandLine SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testCommandInputPromptsWhenRequiredArgumentIsMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testCommandInputDoesntPromptWhenRequiredArgumentIsPassed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testCommandInputPromptsWhenRequiredArgumentsAreMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testCommandInputDoesntPromptWhenRequiredArgumentsArePassed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testCallMethodCanCallArtisanCommandUsingCommandClassObject SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testLoadIgnoresTestFiles SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleEventSchedulerTest::testMutexCanReceiveCustomStore SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleEventSchedulerTest::testExecCreatesNewCommand SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleEventSchedulerTest::testExecCreatesNewCommandWithTimezone SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleEventSchedulerTest::testCommandCreatesNewArtisanCommand SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleEventSchedulerTest::testCreateNewArtisanCommandUsingCommandClass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleEventSchedulerTest::testCreateNewArtisanCommandUsingCommandClassObject SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItUsesCommandDescriptionAsEventDescription SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItShouldBePossibleToOverwriteTheDescription SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testCallCreatesNewJobWithTimezone SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleParserTest::testBasicParameterParsing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleParserTest::testShortcutNameParsing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleParserTest::testDefaultValueParsing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleParserTest::testArgumentDefaultValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleParserTest::testOptionDefaultValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleParserTest::testNameIsSpacesException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleParserTest::testNameInEmptyException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleScheduledEventTest::testBasicCronCompilation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleScheduledEventTest::testEventIsDueCheck SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleScheduledEventTest::testTimeBetweenChecks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleScheduledEventTest::testTimeUnlessBetweenChecks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OutputStyleTest::testDetectsNewLine SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OutputStyleTest::testDetectsNewLineOnUnderlyingOutput SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OutputStyleTest::testDetectsNewLineOnWrite SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OutputStyleTest::testDetectsNewLineOnWriteln SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OutputStyleTest::testDetectsNewLineOnlyOnOutput SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheEventMutexTest::testPreventOverlap SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventMutexTest::testCustomConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventMutexTest::testPreventOverlapFails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventMutexTest::testOverlapsForNonRunningTask SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventMutexTest::testOverlapsForRunningTask SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventMutexTest::testResetOverlap SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventMutexTest::testPreventOverlapWithLockProvider SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventMutexTest::testPreventOverlapFailsWithLockProvider SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventMutexTest::testOverlapsForNonRunningTaskWithLockProvider SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventMutexTest::testOverlapsForRunningTaskWithLockProvider SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheEventMutexTest::testResetOverlapWithLockProvider SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheSchedulingMutexTest::testMutexReceivesCorrectCreate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheSchedulingMutexTest::testCanUseCustomConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheSchedulingMutexTest::testPreventsMultipleRuns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheSchedulingMutexTest::testChecksForNonRunSchedule SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheSchedulingMutexTest::testChecksForAlreadyRunSchedule SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheSchedulingMutexTest::testMutexReceivesCorrectCreateWithLockProvider SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheSchedulingMutexTest::testPreventsMultipleRunsWithLockProvider SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheSchedulingMutexTest::testChecksForNonRunScheduleWithLockProvider SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheSchedulingMutexTest::testChecksForAlreadyRunScheduleWithLockProvider SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventTest::testBuildCommandUsingUnix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventTest::testBuildCommandUsingWindows SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventTest::testBuildCommandInBackgroundUsingUnix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventTest::testBuildCommandInBackgroundUsingWindows SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventTest::testBuildCommandSendOutputTo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventTest::testBuildCommandAppendOutput SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventTest::testNextRunDate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventTest::testCustomMutexName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventTest::testDaysOfMonthMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testEveryMinute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testEveryXMinutes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testDaily SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testDailyAt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testDailyAtParsesMinutesAndIgnoresSecondsWhenSecondsAreDefined SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testTwiceDaily SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testTwiceDailyAt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testWeekly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testWeeklyOn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testOverrideWithHourly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testHourly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testMonthly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testMonthlyOn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testLastDayOfMonth SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testTwiceMonthly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testTwiceMonthlyAtTime SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testMonthlyOnWithMinutes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testWeekdaysDaily SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testWeekdaysHourly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testWeekdays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testWeekends SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testSundays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testMondays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testTuesdays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testWednesdays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testThursdays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testFridays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testSaturdays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testQuarterly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testYearly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testYearlyOn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testYearlyOnMondaysOnly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testYearlyOnTuesdaysAndDayOfMonth20 SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrequencyTest::testFrequencyMacro SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleTest::testJobHonoursDisplayNameIfMethodExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testJobIsNotInstantiatedIfSuppliedAsClassname SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SignalsTest::testRegister SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SignalsTest::testUnregister SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ComponentsTest::testAlert SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ComponentsTest::testBulletList SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ComponentsTest::testSuccess SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ComponentsTest::testError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ComponentsTest::testInfo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ComponentsTest::testConfirm SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ComponentsTest::testChoice SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ComponentsTest::testTask SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ComponentsTest::testTwoColumnDetail SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ComponentsTest::testWarn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AfterResolvingAttributeCallbackTest::testCallbackIsCalledAfterDependencyResolutionWithAttribute SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AfterResolvingAttributeCallbackTest::testCallbackIsCalledAfterClassWithAttributeIsResolved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AfterResolvingAttributeCallbackTest::testCallbackIsCalledAfterClassWithConstructorAndAttributeIsResolved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AfterResolvingAttributeCallbackTest::testCallbackIsCalledOnAppCall SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ContainerCallTest::testCallWithAtSignBasedClassReferencesWithoutMethodThrowsException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerCallTest::testCallWithAtSignBasedClassReferences SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerCallTest::testCallWithCallableArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerCallTest::testCallWithStaticMethodNameString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerCallTest::testCallWithGlobalMethodName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerCallTest::testCallWithBoundMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerCallTest::testBindMethodAcceptsAnArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerCallTest::testClosureCallWithInjectedDependency SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerCallTest::testCallWithDependencies SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerCallTest::testCallWithVariadicDependency SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerCallTest::testCallWithCallableObject SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerCallTest::testCallWithCallableClassString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerCallTest::testCallWithoutRequiredParamsThrowsException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testCallWithUnnamedParametersThrowsException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testCallWithoutRequiredParamsOnClosureThrowsException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerExtendTest::testExtendedBindings SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerExtendTest::testExtendInstancesArePreserved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerExtendTest::testExtendIsLazyInitialized SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerExtendTest::testExtendCanBeCalledBeforeBind SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerExtendTest::testExtendInstanceRebindingCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerExtendTest::testExtendBindRebindingCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerExtendTest::testExtensionWorksOnAliasedBindings SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerExtendTest::testMultipleExtends SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerExtendTest::testUnsetExtend SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerExtendTest::testExtendContextualBinding SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerExtendTest::testExtendContextualBindingAfterResolution SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerResolveNonInstantiableTest::testResolvingNonInstantiableWithDefaultRemovesWiths SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerResolveNonInstantiableTest::testResolvingNonInstantiableWithVariadicRemovesWiths SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerResolveNonInstantiableTest::testResolveVariadicPrimitive SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTaggingTest::testContainerTags SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTaggingTest::testTaggedServicesAreLazyLoaded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTaggingTest::testLazyLoadedTaggedServicesCanBeLoopedOverMultipleTimes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testContainerSingleton SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testClosureResolution SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testAbstractCanBeBoundFromConcreteReturnType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testBindIfDoesntRegisterIfServiceAlreadyRegistered SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testBindIfDoesRegisterIfServiceNotRegisteredYet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testSingletonIfDoesntRegisterIfBindingAlreadyRegistered SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testSingletonIfDoesRegisterIfBindingNotRegisteredYet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testSharedClosureResolution SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testScopedClosureResolution SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testScopedIf SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testScopedClosureResets SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testAutoConcreteResolution SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testSharedConcreteResolution SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testScopedConcreteResolutionResets SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testBindFailsLoudlyWithInvalidArgument SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testAbstractToConcreteResolution SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testNestedDependencyResolution SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testContainerIsPassedToResolvers SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testArrayAccess SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testAliases SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testAliasesWithArrayOfParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testBindingsCanBeOverridden SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testBindingAnInstanceReturnsTheInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testBindingAnInstanceAsShared SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testResolutionOfDefaultParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testResolutionOfClassWithDefaultParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testResolutionOfClassWithDefaultParametersAndContextualBindings SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testBound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testUnsetRemoveBoundInstances SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testBoundInstanceAndAliasCheckViaArrayAccess SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testReboundListeners SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testReboundListenersOnInstances SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testReboundListenersOnInstancesOnlyFiresIfWasAlreadyBound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContainerTest::testInternalClassWithDefaultParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testBindingResolutionExceptionMessage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testBindingResolutionExceptionMessageIncludesBuildStack SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testBindingResolutionExceptionMessageWhenClassDoesNotExist SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testForgetInstanceForgetsInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testForgetInstancesForgetsAllInstances SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testContainerFlushFlushesAllBindingsAliasesAndResolvedInstances SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testResolvedResolvesAliasToBindingNameBeforeChecking SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testGetAlias SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testCurrentlyResolving SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testGetAliasRecursive SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testItThrowsExceptionWhenAbstractIsSameAsAlias SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testContainerGetFactory SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testMakeWithMethodIsAnAliasForMakeMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testResolvingWithArrayOfParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testResolvingWithArrayOfMixedParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testResolvingWithUsingAnInterface SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testNestedParameterOverride SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testNestedParametersAreResetForFreshMake SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testSingletonBindingsNotRespectedWithMakeParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testCanBuildWithoutParameterStackWithNoConstructors SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testCanBuildWithoutParameterStackWithConstructors SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testContainerKnowsEntry SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testContainerCanBindAnyWord SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testContainerCanDynamicallySetService SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testUnknownEntryThrowsException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testBoundEntriesThrowsContainerExceptionWhenNotResolvable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testContainerCanResolveClasses SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testMethodLevelContextualBinding SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testContainerSingletonAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testContainerScopedAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testBindInterfaceToSingleton SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testBindInterfaceToScoped SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testWildcardBindingButNoEnvironmentResolveSetThrowsBindingResolutionException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testChecksForMoreSpecificEnvironmentBeforeFallingBackToDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testCanPassAStringForEnvironmentEnvironment SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testAnEmptyEnvironmentListThrowsAnException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testContainerBindingsTakePrecedence SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testFlushResetsEnvironmentResolverAndCheckedBindings SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testNoMatchingEnvironmentAndNoWildcardThrowsBindingResolutionException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testScopedSingletonWithBind SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testSingletonWithBind SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Illuminate::testWithFactoryHasDependency SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testDependencyCanBeResolvedFromAttributeBinding SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testSimpleDependencyCanBeResolvedCorrectlyFromGiveAttributeBinding SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testComplexDependencyCanBeResolvedCorrectlyFromGiveAttributeBinding SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testScalarDependencyCanBeResolvedFromAttributeBinding SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testScalarDependencyCanBeResolvedFromAttributeResolveMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testDependencyWithAfterCallbackAttributeCanBeResolved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testAuthedAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testCacheAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testConfigAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testDatabaseAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testAuthAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testLogAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testRouteParameterAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testContextAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testContextAttributeInteractingWithHidden SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testStorageAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testInjectionWithAttributeOnAppCall SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testAttributeOnAppCall SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testNestedAttributeOnAppCall SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualAttributeBindingTest::testTagAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContainerCanInjectDifferentImplementationsDependingOnContext SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingWorksForExistingInstancedBindings SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingWorksForNewlyInstancedBindings SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingWorksOnExistingAliasedInstances SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingWorksOnNewAliasedInstances SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingWorksOnNewAliasedBindings SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingDoesNotFollowStaleAliases SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingWorksForMultipleClasses SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingDoesntOverrideNonContextualResolution SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextuallyBoundInstancesAreNotUnnecessarilyRecreated SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContainerCanInjectSimpleVariable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingWorksWithAliasedTargets SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingWorksForNestedOptionalDependencies SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingWorksForVariadicDependencies SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingWorksForVariadicDependenciesWithNothingBound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingWorksForVariadicAfterNonVariadicDependencies SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingWorksForVariadicAfterNonVariadicDependenciesWithNothingBound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingWorksForVariadicDependenciesWithoutFactory SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingGivesTagsForArrayWithNoTagsDefined SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingGivesTagsForVariadicWithNoTagsDefined SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingGivesTagsForArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingGivesTagsForVariadic SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingGivesValuesFromConfigOptionalValueNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingGivesValuesFromConfigOptionalValueSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingGivesValuesFromConfigWithDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingGivesValuesFromConfigArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextualBindingTest::testContextualBindingWorksForMethodInvocation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testResolvingCallbacksAreCalledForSpecificAbstracts SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testResolvingCallbacksAreCalled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testResolvingCallbacksAreCalledForType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testResolvingCallbacksShouldBeFiredWhenCalledWithAliases SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testResolvingCallbacksAreCalledOnceForImplementation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testGlobalResolvingCallbacksAreCalledOnceForImplementation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testResolvingCallbacksAreCalledOnceForSingletonConcretes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testResolvingCallbacksCanStillBeAddedAfterTheFirstResolution SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testResolvingCallbacksAreCanceledWhenInterfaceGetsBoundToSomeOtherConcrete SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testResolvingCallbacksAreCalledOnceForStringAbstractions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testResolvingCallbacksForConcretesAreCalledOnceForStringAbstractions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testResolvingCallbacksAreCalledOnceForImplementation2 SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testRebindingDoesNotAffectResolvingCallbacks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testParametersPassedIntoResolvingCallbacks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testResolvingCallbacksAreCallWhenRebindHappens SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testResolvingCallbacksArentCalledWhenNoRebindingsAreRegistered SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testRebindingDoesNotAffectMultipleResolvingCallbacks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testResolvingCallbacksAreCalledForInterfaces SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testResolvingCallbacksAreCalledForConcretesWhenAttachedOnInterface SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testResolvingCallbacksAreCalledForConcretesWhenAttachedOnConcretes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testResolvingCallbacksAreCalledForConcretesWithNoBinding SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testResolvingCallbacksAreCalledForInterFacesWithNoBinding SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testAfterResolvingCallbacksAreCalledOnceForImplementation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testBeforeResolvingCallbacksAreCalled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResolvingCallbackTest::testGlobalBeforeResolvingCallbacksAreCalled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RewindableGeneratorTest::testCountUsesProvidedValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RewindableGeneratorTest::testCountUsesProvidedValueAsCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: UtilTest::testUnwrapIfClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: UtilTest::testArrayWrap SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: UtilTest::testGetParameterClassName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testCookiesAreCreatedWithProperOptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testCookiesAreCreatedWithProperOptionsUsingDefaultPathAndDomain SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testCookiesCanSetSecureOptionUsingDefaultPathAndDomain SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testQueuedCookiesWithoutName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testQueuedCookiesWithInvalidParameter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testQueuedCookiesWithHandlingEmptyValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testQueuedCookiesWithRepeatedValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testQueuedCookies SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testQueuedWithPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testQueuedWithoutPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testHasQueued SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testHasQueuedWithPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testExpire SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testUnqueue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testUnqueueMultipleCookies SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testUnqueueWithPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testUnqueueOnlyCookieForName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testCookieJarIsMacroable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testQueueCookie SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testQueueWithCreatingNewCookie SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testGetQueuedCookies SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::testFlushQueuedCookies SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AddQueuedCookiesToResponseTest::testHandle SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncryptCookiesTest::testSetCookieEncryption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncryptCookiesTest::testQueuedCookieEncryption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncryptCookiesTest::testCookieDecryption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseAbstractSchemaGrammarTest::testCreateDatabase SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseAbstractSchemaGrammarTest::testDropDatabaseIfExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConcernsBuildsQueriesTraitTest::testTapCallbackInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConcernsHasAttributesTest::testWithoutConstructor SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConcernsHasAttributesTest::testWithConstructorArguments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConcernsHasAttributesTest::testRelationsToArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConcernsHasAttributesTest::testCastingEmptyStringToArrayDoesNotError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConcernsHasAttributesTest::testUnsettingCachedAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConcernsPreventsCircularRecursionTest::testRecursiveCallsArePreventedWithoutPreventingSubsequentCalls SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConcernsPreventsCircularRecursionTest::testRecursiveDefaultCallbackIsCalledOnlyOnRecursion SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConcernsPreventsCircularRecursionTest::testRecursiveDefaultCallbackIsCalledOnlyOncePerCallStack SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConcernsPreventsCircularRecursionTest::testRecursiveCallsAreLimitedToIndividualInstances SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConcernsPreventsCircularRecursionTest::testRecursiveCallsToCircularReferenceCallsOtherInstanceOnce SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConcernsPreventsCircularRecursionTest::testRecursiveCallsToCircularLinkedListCallsEachInstanceOnce SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConcernsPreventsCircularRecursionTest::testMockedModelCallToWithoutRecursionMethodWorks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionFactoryTest::testConnectionCanBeCreated SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectionFactoryTest::testConnectionFromUrlHasProperConfig SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectionFactoryTest::testSingleConnectionNotCreatedUntilNeeded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectionFactoryTest::testReadWriteConnectionsNotCreatedUntilNeeded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectionFactoryTest::testIfDriverIsntSetExceptionIsThrown SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectionFactoryTest::testExceptionIsThrownOnUnsupportedDriver SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectionFactoryTest::testCustomConnectorsCanBeResolvedViaContainer SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectionFactoryTest::testSqliteForeignKeyConstraints SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectionFactoryTest::testSqliteBusyTimeout SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectionFactoryTest::testSqliteSynchronous SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testSettingDefaultCallsGetDefaultGrammar SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testSettingDefaultCallsGetDefaultPostProcessor SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testSelectOneCallsSelectAndReturnsSingleResult SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testScalarCallsSelectOneAndReturnsSingleResult SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testScalarThrowsExceptionIfMultipleColumnsAreSelected SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testScalarReturnsNullIfUnderlyingSelectReturnsNoRows SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testSelectProperlyCallsPDO SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testSelectResultsetsReturnsMultipleRowset SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testInsertCallsTheStatementMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testUpdateCallsTheAffectingStatementMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testDeleteCallsTheAffectingStatementMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testStatementProperlyCallsPDO SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testAffectingStatementProperlyCallsPDO SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testTransactionLevelNotIncrementedOnTransactionException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testBeginTransactionMethodRetriesOnFailure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testBeginTransactionMethodReconnectsMissingConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testBeginTransactionMethodNeverRetriesIfWithinTransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testSwapPDOWithOpenTransactionResetsTransactionLevel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testBeganTransactionFiresEventsIfSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testCommittedFiresEventsIfSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testCommittingFiresEventsIfSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testRollBackedFiresEventsIfSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testRedundantRollBackFiresNoEvent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testTransactionMethodRunsSuccessfully SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testTransactionRetriesOnSerializationFailure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testTransactionMethodRetriesOnDeadlock SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testTransactionMethodRollsbackAndThrows SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testOnLostConnectionPDOIsNotSwappedWithinATransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testOnLostConnectionPDOIsSwappedOutsideTransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testRunMethodRetriesOnFailure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testRunMethodNeverRetriesIfWithinTransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testFromCreatesNewQueryBuilder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testPrepareBindings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testLogQueryFiresEventsIfSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testBeforeExecutingHooksCanBeRegistered SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testBeforeStartingTransactionHooksCanBeRegistered SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testPretendOnlyLogsQueries SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testSchemaBuilderCanBeCreated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionTest::testGetRawQueryLog SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectorTest::testOptionResolution SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectorTest::testMySqlConnectCallsCreateConnectionWithProperArguments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectorTest::testMySqlConnectCallsCreateConnectionWithIsolationLevel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectorTest::testPostgresConnectCallsCreateConnectionWithProperArguments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectorTest::testPostgresSearchPathIsSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectorTest::testPostgresSearchPathFallbackToConfigKeySchema SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectorTest::testPostgresApplicationNameIsSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectorTest::testPostgresApplicationUseAlternativeDatabaseName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectorTest::testPostgresApplicationUseAlternativeDatabaseNameAndPort SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectorTest::testPostgresConnectorReadsIsolationLevelFromConfig SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectorTest::testSQLiteMemoryDatabasesMayBeConnectedTo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectorTest::testSQLiteNamedMemoryDatabasesMayBeConnectedTo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectorTest::testSQLiteFileDatabasesMayBeConnectedTo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectorTest::testSqlServerConnectCallsCreateConnectionWithProperArguments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectorTest::testSqlServerConnectCallsCreateConnectionWithOptionalArguments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseConnectorTest::testSqlServerConnectCallsCreateConnectionWithPreferredODBC SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyAggregateTest::testWithSumDifferentTables SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyAggregateTest::testWithSumSameTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyAggregateTest::testWithSumExpression SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyChunkByIdTest::testBelongsToChunkById SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyChunkByIdTest::testBelongsToChunkByIdDesc SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyCreateOrFirstTest::testCreateOrFirstMethodCreatesNewRelated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyCreateOrFirstTest::testCreateOrFirstMethodAssociatesExistingRelated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyCreateOrFirstTest::testFirstOrCreateMethodRetrievesExistingRelatedAlreadyAssociated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyCreateOrFirstTest::testCreateOrFirstMethodRetrievesExistingRelatedAssociatedJustNow SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyCreateOrFirstTest::testFirstOrCreateMethodRetrievesExistingRelatedAndAssociatesIt SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyCreateOrFirstTest::testFirstOrCreateMethodFallsBackToCreateOrFirst SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyCreateOrFirstTest::testUpdateOrCreateMethodCreatesNewRelated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyCreateOrFirstTest::testUpdateOrCreateMethodUpdatesExistingRelated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyEachByIdTest::testBelongsToEachById SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyExpressionTest::testAmbiguousColumnsExpression SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyExpressionTest::testQualifiedColumnExpression SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyExpressionTest::testGlobalScopesAreAppliedToBelongsToManyRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyExpressionTest::testGlobalScopesCanBeRemovedFromBelongsToManyRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyLazyByIdTest::testBelongsToLazyById SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManySyncReturnValueTypeTest::testSyncReturnValueType SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManySyncReturnValueTypeTest::testSyncWithPivotDefaultsReturnValueType SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManySyncTouchesParentTest::testSyncWithDetachedValuesShouldTouch SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyWithAttributesPendingTest::testCreatesPendingAttributesAndPivotValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyWithAttributesPendingTest::testQueriesPendingAttributesAndPivotValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyWithAttributesPendingTest::testMorphToManyPendingAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyWithAttributesPendingTest::testMorphedByManyPendingAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyWithAttributesTest::testCreatesWithAttributesAndPivotValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyWithAttributesTest::testQueriesWithAttributesAndPivotValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyWithAttributesTest::testMorphToManyWithAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyWithAttributesTest::testMorphedByManyWithAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyWithCastedAttributesTest::testModelsAreProperlyMatchedToParents SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyWithDefaultAttributesTest::testWithPivotValueMethodSetsWhereConditionsForFetching SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyWithDefaultAttributesTest::testWithPivotValueMethodSetsDefaultArgumentsForInsertion SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToManyWithoutTouchingTest::testItWillNotTouchRelatedModelsWhenUpdatingChild SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToTest::testBelongsToWithDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToTest::testBelongsToWithDynamicDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToTest::testBelongsToWithArrayDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToTest::testEagerConstraintsAreProperlyAdded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToTest::testIdsInEagerConstraintsCanBeZero SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToTest::testIdsInEagerConstraintsCanBeBackedEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToTest::testRelationIsProperlyInitialized SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBelongsToTest::testModelsAreProperlyMatchedToParents SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAssociateMethodSetsForeignKeyOnModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testDissociateMethodUnsetsForeignKeyOnModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAssociateMethodSetsForeignKeyOnModelById SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testDefaultEagerConstraintsWhenIncrementing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testDefaultEagerConstraintsWhenIncrementingAndNonIntKeyType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testDefaultEagerConstraintsWhenNotIncrementing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testIsNotNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testIsModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testIsModelWithIntegerParentKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testIsModelWithIntegerRelatedKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testIsModelWithIntegerKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testIsNotModelWithNullParentKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testIsNotModelWithNullRelatedKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testIsNotModelWithAnotherKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testIsNotModelWithAnotherTable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testIsNotModelWithAnotherConnection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderCreateOrFirstTest::testCreateOrFirstMethodCreatesNewRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderCreateOrFirstTest::testCreateOrFirstMethodRetrievesExistingRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderCreateOrFirstTest::testFirstOrCreateMethodRetrievesExistingRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderCreateOrFirstTest::testFirstOrCreateMethodCreatesNewRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderCreateOrFirstTest::testFirstOrCreateMethodRetrievesRecordCreatedJustNow SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderCreateOrFirstTest::testUpdateOrCreateMethodUpdatesExistingRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderCreateOrFirstTest::testUpdateOrCreateMethodCreatesNewRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderCreateOrFirstTest::testUpdateOrCreateMethodUpdatesRecordCreatedJustNow SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderCreateOrFirstTest::testIncrementOrCreateMethodIncrementsExistingRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderCreateOrFirstTest::testIncrementOrCreateMethodCreatesNewRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderCreateOrFirstTest::testIncrementOrCreateMethodIncrementParametersArePassed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderCreateOrFirstTest::testIncrementOrCreateMethodRetrievesRecordCreatedJustNow SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testFindMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testFindSoleMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testFindManyMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testFindOrNewMethodModelFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testFindOrNewMethodModelNotFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testFindOrFailMethodThrowsModelNotFoundException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testFindOrFailMethodWithManyThrowsModelNotFoundException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testFindOrFailMethodWithManyUsingCollectionThrowsModelNotFoundException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testFindOrMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testFindOrMethodWithMany SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testFindOrMethodWithManyUsingCollection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testFirstOrFailMethodThrowsModelNotFoundException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testFindWithMany SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testFindWithManyUsingCollection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testFirstMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testQualifyColumn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testQualifyColumns SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testGetMethodLoadsModelsAndHydratesEagerRelations SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testGetMethodDoesntHydrateEagerRelationsWhenNoResultsAreReturned SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testValueMethodWithModelFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testValueMethodWithModelNotFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testValueOrFailMethodWithModelFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testValueOrFailMethodWithModelNotFoundThrowsModelNotFoundException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testChunkWithLastChunkComplete SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testChunkWithLastChunkPartial SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testChunkCanBeStoppedByReturningFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testChunkWithCountZero SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testChunkPaginatesUsingIdWithLastChunkComplete SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testChunkPaginatesUsingIdWithLastChunkPartial SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testChunkPaginatesUsingIdWithCountZero SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testLazyWithLastChunkComplete SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testLazyWithLastChunkPartial SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testLazyIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testLazyByIdWithLastChunkComplete SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testLazyByIdWithLastChunkPartial SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testLazyByIdIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testPluckReturnsTheMutatedAttributesOfAModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testPluckReturnsTheCastedAttributesOfAModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testPluckReturnsTheDateAttributesOfAModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testQualifiedPluckReturnsTheMutatedAttributesOfAModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testQualifiedPluckReturnsTheCastedAttributesOfAModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testQualifiedPluckReturnsTheDateAttributesOfAModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testPluckWithoutModelGetterJustReturnsTheAttributesFoundInDatabase SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testLocalMacrosAreCalledOnBuilder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testGlobalMacrosAreCalledOnBuilder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testMissingStaticMacrosThrowsProperException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testGetModelsProperlyHydratesModels SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testEagerLoadRelationsLoadTopLevelRelationships SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testEagerLoadRelationsCanBeFlushed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testRelationshipEagerLoadProcess SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testRelationshipEagerLoadProcessForImplicitlyEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testGetRelationProperlySetsNestedRelationships SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testGetRelationProperlySetsNestedRelationshipsWithSimilarNames SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testGetRelationThrowsException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testEagerLoadParsingSetsProperRelationships SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testQueryPassThru SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testQueryScopes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testQueryDynamicScopes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testQueryDynamicScopesNamed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testNestedWhere SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testRealNestedWhereWithScopes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testRealNestedWhereWithScopesMacro SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testRealNestedWhereWithMultipleScopesAndOneDeadScope SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testSimpleWhereNot SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereNot SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testSimpleOrWhereNot SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testOrWhereNot SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testRealQueryHigherOrderOrWhereScopes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testRealQueryChainedHigherOrderOrWhereScopes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testRealQueryHigherOrderWhereNotScopes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testRealQueryChainedHigherOrderWhereNotScopes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testRealQueryHigherOrderOrWhereNotScopes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testRealQueryChainedHigherOrderOrWhereNotScopes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testSimpleWhere SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testPostgresOperatorsWhere SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereBelongsTo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereAttachedTo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereAttachedToCollection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testDeleteOverride SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithCountAndSelect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithCountSecondRelationWithClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithCountAndMergedWheres SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithCountAndGlobalScope SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithMin SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithMinExpression SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithMinOnBelongsToMany SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithMinOnSelfRelated SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithMax SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithMaxExpression SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithAvg SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWitAvgExpression SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithCountAndConstraintsAndHaving SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithCountAndRename SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithCountMultipleAndPartialRename SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithAggregateAlias SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithAggregateAndSelfRelationConstrain SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithExistsAndSelect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithExistsAndMergedWheres SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithExistsAndGlobalScope SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithExistsOnBelongsToMany SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithExistsOnSelfRelated SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithExistsAndRename SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithExistsMultipleAndPartialRename SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testHasWithConstraintsAndHavingInSubquery SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testHasWithConstraintsWithOrWhereAndHavingInSubquery SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testHasWithConstraintsWithOrWhereAndSubqueryInRelationFromClause SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testHasWithConstraintsAndJoinAndHavingInSubquery SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testHasWithConstraintsAndHavingInSubqueryWithCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithCountAndConstraintsWithBindingInSelectSub SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWithExistsAndConstraintsWithBindingInSelectSub SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testHasNestedWithConstraints SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testHasNested SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testHasNestedWithMorphTo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testHasNestedWithMorphToAndMultipleSubRelations SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testOrHasNested SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testSelfHasNested SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testSelfHasNestedUsesAlias SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testDoesntHave SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testDoesntHaveNested SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testOrDoesntHave SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereDoesntHave SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testOrWhereDoesntHave SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereMorphedTo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereMorphedToCollection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereMorphedToCollectionWithDifferentModels SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereMorphedToNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereNotMorphedTo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereNotMorphedToCollection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereNotMorphedToCollectionWithDifferentModels SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testOrWhereMorphedTo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testOrWhereMorphedToCollection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testOrWhereMorphedToCollectionWithDifferentModels SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testOrWhereMorphedToNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testOrWhereNotMorphedTo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testOrWhereNotMorphedToCollection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testOrWhereNotMorphedToCollectionWithDifferentModels SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereMorphedToClass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereNotMorphedToClass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testOrWhereMorphedToClass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testOrWhereNotMorphedToClass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereNotMorphedToWithSQLite SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereNotMorphedToClassWithSQLite SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereMorphedToAlias SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereKeyMethodWithInt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereKeyMethodWithStringZero SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereKeyMethodWithStringNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereKeyMethodWithArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereKeyMethodWithCollection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBuilderTest::testWhereKeyMethodWithModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testWhereKeyNotMethodWithStringZero SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testWhereKeyNotMethodWithStringNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testWhereKeyNotMethodWithInt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testWhereKeyNotMethodWithArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testWhereKeyNotMethodWithCollection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testWhereKeyNotMethodWithModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testExceptMethodWithModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testExceptMethodWithCollectionOfModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testExceptMethodWithArrayOfModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testWhereIn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testLatestWithoutColumnWithCreatedAt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testLatestWithoutColumnWithoutCreatedAt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testLatestWithColumn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testOldestWithoutColumnWithCreatedAt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testOldestWithoutColumnWithoutCreatedAt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testOldestWithColumn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testUpdate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testUpdateWithTimestampValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testUpdateWithQualifiedTimestampValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testUpdateWithoutTimestamp SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testUpdateWithAlias SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testUpdateWithAliasWithQualifiedTimestampValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testUpsert SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testTouch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testTouchWithCustomColumn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testTouchWithoutUpdatedAtColumn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testWithCastsMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testClone SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testCloneModelMakesAFreshCopyOfTheModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testToRawSql SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testPassthruMethodsCallsAreNotCaseSensitive SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testPassthruArrayElementsMustAllBeLowercase SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testPipeCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionQueueableTest::testSerializesPivotsEntitiesId SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionQueueableTest::testSerializesModelEntitiesById SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionQueueableTest::testJsonSerializationOfCollectionQueueableIdsWorks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testAddingItemsToCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testGettingMaxItemsFromCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testGettingMinItemsFromCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testContainsWithMultipleArguments SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testContainsIndicatesIfModelInArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testContainsIndicatesIfDifferentModelInArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testContainsIndicatesIfKeyedModelInArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testContainsKeyAndValueIndicatesIfModelInArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testContainsClosureIndicatesIfModelInArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testFindMethodFindsModelById SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testFindMethodFindsManyModelsById SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testFindOrFailFindsModelById SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testFindOrFailFindsManyModelsById SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testFindOrFailThrowsExceptionWithMessageWhenOtherModelsArePresent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testFindOrFailThrowsExceptionWithoutMessageWhenOtherModelsAreNotPresent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testLoadMethodEagerLoadsGivenRelationships SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testCollectionDictionaryReturnsModelKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testCollectionMergesWithGivenCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testMap SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testMappingToNonModelsReturnsABaseCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testMapWithKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testMapWithKeysToNonModelsReturnsABaseCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testCollectionDiffsWithGivenCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testCollectionReturnsDuplicateBasedOnlyOnKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testCollectionIntersectWithNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testCollectionIntersectsWithGivenCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testCollectionReturnsUniqueItems SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testCollectionReturnsUniqueStrictBasedOnKeysOnly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testOnlyReturnsCollectionWithGivenModelKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testExceptReturnsCollectionWithoutGivenModelKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testMakeHiddenAddsHiddenOnEntireCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testMakeVisibleRemovesHiddenFromEntireCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testMergeHiddenAddsHiddenOnEntireCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testMergeVisibleRemovesHiddenFromEntireCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testSetVisibleReplacesVisibleOnEntireCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testSetHiddenReplacesHiddenOnEntireCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testAppendsAddsTestOnEntireCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testSetAppendsSetsAppendedPropertiesOnEntireCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testWithoutAppendsRemovesAppendsOnEntireCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testNonModelRelatedMethods SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testMakeVisibleRemovesHiddenAndIncludesVisible SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testMultiply SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testQueueableCollectionImplementation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testQueueableCollectionImplementationThrowsExceptionOnMultipleModelTypes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testQueueableRelationshipsReturnsOnlyRelationsCommonToAllModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testQueueableRelationshipsIgnoreCollectionKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testEmptyCollectionStayEmptyOnFresh SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testCanConvertCollectionOfModelsToEloquentQueryBuilder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testConvertingEmptyCollectionToQueryThrowsException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testLoadExistsShouldCastBool SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testWithNonScalarKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentCollectionTest::testPluck SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentDynamicRelationsTest::testBasicDynamicRelations SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentDynamicRelationsTest::testBasicDynamicRelationsOverride SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentDynamicRelationsTest::testInharitedDynamicRelations SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentDynamicRelationsTest::testInheritedDynamicRelationsOverride SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentDynamicRelationsTest::testDynamicRelationsCanNotHaveTheSameNameAsNormalRelations SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentDynamicRelationsTest::testRelationResolvers SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_basic_model_can_be_created SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_expanded_closure_attributes_are_resolved_and_passed_to_closures SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_expanded_closure_attribute_returning_a_factory_is_resolved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_make_creates_unpersisted_model_instance SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_basic_model_attributes_can_be_created SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_expanded_model_attributes_can_be_created SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_lazy_model_attributes_can_be_created SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_multiple_model_attributes_can_be_created SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_after_creating_and_making_callbacks_are_called SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_has_many_relationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_belongs_to_relationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_belongs_to_relationship_with_existing_model_instance SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_belongs_to_relationship_with_existing_model_instance_with_relationship_name_implied_from_model SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_morph_to_relationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_morph_to_relationship_with_existing_model_instance SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_belongs_to_many_relationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_belongs_to_many_relationship_related_models_set_on_instance_when_touching_owner SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_relation_can_be_loaded_before_model_is_created SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_belongs_to_many_relationship_with_existing_model_instances SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_belongs_to_many_relationship_with_existing_model_instances_using_array SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_belongs_to_many_relationship_with_existing_model_instances_with_relationship_name_implied_from_model SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_sequences SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_counted_sequence SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_sequence_with_has_many_relationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_cross_join_sequences SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_resolve_nested_model_factories SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_resolve_nested_model_name_from_factory SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_resolve_non_app_nested_model_factories SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_model_has_factory SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_dynamic_has_and_for_methods SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_can_be_macroable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_factory_can_conditionally_execute_code SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_dynamic_trashed_state_for_softdeletes_models SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_dynamic_trashed_state_respects_existing_state SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_dynamic_trashed_state_throws_exception_when_not_a_softdeletes_model SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_model_instances_can_be_used_in_place_of_nested_factories SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_for_method_recycles_models SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_has_method_does_not_reassign_the_parent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_multiple_models_can_be_provided_to_recycle SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_recycled_models_can_be_combined_with_multiple_calls SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_no_models_can_be_provided_to_recycle SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_can_disable_relationships SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_can_disable_relationships_explicitly_by_model_name SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_can_disable_relationships_explicitly_by_attribute_name SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_can_disable_relationships_explicitly_by_both_attribute_name_and_model_name SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_can_default_to_without_parents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_factory_model_names_correct SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_factory_global_model_resolver SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_factory_model_has_many_relationship_has_pending_attributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_factory_model_has_many_relationship_has_pending_attributes_override SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_factory_model_has_one_relationship_has_pending_attributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_factory_model_has_one_relationship_has_pending_attributes_override SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_factory_model_belongs_to_many_relationship_has_pending_attributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_factory_model_belongs_to_many_relationship_has_pending_attributes_override SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_factory_model_morph_many_relationship_has_pending_attributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_factory_model_morph_many_relationship_has_pending_attributes_override SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_factory_can_insert SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_factory_can_insert_with_hidden SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentFactoryTest::test_factory_can_insert_with_array_casts SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentGlobalScopesTest::testGlobalScopeIsApplied SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentGlobalScopesTest::testGlobalScopeCanBeRemoved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentGlobalScopesTest::testClassNameGlobalScopeIsApplied SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentGlobalScopesTest::testGlobalScopeInAttributeIsApplied SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentGlobalScopesTest::testGlobalScopeInInheritedAttributeIsApplied SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentGlobalScopesTest::testClosureGlobalScopeIsApplied SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentGlobalScopesTest::testGlobalScopesCanBeRegisteredViaArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentGlobalScopesTest::testClosureGlobalScopeCanBeRemoved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentGlobalScopesTest::testGlobalScopeCanBeRemovedAfterTheQueryIsExecuted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentGlobalScopesTest::testAllGlobalScopesCanBeRemoved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentGlobalScopesTest::testAllGlobalScopesCanBeRemovedExceptSpecified SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentGlobalScopesTest::testGlobalScopesWithOrWhereConditionsAreNested SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentGlobalScopesTest::testRegularScopesWithOrWhereConditionsAreNested SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentGlobalScopesTest::testScopesStartingWithOrBooleanArePreserved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentGlobalScopesTest::testHasQueryWhereBothModelsHaveGlobalScopes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyCreateOrFirstTest::testCreateOrFirstMethodCreatesNewRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyCreateOrFirstTest::testCreateOrFirstMethodRetrievesExistingRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyCreateOrFirstTest::testFirstOrCreateMethodCreatesNewRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyCreateOrFirstTest::testFirstOrCreateMethodRetrievesExistingRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyCreateOrFirstTest::testFirstOrCreateMethodRetrievesRecordCreatedJustNow SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyCreateOrFirstTest::testUpdateOrCreateMethodCreatesNewRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyCreateOrFirstTest::testUpdateOrCreateMethodUpdatesExistingRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyCreateOrFirstTest::testUpdateOrCreateMethodUpdatesRecordCreatedJustNow SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testMakeMethodDoesNotSaveNewModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testMakeManyCreatesARelatedModelForEachRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testCreateMethodProperlyCreatesNewModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testForceCreateMethodProperlyCreatesNewModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testFindOrNewMethodFindsModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testFindOrNewMethodReturnsNewModelWithForeignKeySet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testFirstOrNewMethodFindsFirstModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testFirstOrNewMethodWithValuesFindsFirstModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testFirstOrNewMethodReturnsNewModelWithForeignKeySet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testFirstOrNewMethodWithValuesCreatesNewModelWithForeignKeySet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testFirstOrCreateMethodFindsFirstModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testFirstOrCreateMethodWithValuesFindsFirstModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testFirstOrCreateMethodCreatesNewModelWithForeignKeySet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testFirstOrCreateMethodWithValuesCreatesNewModelWithForeignKeySet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testCreateOrFirstMethodWithValuesFindsFirstModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testCreateOrFirstMethodCreatesNewModelWithForeignKeySet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testCreateOrFirstMethodWithValuesCreatesNewModelWithForeignKeySet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testUpdateOrCreateMethodFindsFirstModelAndUpdates SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testUpdateOrCreateMethodCreatesNewModelWithForeignKeySet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testRelationUpsertFillsForeignKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testRelationIsProperlyInitialized SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testEagerConstraintsAreProperlyAdded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testEagerConstraintsAreProperlyAddedWithStringKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testModelsAreProperlyMatchedToParents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyTest::testCreateManyCreatesARelatedModelForEachRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughCreateOrFirstTest::testCreateOrFirstMethodCreatesNewRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughCreateOrFirstTest::testCreateOrFirstMethodRetrievesExistingRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughCreateOrFirstTest::testFirstOrCreateMethodCreatesNewRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughCreateOrFirstTest::testFirstOrCreateMethodRetrievesExistingRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughCreateOrFirstTest::testFirstOrCreateMethodRetrievesRecordCreatedJustNow SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughCreateOrFirstTest::testUpdateOrCreateMethodCreatesNewRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughCreateOrFirstTest::testUpdateOrCreateMethodUpdatesExistingRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughCreateOrFirstTest::testUpdateOrCreateMethodUpdatesRecordCreatedJustNow SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testItLoadsAHasManyThroughRelationWithCustomKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testItLoadsADefaultHasManyThroughRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testItLoadsARelationWithCustomIntermediateAndLocalKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testEagerLoadingARelationWithCustomIntermediateAndLocalKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testWhereHasOnARelationWithCustomIntermediateAndLocalKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testWithWhereHasOnARelationWithCustomIntermediateAndLocalKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testFindMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testFindManyMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testFirstOrFailThrowsAnException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testFindOrFailThrowsAnException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testFindOrFailWithManyThrowsAnException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testFindOrFailWithManyUsingCollectionThrowsAnException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testFindOrMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testFindOrMethodWithMany SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testFindOrMethodWithManyUsingCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testFirstRetrievesFirstRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testAllColumnsAreRetrievedByDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testOnlyProperColumnsAreSelectedIfProvided SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testChunkReturnsCorrectModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testChunkById SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testCursorReturnsCorrectModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testEachReturnsCorrectModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testEachByIdReturnsCorrectModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testLazyReturnsCorrectModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testLazyById SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testIntermediateSoftDeletesAreIgnored SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasManyThroughIntegrationTest::testEagerLoadingLoadsRelatedModelsCorrectly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testItGuessesRelationName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testItGuessesRelationNameAndAddsOfManyWhenTableNameIsRelationName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testRelationNameCanBeSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testCorrectLatestOfManyQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testEagerLoadingAppliesConstraintsToInnerJoinSubQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testGlobalScopeIsNotAppliedWhenRelationIsDefinedWithoutGlobalScope SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testGlobalScopeIsNotAppliedWhenRelationIsDefinedWithoutGlobalScopeWithComplexQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testQualifyingSubSelectColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testItFailsWhenUsingInvalidAggregate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testItGetsCorrectResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testResultDoesNotHaveAggregateColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testItGetsCorrectResultsUsingShortcutMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testItGetsCorrectResultsUsingShortcutReceivingMultipleColumnsMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testKeyIsAddedToAggregatesWhenMissing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testItGetsWithConstraintsCorrectResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testItEagerLoadsCorrectModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testItJoinsOtherTableInSubQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testHasNested SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testWithHasNested SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testHasCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testIsMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testIsNotMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testGet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testAggregate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testJoinConstraints SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testMultipleAggregates SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testEagerLoadingWithMultipleAggregates SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testWithExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testWithExistsWithConstraintsInJoinSubSelect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testWithSoftDeletes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testWithConstraintNotInAggregate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOfManyTest::testItGetsCorrectResultUsingAtLeastTwoAggregatesDistinctFromId SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesPendingTest::testHasManyAddsAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesPendingTest::testHasOneAddsAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesPendingTest::testMorphManyAddsAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesPendingTest::testMorphOneAddsAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesPendingTest::testPendingAttributesCanBeOverridden SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesPendingTest::testQueryingDoesNotBreakWither SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesPendingTest::testAttributesCanBeAppended SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesPendingTest::testSingleAttributeApi SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesPendingTest::testWheresAreNotSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesPendingTest::testNullValueIsAccepted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesPendingTest::testOneKeepsAttributesFromHasMany SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesPendingTest::testOneKeepsAttributesFromMorphMany SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesPendingTest::testHasManyAddsCastedAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesTest::testHasManyAddsAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesTest::testHasOneAddsAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesTest::testMorphManyAddsAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesTest::testMorphOneAddsAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesTest::testWithAttributesCanBeOverridden SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesTest::testQueryingDoesNotBreakWither SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesTest::testAttributesCanBeAppended SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesTest::testSingleAttributeApi SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesTest::testWheresAreSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesTest::testNullValueIsAccepted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesTest::testOneKeepsAttributesFromHasMany SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesTest::testOneKeepsAttributesFromMorphMany SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneOrManyWithAttributesTest::testHasManyAddsCastedAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneTest::testHasOneWithDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneTest::testHasOneWithDynamicDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneTest::testHasOneWithDynamicDefaultUseParentModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneTest::testHasOneWithArrayDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneTest::testMakeMethodDoesNotSaveNewModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneTest::testSaveMethodSetsForeignKeyOnModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneTest::testCreateMethodProperlyCreatesNewModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneTest::testForceCreateMethodProperlyCreatesNewModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneTest::testRelationIsProperlyInitialized SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneTest::testEagerConstraintsAreProperlyAdded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneTest::testModelsAreProperlyMatchedToParents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneTest::testRelationCountQueryCanBeBuilt SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneTest::testIsNotNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneTest::testIsModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneTest::testIsModelWithStringRelatedKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneTest::testIsNotModelWithNullRelatedKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneTest::testIsNotModelWithAnotherRelatedKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneTest::testIsNotModelWithAnotherTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneTest::testIsNotModelWithAnotherConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughIntegrationTest::testItLoadsAHasOneThroughRelationWithCustomKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughIntegrationTest::testItLoadsADefaultHasOneThroughRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughIntegrationTest::testItLoadsARelationWithCustomIntermediateAndLocalKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughIntegrationTest::testEagerLoadingARelationWithCustomIntermediateAndLocalKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughIntegrationTest::testWhereHasOnARelationWithCustomIntermediateAndLocalKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughIntegrationTest::testWithWhereHasOnARelationWithCustomIntermediateAndLocalKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughIntegrationTest::testFirstOrFailThrowsAnException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughIntegrationTest::testFindOrFailThrowsAnException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughIntegrationTest::testFirstRetrievesFirstRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughIntegrationTest::testAllColumnsAreRetrievedByDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughIntegrationTest::testOnlyProperColumnsAreSelectedIfProvided SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughIntegrationTest::testChunkReturnsCorrectModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughIntegrationTest::testCursorReturnsCorrectModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughIntegrationTest::testEachReturnsCorrectModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughIntegrationTest::testLazyReturnsCorrectModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughIntegrationTest::testIntermediateSoftDeletesAreIgnored SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughIntegrationTest::testEagerLoadingLoadsRelatedModelsCorrectly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testItGuessesRelationName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testItGuessesRelationNameAndAddsOfManyWhenTableNameIsRelationName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testRelationNameCanBeSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testCorrectLatestOfManyQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testEagerLoadingAppliesConstraintsToInnerJoinSubQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testEagerLoadingAppliesConstraintsToQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testGlobalScopeIsNotAppliedWhenRelationIsDefinedWithoutGlobalScope SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testGlobalScopeIsNotAppliedWhenRelationIsDefinedWithoutGlobalScopeWithComplexQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testQualifyingSubSelectColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testItFailsWhenUsingInvalidAggregate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testItGetsCorrectResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testResultDoesNotHaveAggregateColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testItGetsCorrectResultsUsingShortcutMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testItGetsCorrectResultsUsingShortcutReceivingMultipleColumnsMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testKeyIsAddedToAggregatesWhenMissing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testItGetsWithConstraintsCorrectResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testItEagerLoadsCorrectModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testItJoinsOtherTableInSubQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testHasNested SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testWithHasNested SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testHasCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testIsMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testIsNotMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testGet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testAggregate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testJoinConstraints SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testMultipleAggregates SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testEagerLoadingWithMultipleAggregates SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testWithExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testWithExistsWithConstraintsInJoinSubSelect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testWithSoftDeletes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testWithConstraintNotInAggregate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentHasOneThroughOfManyTest::testItGetsCorrectResultUsingAtLeastTwoAggregatesDistinctFromId SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testBasicModelRetrieval SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testBasicModelCollectionRetrieval SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testPaginatedModelCollectionRetrieval SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testPaginatedModelCollectionRetrievalUsingCallablePerPage SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testPaginatedModelCollectionRetrievalWhenNoElements SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testPaginatedModelCollectionRetrievalWhenNoElementsAndDefaultPerPage SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testCountForPaginationWithGrouping SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testCountForPaginationWithGroupingAndSubSelects SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testCursorPaginatedModelCollectionRetrieval SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testPreviousCursorPaginatedModelCollectionRetrieval SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testCursorPaginatedModelCollectionRetrievalWhenNoElements SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testCursorPaginatedModelCollectionRetrievalWhenNoElementsAndDefaultPerPage SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testFirstOrNew SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testFirstOrCreate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testCreateOrFirst SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testCreateOrFirstNonAttributeFieldViolation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testCreateOrFirstWithinTransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testUpdateOrCreate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testUpdateOrCreateOnDifferentConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testCheckAndCreateMethodsOnMultiConnections SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testCreatingModelWithEmptyAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testChunk SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testChunksWithLimitsWhereLimitIsLessThanTotal SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testChunksWithLimitsWhereLimitIsMoreThanTotal SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testChunksWithOffset SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testChunksWithOffsetWhereMoreThanTotal SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testChunksWithLimitsAndOffsets SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testChunkByIdWithLimits SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testChunkByIdWithOffsets SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testChunkByIdWithLimitsAndOffsets SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testChunkByIdWithNonIncrementingKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testEachByIdWithNonIncrementingKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testPluck SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testPluckWithJoin SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testPluckWithColumnNameContainingASpace SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testFindOrFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testFindOrFailWithSingleIdThrowsModelNotFoundException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testFindOrFailWithMultipleIdsThrowsModelNotFoundException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testFindOrFailWithMultipleIdsUsingCollectionThrowsModelNotFoundException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testOneToOneRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testIssetLoadsInRelationshipIfItIsntLoadedAlready SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testOneToManyRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testBasicModelHydration SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testFirstOrNewOnHasOneRelationShip SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testFirstOrCreateOnHasOneRelationShip SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testHasOnSelfReferencingBelongsToManyRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testWhereHasOnSelfReferencingBelongsToManyRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testWithWhereHasOnSelfReferencingBelongsToManyRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testHasOnNestedSelfReferencingBelongsToManyRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testWhereHasOnNestedSelfReferencingBelongsToManyRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testWithWhereHasOnNestedSelfReferencingBelongsToManyRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testHasOnSelfReferencingBelongsToManyRelationshipWithWherePivot SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testHasOnNestedSelfReferencingBelongsToManyRelationshipWithWherePivot SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testHasOnSelfReferencingBelongsToRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testAggregatedValuesOfDatetimeField SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testWhereHasOnSelfReferencingBelongsToRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testWithWhereHasOnSelfReferencingBelongsToRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testHasOnNestedSelfReferencingBelongsToRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testWhereHasOnNestedSelfReferencingBelongsToRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testWithWhereHasOnNestedSelfReferencingBelongsToRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testHasOnSelfReferencingHasManyRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testWhereHasOnSelfReferencingHasManyRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testWithWhereHasOnSelfReferencingHasManyRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testHasOnNestedSelfReferencingHasManyRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testWhereHasOnNestedSelfReferencingHasManyRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testWithWhereHasOnNestedSelfReferencingHasManyRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testHasWithNonWhereBindings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testHasOnMorphToRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testBelongsToManyRelationshipModelsAreProperlyHydratedWithSoleQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testBelongsToManyRelationshipMissingModelExceptionWithSoleQueryWorks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testBelongsToManyRelationshipModelsAreProperlyHydratedOverChunkedRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testBelongsToManyRelationshipModelsAreProperlyHydratedOverEachRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testBelongsToManyRelationshipModelsAreProperlyHydratedOverCursorRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testWhereAttachedTo SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testBasicHasManyEagerLoading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testBasicNestedSelfReferencingHasManyEagerLoading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testBasicMorphManyRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testMorphMapIsUsedForCreatingAndFetchingThroughRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testMorphMapIsUsedWhenFetchingParent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testMorphMapIsMergedByDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testMorphMapOverwritesCurrentMap SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testEmptyMorphToRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testSaveOrFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testSavingJSONFields SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testSaveOrFailWithDuplicatedEntry SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testMultiInsertsWithDifferentValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testMultiInsertsWithSameValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testNestedTransactions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testNestedTransactionsUsingSaveOrFailWillSucceed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testNestedTransactionsUsingSaveOrFailWillFails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testToArrayIncludesDefaultFormattedTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testToArrayIncludesCustomFormattedTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testIncrementingPrimaryKeysAreCastToIntegersByDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testDefaultIncrementingPrimaryKeyIntegerCastCanBeOverwritten SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testRelationsArePreloadedInGlobalScope SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testModelIgnoredByGlobalScopeCanBeRefreshed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testGlobalScopeCanBeRemovedByOtherGlobalScope SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testForPageBeforeIdCorrectlyPaginates SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testForPageAfterIdCorrectlyPaginates SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testMorphToRelationsAcrossDatabaseConnections SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testEagerLoadedMorphToRelationsOnAnotherDatabaseConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testBelongsToManyCustomPivot SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testIsAfterRetrievingTheSameModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testFreshMethodOnModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testFreshMethodOnCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testTimestampsUsingDefaultDateFormat SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testTimestampsUsingDefaultSqlServerDateFormat SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testTimestampsUsingCustomDateFormat SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testTimestampsUsingOldSqlServerDateFormat SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testTimestampsUsingOldSqlServerDateFormatFallbackToDefaultParsing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testSpecialFormats SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testUpdatingChildModelTouchesParent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testMultiLevelTouchingWorks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testDeletingChildModelTouchesParentTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testTouchingChildModelUpdatesParentsTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testTouchingChildModelRespectsParentNoTouching SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testUpdatingChildPostRespectsNoTouchingDefinition SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testUpdatingModelInTheDisabledScopeTouchesItsOwnTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testDeletingChildModelRespectsTheNoTouchingRule SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testRespectedMultiLevelTouchingChain SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testTouchesGreatParentEvenWhenParentIsInNoTouchScope SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testCanNestCallsOfNoTouching SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testCanPassArrayOfModelsToIgnore SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testWhenBaseModelIsIgnoredAllChildModelsAreIgnored SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testChildModelsAreIgnored SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testPivotsCanBeRefreshed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testMorphPivotsCanBeRefreshed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testTouchingChaperonedChildModelUpdatesParentTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testTouchingBiDirectionalChaperonedModelUpdatesAllRelatedTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testCanFillAndInsert SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testCanFillAndInsertWithUniqueStringIds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testFillAndInsertOrIgnore SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationTest::testFillAndInsertGetId SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIntegrationWithTablePrefixTest::testBasicModelHydration SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasManyTest::testHasManyInverseRelationIsProperlySetToParentWhenLazyLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasManyTest::testHasManyInverseRelationIsProperlySetToParentWhenEagerLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasManyTest::testHasLatestOfManyInverseRelationIsProperlySetToParentWhenLazyLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasManyTest::testHasLatestOfManyInverseRelationIsProperlySetToParentWhenEagerLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasManyTest::testOneOfManyInverseRelationIsProperlySetToParentWhenLazyLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasManyTest::testOneOfManyInverseRelationIsProperlySetToParentWhenEagerLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasManyTest::testHasManyInverseRelationIsProperlySetToParentWhenMakingMany SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasManyTest::testHasManyInverseRelationIsProperlySetToParentWhenCreatingMany SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasManyTest::testHasManyInverseRelationIsProperlySetToParentWhenCreatingManyQuietly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasManyTest::testHasManyInverseRelationIsProperlySetToParentWhenSavingMany SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasManyTest::testHasManyInverseRelationIsProperlySetToParentWhenUpdatingMany SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasOneTest::testHasOneInverseRelationIsProperlySetToParentWhenLazyLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasOneTest::testHasOneInverseRelationIsProperlySetToParentWhenEagerLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasOneTest::testHasOneInverseRelationIsProperlySetToParentWhenMaking SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasOneTest::testHasOneInverseRelationIsProperlySetToParentWhenCreating SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasOneTest::testHasOneInverseRelationIsProperlySetToParentWhenCreatingQuietly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasOneTest::testHasOneInverseRelationIsProperlySetToParentWhenForceCreating SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasOneTest::testHasOneInverseRelationIsProperlySetToParentWhenSaving SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasOneTest::testHasOneInverseRelationIsProperlySetToParentWhenSavingQuietly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationHasOneTest::testHasOneInverseRelationIsProperlySetToParentWhenUpdating SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphManyTest::testMorphManyInverseRelationIsProperlySetToParentWhenLazyLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphManyTest::testMorphManyInverseRelationIsProperlySetToParentWhenEagerLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphManyTest::testMorphManyGuessedInverseRelationIsProperlySetToParentWhenLazyLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphManyTest::testMorphManyGuessedInverseRelationIsProperlySetToParentWhenEagerLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphManyTest::testMorphLatestOfManyInverseRelationIsProperlySetToParentWhenLazyLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphManyTest::testMorphLatestOfManyInverseRelationIsProperlySetToParentWhenEagerLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphManyTest::testMorphLatestOfManyGuessedInverseRelationIsProperlySetToParentWhenLazyLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphManyTest::testMorphLatestOfManyGuessedInverseRelationIsProperlySetToParentWhenEagerLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphManyTest::testMorphOneOfManyInverseRelationIsProperlySetToParentWhenLazyLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphManyTest::testMorphOneOfManyInverseRelationIsProperlySetToParentWhenEagerLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphManyTest::testMorphManyInverseRelationIsProperlySetToParentWhenMakingMany SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphManyTest::testMorphManyInverseRelationIsProperlySetToParentWhenCreatingMany SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphManyTest::testMorphManyInverseRelationIsProperlySetToParentWhenCreatingManyQuietly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphManyTest::testMorphManyInverseRelationIsProperlySetToParentWhenSavingMany SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphManyTest::testMorphManyInverseRelationIsProperlySetToParentWhenUpdatingMany SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphOneTest::testMorphOneInverseRelationIsProperlySetToParentWhenLazyLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphOneTest::testMorphOneInverseRelationIsProperlySetToParentWhenEagerLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphOneTest::testMorphOneGuessedInverseRelationIsProperlySetToParentWhenLazyLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphOneTest::testMorphOneGuessedInverseRelationIsProperlySetToParentWhenEagerLoaded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphOneTest::testMorphOneInverseRelationIsProperlySetToParentWhenMaking SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphOneTest::testMorphOneInverseRelationIsProperlySetToParentWhenCreating SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphOneTest::testMorphOneInverseRelationIsProperlySetToParentWhenCreatingQuietly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphOneTest::testMorphOneInverseRelationIsProperlySetToParentWhenForceCreating SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphOneTest::testMorphOneInverseRelationIsProperlySetToParentWhenSaving SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphOneTest::testMorphOneInverseRelationIsProperlySetToParentWhenSavingQuietly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationMorphOneTest::testMorphOneInverseRelationIsProperlySetToParentWhenUpdating SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationTest::testBuilderCallbackIsNotAppliedWhenInverseRelationIsNotSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationTest::testBuilderCallbackIsNotSetIfInverseRelationIsEmptyString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationTest::testBuilderCallbackIsNotSetIfInverseRelationshipDoesNotExist SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationTest::testWithoutInverseMethodRemovesInverseRelation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationTest::testBuilderCallbackIsAppliedWhenInverseRelationIsSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationTest::testBuilderCallbackAppliesInverseRelationToAllModelsInResult SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationTest::testInverseRelationIsNotSetIfInverseRelationIsUnset SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationTest::testProvidesPossibleInverseRelationBasedOnParent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationTest::testProvidesPossibleInverseRelationBasedOnForeignKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationTest::testProvidesPossibleRecursiveRelationsIfRelatedIsTheSameClassAsParent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationTest::testGuessesInverseRelationBasedOnParent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationTest::testGuessesPossibleInverseRelationBasedOnForeignKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationTest::testGuessesRecursiveInverseRelationsIfRelatedIsSameClassAsParent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationTest::testSetsGuessedInverseRelationBasedOnParent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationTest::testSetsRecursiveInverseRelationsIfRelatedIsSameClassAsParent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationTest::testSetsGuessedInverseRelationBasedOnForeignKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentInverseRelationTest::testOnlyHydratesInverseRelationOnModels SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIrregularPluralTest::testItPluralizesTheTableName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIrregularPluralTest::testItTouchesTheParentWithAnIrregularPlural SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentIrregularPluralTest::testItPluralizesMorphToManyRelationships SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentLocalScopesTest::testCanCheckExistenceOfLocalScope SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentLocalScopesTest::testLocalScopeIsApplied SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentLocalScopesTest::testDynamicLocalScopeIsApplied SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentLocalScopesTest::testLocalScopesCanChained SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentLocalScopesTest::testLocalScopeNestingDoesntDoubleFirstWhereClauseNegation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentLocalScopesTest::testLocalScopeNestingGroupsOrNotWhereClause SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testAttributeManipulation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testSetAttributeWithNumericKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDirtyAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testIntAndNullComparisonWhenDirty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testFloatAndNullComparisonWhenDirty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDirtyOnCastOrDateAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDirtyOnCastedObjects SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDirtyOnCastedArrayObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDirtyOnCastedCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDirtyOnCastedCustomCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDirtyOnCastedCustomCollectionAsArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDirtyOnCastedStringable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDirtyOnCastedHtmlString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDirtyOnCastedUri SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDirtyOnCastedFluent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDirtyOnEnumCollectionObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDirtyOnCustomEnumCollectionObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDirtyOnEnumArrayObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDirtyOnCustomEnumArrayObjectUsing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testHasCastsOnEnumAttribute SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testCleanAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testCleanWhenFloatUpdateAttribute SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testCalculatedAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testArrayAccessToAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testOnly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testExcept SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testNewInstanceReturnsNewInstanceWithAttributesSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testNewInstanceReturnsNewInstanceWithTableSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testNewInstanceReturnsNewInstanceWithMergedCasts SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testCreateMethodSavesNewModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testMakeMethodDoesNotSaveNewModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testForceCreateMethodSavesNewModelWithGuardedAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testFindMethodUseWritePdo SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDestroyMethodCallsQueryBuilderCorrectly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDestroyMethodCallsQueryBuilderCorrectlyWithCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDestroyMethodCallsQueryBuilderCorrectlyWithEloquentCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDestroyMethodCallsQueryBuilderCorrectlyWithMultipleArgs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDestroyMethodCallsQueryBuilderCorrectlyWithEmptyIds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testWithMethodCallsQueryBuilderCorrectly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testWithoutMethodRemovesEagerLoadedRelationshipCorrectly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testWithOnlyMethodLoadsRelationshipCorrectly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testEagerLoadingWithColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testWithWhereHasWithSpecificColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testWithWhereHasWorksInNestedQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testWithMethodCallsQueryBuilderCorrectlyWithArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testUpdateProcess SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testUpdateProcessDoesntOverrideTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testSaveIsCanceledIfSavingEventReturnsFalse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testUpdateIsCanceledIfUpdatingEventReturnsFalse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testEventsCanBeFiredWithCustomEventObjects SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testUpdateProcessWithoutTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testUpdateUsesOldPrimaryKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testTimestampsAreReturnedAsObjects SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testTimestampsAreReturnedAsObjectsFromPlainDatesAndTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testTimestampsAreReturnedAsObjectsOnCreate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDateTimeAttributesReturnNullIfSetToNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testTimestampsAreCreatedFromStringsAndIntegers SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testFromDateTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testFromDateTimeMilliseconds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testInsertProcess SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testInsertIsCanceledIfCreatingEventReturnsFalse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDeleteProperlyDeletesModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testPushNoRelations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testPushEmptyOneRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testPushOneRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testPushEmptyManyRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testPushManyRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testPushCircularRelations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testNewQueryReturnsEloquentQueryBuilder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testGetAndSetTableOperations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testGetKeyReturnsValueOfPrimaryKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testConnectionManagement SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testConnectionEnums SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testToArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testToArrayWithCircularRelations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testGetQueueableRelationsWithCircularRelations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testVisibleCreatesArrayWhitelist SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testHiddenCanAlsoExcludeRelationships SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testGetArrayableRelationsFunctionExcludeHiddenRelationships SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testToArraySnakeAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testToArrayUsesMutators SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testHidden SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testMergeHiddenMergesHidden SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testVisible SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testMergeVisibleMergesVisible SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDynamicHidden SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testWithHidden SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testMakeHidden SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDynamicVisible SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testMakeVisibleIf SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testMakeHiddenIf SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testFillable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testQualifyColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testForceFillMethodFillsGuardedAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testFillingJSONAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testUnguardAllowsAnythingToBeSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testUnderscorePropertiesAreNotFilled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testGuarded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testGuardedWithFillableConfig SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testUsesOverriddenHandlerWhenDiscardingAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testFillableOverridesGuarded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testGlobalGuarded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testUnguardedRunsCallbackWhileBeingUnguarded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testUnguardedCallDoesNotChangeUnguardedState SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testUnguardedCallDoesNotChangeUnguardedStateOnException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testHasOneCreatesProperRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testMorphOneCreatesProperRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testCorrectMorphClassIsReturned SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testHasManyCreatesProperRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testMorphManyCreatesProperRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testBelongsToCreatesProperRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testMorphToCreatesProperRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testBelongsToManyCreatesProperRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testRelationsWithVariedConnections SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelsAssumeTheirName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testTheMutatorCacheIsPopulated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testRouteKeyIsPrimaryKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testRouteNameIsPrimaryKeyName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testCloneModelMakesAFreshCopyOfTheModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testCloneModelMakesAFreshCopyOfTheModelWhenModelHasUuidPrimaryKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testCloneModelMakesAFreshCopyOfTheModelWhenModelHasUuid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testCloneModelMakesAFreshCopyOfTheModelWhenModelHasUlidPrimaryKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testCloneModelMakesAFreshCopyOfTheModelWhenModelHasUlid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelObserversCanBeAttachedToModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelObserversCanBeAttachedToModelsWithString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelObserversCanBeAttachedToModelsThroughAnArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelObserversCanBeAttachedToModelsWithStringUsingAttribute SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelObserversCanBeAttachedToModelsThroughAnArrayUsingAttribute SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelObserversCanBeAttachedToModelsThroughAttributesOnParentClasses SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testThrowExceptionOnAttachingNotExistsModelObserverWithString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testThrowExceptionOnAttachingNotExistsModelObserversThroughAnArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelObserversCanBeAttachedToModelsThroughCallingObserveMethodOnlyOnce SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testWithoutEventDispatcher SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testSetObservableEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testAddObservableEvent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testAddMultipleObserveableEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testRemoveObservableEvent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testRemoveMultipleObservableEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testGetModelAttributeMethodThrowsExceptionIfNotRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelIsBootedOnUnserialize SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testCallbacksCanBeRunAfterBootingHasFinished SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testBootedCallbacksAreSeparatedByClass SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelsTraitIsInitialized SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testAppendingOfAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testMergeAppendsMergesAppends SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testGetMutatedAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testReplicateCreatesANewModelInstanceWithSameAttributeValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testReplicatingEventIsFiredWhenReplicatingModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testReplicateQuietlyCreatesANewModelInstanceWithSameAttributeValuesAndIsQuiet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testIncrementOnExistingModelCallsQueryAndSetsAttribute SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testIncrementQuietlyOnExistingModelCallsQueryAndSetsAttributeAndIsQuiet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDecrementQuietlyOnExistingModelCallsQueryAndSetsAttributeAndIsQuiet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testRelationshipTouchOwnersIsPropagated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testRelationshipTouchOwnersIsNotPropagatedIfNoRelationshipResult SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelAttributesAreCastedWhenPresentInCastsPropertyOrCastsMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelDateAttributeCastingResetsTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelAttributeCastingPreservesNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelAttributeCastingFailsOnUnencodableData SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelJsonCastingFailsOnUnencodableData SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelAttributeCastingFailsOnUnencodableDataWithUnicode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testJsonCastingRespectsUnicodeOption SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelAttributeCastingWithFloats SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelAttributeCastingWithArrays SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testMergeCastsMergesCasts SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testMergeCastsMergesCastsUsingArrays SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testUnsetCastAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testUpdatingNonExistentModelFails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testIssetBehavesCorrectlyWithAttributesAndRelationships SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testNonExistingAttributeWithInternalMethodNameDoesntCallMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testIntKeyTypePreserved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testStringKeyTypePreserved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testScopesMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testScopesMethodWithString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testIsWithNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testIsWithTheSameModelInstance SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testIsWithAnotherModelInstance SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testIsWithAnotherTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testIsWithAnotherConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testWithoutTouchingCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testWithoutTouchingOnCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testThrowsWhenAccessingMissingAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testThrowsWhenAccessingMissingAttributesWhichArePrimitiveCasts SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testUsesOverriddenHandlerWhenAccessingMissingAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDoesntThrowWhenAccessingMissingAttributesOnModelThatIsNotSaved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDoesntThrowWhenAccessingMissingAttributesOnModelThatWasRecentlyCreated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDoesntThrowWhenAssigningMissingAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDoesntThrowWhenTestingMissingAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testTouchingModelWithTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testNotTouchingModelWithUpdatedAtNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testNotTouchingModelWithoutTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testGetOriginalCastsAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testCastsMethodHasPriorityOverCastsProperty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testCastsMethodIsTakenInConsiderationOnSerialization SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testCastOnArrayFormatWithOneElement SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testUsingStringableObjectCastUsesStringRepresentation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testMergeingStringableObjectCastUSesStringRepresentation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testUsingPlainObjectAsCastThrowsException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testUnsavedModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDiscardChanges SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDiscardChangesWithCasts SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testHasAttribute SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelToJsonSucceedsWithPriorErrors SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testModelToPrettyJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testFillableWithMutators SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testGuardedWithMutators SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testCollectedByAttribute SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testUseFactoryAttribute SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testUseCustomBuilderWithUseEloquentBuilderAttribute SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelTest::testDefaultBuilderIsUsedWhenUseEloquentBuilderAttributeIsNotPresent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphOneOfManyTest::testEagerLoadingAppliesConstraintsToInnerJoinSubQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphOneOfManyTest::testReceivingModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphOneOfManyTest::testMorphType SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphOneOfManyTest::testForceCreateMorphType SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphOneOfManyTest::testExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphOneOfManyTest::testWithWhereHas SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphOneOfManyTest::testWithWhereRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphOneOfManyTest::testWithExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphOneOfManyTest::testWithExistsWithConstraintsInJoinSubSelect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testMorphOneSetsProperConstraints SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testMorphOneEagerConstraintsAreProperlyAdded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testMorphManySetsProperConstraints SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testMorphManyEagerConstraintsAreProperlyAdded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testMorphRelationUpsertFillsForeignKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testMakeFunctionOnMorph SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testCreateFunctionOnMorph SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testFindOrNewMethodFindsModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testFindOrNewMethodReturnsNewModelWithMorphKeysSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testFirstOrNewMethodFindsFirstModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testFirstOrNewMethodWithValueFindsFirstModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testFirstOrNewMethodReturnsNewModelWithMorphKeysSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testFirstOrNewMethodWithValuesReturnsNewModelWithMorphKeysSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testFirstOrCreateMethodFindsFirstModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testFirstOrCreateMethodWithValuesFindsFirstModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testFirstOrCreateMethodCreatesNewMorphModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testFirstOrCreateMethodWithValuesCreatesNewMorphModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testCreateOrFirstMethodFindsFirstModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testCreateOrFirstMethodWithValuesFindsFirstModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testCreateOrFirstMethodCreatesNewMorphModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testCreateOrFirstMethodWithValuesCreatesNewMorphModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testUpdateOrCreateMethodFindsFirstModelAndUpdates SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testUpdateOrCreateMethodCreatesNewMorphModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testCreateFunctionOnNamespacedMorph SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testIsNotNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testIsModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testIsModelWithStringRelatedKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testIsNotModelWithNullRelatedKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testIsNotModelWithAnotherRelatedKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testIsNotModelWithAnotherTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphTest::testIsNotModelWithAnotherConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToManyTest::testEagerConstraintsAreProperlyAdded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToManyTest::testAttachInsertsPivotTableRecord SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToManyTest::testDetachRemovesPivotTableRecord SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToManyTest::testDetachMethodClearsAllPivotRecordsWhenNoIDsAreGiven SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToManyTest::testQueryExpressionCanBePassedToDifferentPivotQueryBuilderClauses SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testLookupDictionaryIsProperlyConstructedForEnums SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testLookupDictionaryIsProperlyConstructed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testMorphToWithDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testMorphToWithDynamicDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testMorphToWithArrayDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testMorphToWithZeroMorphType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testMorphToWithEmptyStringMorphType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testMorphToWithSpecifiedClassDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testAssociateMethodSetsForeignKeyAndTypeOnModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testAssociateMethodIgnoresNullValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testDissociateMethodDeletesUnsetsKeyAndTypeOnModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testIsNotNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testIsModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testIsModelWithIntegerParentKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testIsModelWithIntegerRelatedKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testIsModelWithIntegerKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testIsNotModelWithNullParentKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testIsNotModelWithNullRelatedKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testIsNotModelWithAnotherKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testIsNotModelWithAnotherTable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMorphToTest::testIsNotModelWithAnotherConnection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPivotTest::testPropertiesAreSetCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPivotTest::testMutatorsAreCalledFromConstructor SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPivotTest::testFromRawAttributesDoesNotDoubleMutate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPivotTest::testFromRawAttributesDoesNotMutate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPivotTest::testPropertiesUnchangedAreNotDirty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPivotTest::testPropertiesChangedAreDirty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPivotTest::testTimestampPropertyIsSetIfCreatedAtInAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPivotTest::testTimestampPropertyIsTrueWhenCreatingFromRawAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPivotTest::testKeysCanBeSetProperly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPivotTest::testDeleteMethodDeletesModelByKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPivotTest::testPivotModelTableNameIsSingular SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPivotTest::testPivotModelWithParentReturnsParentsTimestampColumns SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPivotTest::testPivotModelWithoutParentReturnsModelTimestampColumns SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPivotTest::testWithoutRelations SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPolymorphicIntegrationTest::testItLoadsRelationshipsAutomatically SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPolymorphicIntegrationTest::testItLoadsChainedRelationshipsAutomatically SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPolymorphicIntegrationTest::testItLoadsNestedRelationshipsAutomatically SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPolymorphicIntegrationTest::testItLoadsNestedRelationshipsOnDemand SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPolymorphicIntegrationTest::testItLoadsNestedMorphRelationshipsOnDemand SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPolymorphicIntegrationTest::testItLoadsNestedMorphRelationshipCountsOnDemand SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPolymorphicRelationsIntegrationTest::testCreation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPolymorphicRelationsIntegrationTest::testEagerLoading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPolymorphicRelationsIntegrationTest::testChunkById SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentRelationshipsTest::testStandardRelationships SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentRelationshipsTest::testOverriddenRelationships SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentRelationshipsTest::testAlwaysUnsetBelongsToRelationWhenReceivedModelId SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentRelationshipsTest::testPendingHasThroughRelationship SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentRelationshipsTest::testStringyHasThroughApi SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testHigherOrderHasThroughApi SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentRelationTest::testSetRelationFail SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentRelationTest::testUnsetExistingRelation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentRelationTest::testTouchMethodUpdatesRelatedTimestamps SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentRelationTest::testCanDisableParentTouchingForAllModels SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentRelationTest::testCanDisableTouchingForSpecificModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentRelationTest::testParentModelIsNotTouchedWhenChildModelIsIgnored SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentRelationTest::testIgnoredModelsStateIsResetWhenThereAreExceptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentRelationTest::testSettingMorphMapWithNumericArrayUsesTheTableNames SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentRelationTest::testSettingMorphMapWithNumericKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentRelationTest::testGetMorphAlias SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentRelationTest::testWithoutRelations SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentRelationTest::testMacroable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentRelationTest::testIsRelationIgnoresAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentResourceCollectionTest::testItCanTransformToExplicitResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentResourceCollectionTest::testItThrowsExceptionWhenResourceCannotBeFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: for::testItCanGuessResourceWhenNotProvided SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: for::testItCanTransformToResourceViaUseResourceAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: for::testItCanTransformToResourceViaUseResourceCollectionAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentResourceModelTest::testItCanTransformToExplicitResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentResourceModelTest::testItThrowsExceptionWhenResourceCannotBeFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: for::testItCanGuessResourceWhenNotProvided SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: for::testItCanGuessResourceWhenNotProvidedWithNonResourceSuffix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: for::testItCanGuessResourceName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: for::testItCanTransformToResourceViaUseResourceAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testSoftDeletesAreNotRetrieved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testSoftDeletesAreNotRetrievedFromBaseQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testSoftDeletesAreNotRetrievedFromRelationshipBaseQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testSoftDeletesAreNotRetrievedFromBuilderHelpers SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testWithTrashedReturnsAllRecords SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testWithTrashedAcceptsAnArgument SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testDeleteSetsDeletedColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testForceDeleteActuallyDeletesRecords SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testForceDeleteUpdateExistsProperty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testForceDeleteDoesntUpdateExistsPropertyIfFailed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testForceDestroyFullyDeletesRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testForceDestroyDeletesAlreadyDeletedRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testForceDestroyDeletesMultipleRecords SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testForceDestroyDeletesRecordsFromCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testForceDestroyDeletesRecordsFromEloquentCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testRestoreRestoresRecords SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testOnlyTrashedOnlyReturnsTrashedRecords SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testOnlyWithoutTrashedOnlyReturnsTrashedRecords SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testFirstOrNew SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testFindOrNew SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testFirstOrCreate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testCreateOrFirst SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testUpdateModelAfterSoftDeleting SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testRestoreAfterSoftDelete SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testSoftDeleteAfterRestoring SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testModifyingBeforeSoftDeletingAndRestoring SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testUpdateOrCreate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testHasOneRelationshipCanBeSoftDeleted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testBelongsToRelationshipCanBeSoftDeleted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testHasManyRelationshipCanBeSoftDeleted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testRelationToSqlAppliesSoftDelete SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testRelationExistsAndDoesntExistHonorsSoftDelete SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testRelationCountHonorsSoftDelete SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testRelationAggregatesHonorsSoftDelete SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testSoftDeleteIsAppliedToNewQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testSecondLevelRelationshipCanBeSoftDeleted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testWhereHasWithDeletedRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testWhereHasWithNestedDeletedRelationshipAndOnlyTrashedCondition SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testWhereHasWithNestedDeletedRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testWhereDoesntHaveWithNestedDeletedRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testWhereHasWithNestedDeletedRelationshipAndWithTrashedCondition SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testWithCountWithNestedDeletedRelationshipAndOnlyTrashedCondition SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testOrWhereWithSoftDeleteConstraint SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testMorphToWithTrashed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testMorphToWithBadMethodCall SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testMorphToWithConstraints SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testMorphToWithoutConstraints SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testMorphToNonSoftDeletingModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSoftDeletesIntegrationTest::testSelfReferencingRelationshipWithSoftDeletes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentStrictMorphsTest::testStrictModeThrowsAnExceptionOnClassMap SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentStrictMorphsTest::testStrictModeDoesNotThrowExceptionWhenMorphMap SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentStrictMorphsTest::testMapsCanBeEnforcedInOneMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentStrictMorphsTest::testMapIgnoreGenericPivotClass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentStrictMorphsTest::testMapCanBeEnforcedToCustomPivotClass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseEloquentTimestampsTest::testUserWithCreatedAtAndUpdatedAt SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentTimestampsTest::testUserWithCreatedAt SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentTimestampsTest::testUserWithUpdatedAt SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentTimestampsTest::testWithoutTimestamp SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentTimestampsTest::testWithoutTimestampWhenAlreadyIgnoringTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentTimestampsTest::testWithoutTimestampRestoresWhenClosureThrowsException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentTimestampsTest::testWithoutTimestampsRespectsClasses SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentWithAttributesPendingTest::testAddsAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentWithAttributesPendingTest::testDoesNotAddWheres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentWithAttributesPendingTest::testAddsWithCasts SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentWithAttributesPendingTest::testAddsWithCastsViaDb SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentWithAttributesTest::testAddsAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentWithAttributesTest::testAddsWheres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentWithAttributesTest::testAddsWithCasts SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentWithAttributesTest::testAddsWithCastsViaDb SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentWithCastsTest::testWithFirstOrNew SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentWithCastsTest::testWithFirstOrCreate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentWithCastsTest::testWithCreateOrFirst SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentWithCastsTest::testThrowsExceptionIfCastableAttributeWasNotRetrievedAndPreventMissingAttributesIsEnabled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseIntegrationTest::testQueryExecutedToRawSql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbBuilderTest::testCreateDatabase SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbBuilderTest::testDropDatabaseIfExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbProcessorTest::testProcessColumns SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbQueryGrammarTest::testToRawSql SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaBuilderTest::testHasTable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaBuilderTest::testGetColumnListing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testBasicCreateTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAutoIncrementStartingValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddColumnsWithMultipleAutoIncrementStartingValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testEngineCreateTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testCharsetCollationCreateTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testBasicCreateTableWithPrefix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testCreateTemporaryTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testDropTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testDropTableIfExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testDropColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testDropPrimary SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testDropUnique SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testDropIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testDropSpatialIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testDropForeign SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testDropTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testDropTimestampsTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testDropMorphs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testRenameTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testRenameIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingPrimaryKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingPrimaryKeyWithAlgorithm SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingUniqueKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingIndexWithAlgorithm SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingFulltextIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingSpatialIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingFluentSpatialIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingRawIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingForeignKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingIncrementingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingSmallIncrementingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingForeignID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingForeignIdSpecifyingIndexNameInConstraint SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingBigIncrementingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingColumnInTableFirst SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingColumnAfterAnotherColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingMultipleColumnsAfterAnotherColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingGeneratedColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingGeneratedColumnWithCharset SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingGeneratedColumnByExpression SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingInvisibleColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingText SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingBigInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingIncrementsWithStartingValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingMediumInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingSmallInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingTinyInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingFloat SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingDouble SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingDecimal SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingBoolean SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingJsonb SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingDate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingDateWithDefaultCurrent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingYear SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingYearWithDefaultCurrent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingDateTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingDateTimeWithDefaultCurrent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingDateTimeWithOnUpdateCurrent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingDateTimeWithDefaultCurrentAndOnUpdateCurrent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingDateTimeWithDefaultCurrentOnUpdateCurrentAndPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingDateTimeTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingTimeWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingTimeTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingTimeTzWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingTimestamp SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingTimestampWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingTimestampWithDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingTimestampWithDefaultCurrentSpecifyingPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingTimestampWithOnUpdateCurrentSpecifyingPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingTimestampWithDefaultCurrentAndOnUpdateCurrentSpecifyingPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingTimestampTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingTimestampTzWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingTimeStampTzWithDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingTimestampsTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingRememberToken SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingBinary SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingUuid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingUuidOn106 SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingUuidDefaultsColumnName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingForeignUuid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingIpAddress SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingIpAddressDefaultsColumnName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingMacAddress SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingMacAddressDefaultsColumnName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingGeometry SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingGeography SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingPoint SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingPointWithSrid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingPointWithSridColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingLineString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingPolygon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingGeometryCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingMultiPoint SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingMultiLineString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingMultiPolygon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testAddingComment SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testCreateDatabase SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testCreateTableWithVirtualAsColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testCreateTableWithVirtualAsColumnWhenJsonColumnHasArrayKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testCreateTableWithStoredAsColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testDropDatabaseIfExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testDropAllTables SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testDropAllViews SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaGrammarTest::testGrammarsAreMacroable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaStateTest::testConnectionString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationCreatorTest::testBasicCreateMethodStoresMigrationFile SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationCreatorTest::testBasicCreateMethodCallsPostCreateHooks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: baz::testTableUpdateMigrationStoresMigrationFile SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: baz::testTableCreationMigrationStoresMigrationFile SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: baz::testTableUpdateMigrationWontCreateDuplicateClass SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationInstallCommandTest::testFireCallsRepositoryToInstall SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationInstallCommandTest::testFireCallsRepositoryToInstallExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationMakeCommandTest::testBasicCreateDumpsAutoload SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationMakeCommandTest::testBasicCreateGivesCreatorProperArguments SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationMakeCommandTest::testBasicCreateGivesCreatorProperArgumentsWhenNameIsStudlyCase SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationMakeCommandTest::testBasicCreateGivesCreatorProperArgumentsWhenTableIsSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationMakeCommandTest::testBasicCreateGivesCreatorProperArgumentsWhenCreateTablePatternIsFound SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationMakeCommandTest::testCanSpecifyPathToCreateMigrationsIn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationMigrateCommandTest::testBasicMigrationsCallMigratorWithProperArguments SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationMigrateCommandTest::testMigrationsCanBeRunWithStoredSchema SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationMigrateCommandTest::testMigrationRepositoryCreatedWhenNecessary SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationMigrateCommandTest::testTheCommandMayBePretended SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationMigrateCommandTest::testTheDatabaseMayBeSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationMigrateCommandTest::testStepMayBeSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationRefreshCommandTest::testRefreshCommandCallsCommandsWithProperArguments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigrationRefreshCommandTest::testRefreshCommandCallsCommandsWithStep SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigrationRefreshCommandTest::testRefreshCommandExitsWhenProhibited SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigrationRepositoryTest::testGetRanMigrationsListMigrationsByPackage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigrationRepositoryTest::testGetLastMigrationsGetsAllMigrationsWithTheLatestBatchNumber SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigrationRepositoryTest::testLogMethodInsertsRecordIntoMigrationTable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigrationRepositoryTest::testDeleteMethodRemovesAMigrationFromTheTable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigrationRepositoryTest::testGetNextBatchNumberReturnsLastBatchNumberPlusOne SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigrationRepositoryTest::testGetLastBatchNumberReturnsMaxBatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigrationRepositoryTest::testCreateRepositoryCreatesProperDatabaseTable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigrationResetCommandTest::testResetCommandCallsMigratorWithProperArguments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigrationResetCommandTest::testResetCommandCanBePretended SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigrationResetCommandTest::testRefreshCommandExitsWhenProhibited SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigrationRollbackCommandTest::testRollbackCommandCallsMigratorWithProperArguments SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationRollbackCommandTest::testRollbackCommandCallsMigratorWithStepOption SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationRollbackCommandTest::testRollbackCommandCanBePretended SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationRollbackCommandTest::testRollbackCommandCanBePretendedWithStepOption SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigratorIntegrationTest::testBasicMigrationOfSingleFolder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigratorIntegrationTest::testMigrationsDefaultConnectionCanBeChanged SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigratorIntegrationTest::testMigrationsCanEachDefineConnection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigratorIntegrationTest::testMigratorCannotChangeDefinedMigrationConnection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigratorIntegrationTest::testMigrationsCanBeRolledBack SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigratorIntegrationTest::testMigrationsCanBeResetUsingAnString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigratorIntegrationTest::testMigrationsCanBeResetUsingAnArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigratorIntegrationTest::testNoErrorIsThrownWhenNoOutstandingMigrationsExist SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigratorIntegrationTest::testNoErrorIsThrownWhenNothingToRollback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigratorIntegrationTest::testMigrationsCanRunAcrossMultiplePaths SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigratorIntegrationTest::testMigrationsCanBeRolledBackAcrossMultiplePaths SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigratorIntegrationTest::testMigrationsCanBeResetAcrossMultiplePaths SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigratorIntegrationTest::testMigrationsCanBeProperlySortedAcrossMultiplePaths SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigratorIntegrationTest::testConnectionPriorToMigrationIsNotChangedAfterMigration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigratorIntegrationTest::testConnectionPriorToMigrationIsNotChangedAfterRollback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigratorIntegrationTest::testConnectionPriorToMigrationIsNotChangedWhenNoOutstandingMigrationsExist SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigratorIntegrationTest::testConnectionPriorToMigrationIsNotChangedWhenNothingToRollback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigratorIntegrationTest::testConnectionPriorToMigrationIsNotChangedAfterMigrateReset SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMySqlBuilderTest::testCreateDatabase SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlBuilderTest::testDropDatabaseIfExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlProcessorTest::testProcessColumns SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMySqlQueryGrammarTest::testToRawSql SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMySQLSchemaBuilderTest::testHasTable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMySQLSchemaBuilderTest::testGetColumnListing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testBasicCreateTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAutoIncrementStartingValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddColumnsWithMultipleAutoIncrementStartingValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testEngineCreateTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testCharsetCollationCreateTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testBasicCreateTableWithPrefix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testCreateTemporaryTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testDropTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testDropTableIfExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testDropColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testDropPrimary SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testDropUnique SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testDropIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testDropSpatialIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testDropForeign SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testDropTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testDropTimestampsTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testDropMorphs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testRenameTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testRenameIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingPrimaryKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingPrimaryKeyWithAlgorithm SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingUniqueKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingIndexWithAlgorithm SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingFulltextIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingSpatialIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingFluentSpatialIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingRawIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingForeignKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingIncrementingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingSmallIncrementingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingForeignID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingForeignIdSpecifyingIndexNameInConstraint SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingBigIncrementingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingColumnInTableFirst SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingColumnAfterAnotherColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingMultipleColumnsAfterAnotherColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingGeneratedColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingGeneratedColumnWithCharset SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingGeneratedColumnByExpression SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingInvisibleColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingText SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingBigInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingIncrementsWithStartingValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingMediumInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingSmallInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingTinyInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingFloat SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingDouble SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingDecimal SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingBoolean SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingJsonb SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingDate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingDateWithDefaultCurrent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingDateWithDefaultCurrentOn57 SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingYear SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingYearWithDefaultCurrent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingYearWithDefaultCurrentOn57 SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingDateTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingDateTimeWithDefaultCurrent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingDateTimeWithOnUpdateCurrent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingDateTimeWithDefaultCurrentAndOnUpdateCurrent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingDateTimeWithDefaultCurrentOnUpdateCurrentAndPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingDateTimeTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingTimeWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingTimeTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingTimeTzWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingTimestamp SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingTimestampWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingTimestampWithDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingTimestampWithDefaultCurrentSpecifyingPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingTimestampWithOnUpdateCurrentSpecifyingPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingTimestampWithDefaultCurrentAndOnUpdateCurrentSpecifyingPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingTimestampTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingTimestampTzWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingTimeStampTzWithDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingTimestampsTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingRememberToken SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingBinary SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingUuid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingUuidDefaultsColumnName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingForeignUuid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingIpAddress SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingIpAddressDefaultsColumnName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingMacAddress SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingMacAddressDefaultsColumnName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingGeometry SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingGeography SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingPoint SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingPointWithSrid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingPointWithSridColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingLineString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingPolygon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingGeometryCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingMultiPoint SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingMultiLineString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingMultiPolygon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingComment SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingVector SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testCreateDatabase SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testCreateTableWithVirtualAsColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testCreateTableWithVirtualAsColumnWhenJsonColumnHasArrayKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testCreateTableWithStoredAsColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testDropDatabaseIfExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testDropAllTables SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testDropAllViews SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testDropAllTablesWithPrefixAndSchema SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testDropAllViewsWithPrefixAndSchema SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testGrammarsAreMacroable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testAddingColumnWithAlgorithm SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testChangingColumnWithAlgorithm SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaGrammarTest::testDroppingColumnWithAlgorithm SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaStateTest::testConnectionString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaStateTest::testExecuteDumpProcessForDepth SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresBuilderTest::testCreateDatabase SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresBuilderTest::testDropDatabaseIfExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresBuilderTest::testHasTableWhenSchemaUnqualifiedAndSearchPathMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresBuilderTest::testHasTableWhenSchemaUnqualifiedAndSearchPathFilled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresBuilderTest::testHasTableWhenSchemaUnqualifiedAndSearchPathFallbackFilled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresBuilderTest::testHasTableWhenSchemaUnqualifiedAndSearchPathIsUserVariable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresBuilderTest::testHasTableWhenSchemaQualifiedAndSearchPathMismatches SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresBuilderTest::testHasTableWhenDatabaseAndSchemaQualifiedAndSearchPathMismatches SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresBuilderTest::testGetColumnListingWhenSchemaUnqualifiedAndSearchPathMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresBuilderTest::testGetColumnListingWhenSchemaUnqualifiedAndSearchPathFilled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresBuilderTest::testGetColumnListingWhenSchemaUnqualifiedAndSearchPathIsUserVariable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresBuilderTest::testGetColumnListingWhenSchemaQualifiedAndSearchPathMismatches SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresBuilderTest::testGetColumnWhenDatabaseAndSchemaQualifiedAndSearchPathMismatches SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresBuilderTest::testDropAllTablesWhenSearchPathIsString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresBuilderTest::testDropAllTablesWhenSearchPathIsStringOfMany SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresBuilderTest::testDropAllTablesWhenSearchPathIsArrayOfMany SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresProcessorTest::testProcessColumns SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresQueryGrammarTest::testToRawSql SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresQueryGrammarTest::testCustomOperators SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresQueryGrammarTest::testCompileTruncate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaBuilderTest::testHasTable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaBuilderTest::testGetColumnListing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testBasicCreateTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingVector SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testCreateTableWithAutoIncrementStartingValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddColumnsWithMultipleAutoIncrementStartingValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testCreateTableAndCommentColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testCreateTemporaryTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testDropTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testDropTableIfExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testDropColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testDropPrimary SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testDropUnique SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testDropIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testDropSpatialIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testDropForeign SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testDropTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testDropTimestampsTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testDropMorphs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testRenameTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testRenameIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingPrimaryKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingUniqueKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingUniqueKeyWithNullsNotDistinct SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingUniqueKeyWithNullsDistinct SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingUniqueKeyOnline SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingIndexWithAlgorithm SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingIndexOnline SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingFulltextIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingFulltextIndexMultipleColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingFulltextIndexWithLanguage SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingFulltextIndexOnline SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingFulltextIndexWithFluency SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingSpatialIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingSpatialIndexOnline SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingFluentSpatialIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingSpatialIndexWithOperatorClass SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingSpatialIndexWithOperatorClassMultipleColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingSpatialIndexWithOperatorClassOnline SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingRawIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingRawIndexOnline SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingIncrementingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingSmallIncrementingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingMediumIncrementingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingForeignID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingForeignIdSpecifyingIndexNameInConstraint SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingBigIncrementingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingStringWithoutLengthLimit SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingCharWithoutLengthLimit SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingText SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingBigInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingMediumInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingTinyInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingSmallInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingFloat SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingDouble SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingDecimal SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingBoolean SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingDate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingDateWithDefaultCurrent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingYear SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingYearWithDefaultCurrent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingJsonb SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingDatetimeMethods SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingBinary SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingUuid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingUuidDefaultsColumnName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingForeignUuid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingGeneratedAs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingVirtualAs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingStoredAs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingIpAddress SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingIpAddressDefaultsColumnName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingMacAddress SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingMacAddressDefaultsColumnName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testCompileForeign SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingGeometry SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingGeography SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingPoint SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingPointWithSrid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingLineString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingPolygon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingGeometryCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingMultiPoint SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingMultiLineString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testAddingMultiPolygon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testCreateDatabase SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testDropDatabaseIfExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testDropAllTablesEscapesTableNames SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testDropAllViewsEscapesTableNames SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testDropAllTypesEscapesTableNames SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testDropAllTablesWithPrefixAndSchema SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testDropAllViewsWithPrefixAndSchema SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testDropAllTypesWithPrefixAndSchema SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testDropAllDomainsWithPrefixAndSchema SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testCompileColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresSchemaGrammarTest::testGrammarsAreMacroable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseProcessorTest::testInsertGetIdProcessing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicSelect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicSelectWithGetColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicSelectUseWritePdo SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicTableWrappingProtectsQuotationMarks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testAliasWrappingAsWholeConstant SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testAliasWrappingWithSpacesInDatabaseName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testAddingSelects SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicSelectWithPrefix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicSelectDistinct SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicSelectDistinctOnColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicAlias SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testAliasWithPrefix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinAliasesWithPrefix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicTableWrapping SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhenCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhenCallbackWithReturn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhenCallbackWithDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUnlessCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUnlessCallbackWithReturn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUnlessCallbackWithDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testTapCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPipeCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicWheres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicWhereNot SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWheresWithArrayValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlWrappingProtectsQuotationMarks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testDateBasedWheresAcceptsTwoArguments SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testDateBasedOrWheresAcceptsTwoArguments SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testDateBasedWheresExpressionIsNotBound SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereDateMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereDayMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereDayMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereDayPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereDaySqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereMonthMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereMonthMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereMonthPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereMonthSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereYearMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereYearMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereYearPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereYearSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereTimeMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereTimeOperatorOptionalMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereTimeOperatorOptionalPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereTimeSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereTimeMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereTimePostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereTimeSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereDatePostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereDayPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereMonthPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereYearPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereTimePostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWherePast SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWherePastUsesArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereTodayMySQL SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPassingArrayToWhereTodayMySQL SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereTodaySqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPassingArrayToWhereTodaySqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereFuture SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPassingArrayToWhereFuture SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereLikePostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereLikeClausePostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereLikeClauseMysql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereLikeClauseSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereLikeClauseSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereDateSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereDaySqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereMonthSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereYearSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereTimeSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereTimeOperatorOptionalSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereDateSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereDaySqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereMonthSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereYearSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereBetweens SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereBetween SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereNotBetween SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereBetweenColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereBetweenColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereNotBetweenColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereValueBetween SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereValueBetween SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereValueNotBetween SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereValueNotBetween SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicOrWheres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicOrWhereNot SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testRawWheres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testRawOrWheres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicWhereIns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicWhereInsException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicWhereNotIns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testRawWhereIns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testEmptyWhereIns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testEmptyWhereNotIns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereIntegerInRaw SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereIntegerInRaw SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereIntegerNotInRaw SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereIntegerNotInRaw SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testEmptyWhereIntegerInRaw SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testEmptyWhereIntegerNotInRaw SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicWhereColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testArrayWhereColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereFulltextMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereFulltextPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereAll SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereAll SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereAny SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereAny SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereNone SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWhereNone SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUnions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUnionAlls SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMultipleUnions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMultipleUnionAlls SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUnionOrderBys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUnionLimitsAndOffsets SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUnionWithJoin SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlUnionOrderBys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlUnionLimitsAndOffsets SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUnionAggregate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testHavingAggregate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSubSelectWhereIns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicWhereNulls SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicWhereNullExpressionsMysql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJsonWhereNullMysql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJsonWhereNotNullMysql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJsonWhereNullExpressionMysql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJsonWhereNotNullExpressionMysql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testArrayWhereNulls SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicWhereNotNulls SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testArrayWhereNotNulls SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testGroupBys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrderBys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testLatest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOldest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testInRandomOrderMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testInRandomOrderPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testInRandomOrderSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrderBysSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testReorder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrderBySubQueries SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrderByInvalidDirectionParam SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testHavings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testNestedHavings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testNestedHavingBindings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testHavingBetweens SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testHavingNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testHavingNotNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testHavingExpression SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testHavingShortcut SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testHavingFollowedBySelectGet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testRawHavings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testLimitsAndOffsets SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testForPage SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testForPageBeforeId SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testForPageAfterId SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testGetCountForPaginationWithBindings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testGetCountForPaginationWithColumnAliases SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testGetCountForPaginationWithUnion SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testGetCountForPaginationWithUnionOrders SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testGetCountForPaginationWithUnionLimitAndOffset SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereShortcut SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testOrWheresHaveConsistentResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereWithArrayConditions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testNestedWheres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testNestedWhereBindings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereNot SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testIncrementManyArgumentValidation1 SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testIncrementManyArgumentValidation2 SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereNotWithArrayConditions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testFullSubSelects SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBasicJoins SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCrossJoins SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCrossJoinSubs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testComplexJoin SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinWhereNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinWhereNotNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinWhereIn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinWhereInSubquery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinWhereNotIn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinsWithNestedConditions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinsWithAdvancedConditions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinsWithSubqueryCondition SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinsWithAdvancedSubqueryCondition SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinsWithNestedJoins SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinsWithMultipleNestedJoins SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinsWithNestedJoinWithAdvancedSubqueryCondition SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinWithNestedOnCondition SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinSub SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinSubWithPrefix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testLeftJoinSub SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testRightJoinSub SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinLateral SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinLateralMariaDb SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinLateralSQLite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinLateralPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinLateralSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJoinLateralWithPrefix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testLeftJoinLateral SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testLeftJoinLateralSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testRawExpressionsInSelect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testFindReturnsFirstResultByID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testFindOrReturnsFirstResultByID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testFirstMethodReturnsFirstResult SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testFirstOrFailMethodReturnsFirstResult SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testFirstOrFailMethodThrowsRecordNotFoundException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPluckMethodGetsCollectionOfColumnValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPluckAvoidsDuplicateColumnSelection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testImplode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testValueMethodReturnsSingleColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testRawValueMethodReturnsSingleColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testAggregateFunctions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSqlServerExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testExistsOr SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testDoesntExistsOr SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testAggregateResetFollowedByGet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testAggregateResetFollowedBySelectGet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testAggregateResetFollowedByGetWithColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testAggregateWithSubSelect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSubqueriesBindings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testInsertMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testInsertUsingMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testInsertUsingWithEmptyColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testInsertUsingInvalidSubquery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testInsertOrIgnoreMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlInsertOrIgnoreMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPostgresInsertOrIgnoreMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSQLiteInsertOrIgnoreMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSqlServerInsertOrIgnoreMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testInsertOrIgnoreUsingMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSqlServerInsertOrIgnoreUsingMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlInsertOrIgnoreUsingMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlInsertOrIgnoreUsingWithEmptyColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlInsertOrIgnoreUsingInvalidSubquery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPostgresInsertOrIgnoreUsingMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPostgresInsertOrIgnoreUsingWithEmptyColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPostgresInsertOrIgnoreUsingInvalidSubquery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSQLiteInsertOrIgnoreUsingMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSQLiteInsertOrIgnoreUsingWithEmptyColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSQLiteInsertOrIgnoreUsingInvalidSubquery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testInsertGetIdMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testInsertGetIdMethodRemovesExpressions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testInsertGetIdWithEmptyValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testInsertMethodRespectsRawBindings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMultipleInsertsWithExpressionValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUpdateMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUpsertMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUpsertMethodWithUpdateColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUpdateMethodWithJoins SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUpdateMethodWithJoinsOnSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUpdateMethodWithJoinsOnMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUpdateMethodWithJoinsOnSQLite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUpdateMethodWithJoinsAndAliasesOnSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUpdateMethodWithoutJoinsOnPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUpdateMethodWithJoinsOnPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUpdateFromMethodWithJoinsOnPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUpdateMethodRespectsRaw SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUpdateMethodWorksWithQueryAsValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUpdateOrInsertMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUpdateOrInsertMethodWorksWithEmptyUpdateValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testDeleteMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testDeleteWithJoinMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testTruncateMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testTruncateMethodWithPrefix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testTruncateMethodWithPrefixAndSchema SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPreserveAddsClosureToArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testApplyPreserveCleansArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPreservedAreAppliedByToSql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPreservedAreAppliedByInsert SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPreservedAreAppliedByInsertGetId SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPreservedAreAppliedByInsertUsing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPreservedAreAppliedByUpsert SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPreservedAreAppliedByUpdate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPreservedAreAppliedByDelete SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPreservedAreAppliedByTruncate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPreservedAreAppliedByExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPostgresInsertGetId SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlWrapping SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlUpdateWrappingJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlUpdateWrappingNestedJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlUpdateWrappingJsonArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlUpdateWrappingJsonPathArrayIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlUpdateWithJsonPreparesBindingsCorrectly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPostgresUpdateWrappingJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPostgresUpdateWrappingJsonArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPostgresUpdateWrappingJsonPathArrayIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSQLiteUpdateWrappingJsonArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSQLiteUpdateWrappingNestedJsonArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSQLiteUpdateWrappingJsonPathArrayIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlWrappingJsonWithString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlWrappingJsonWithInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlWrappingJsonWithDouble SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlWrappingJsonWithBoolean SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlWrappingJsonWithBooleanAndIntegerThatLooksLikeOne SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testJsonPathEscaping SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlWrappingJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPostgresWrappingJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSqlServerWrappingJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSqliteWrappingJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSQLiteOrderBy SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSqlServerLimitsAndOffsets SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlSoundsLikeOperator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBitwiseOperators SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMergeWheresCanMergeWheresAndBindings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPrepareValueAndOperator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPrepareValueAndOperatorExpectException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testProvidingNullWithOperatorsBuildsCorrectly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testDynamicWhere SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testDynamicWhereIsNotGreedy SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCallTriggersDynamicWhere SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBuilderThrowsExpectedExceptionWithUndefinedMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMySqlLock SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPostgresLock SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSqlServerLock SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSelectWithLockUsesWritePdo SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testBindingOrder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testAddBindingWithArrayMergesBindings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testAddBindingWithArrayMergesBindingsInCorrectOrder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testAddBindingWithEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMergeBuilders SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testMergeBuildersBindingOrder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSubSelect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSubSelectResetBindings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testSqlServerWhereDate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUppercaseLeadingBooleansAreRemoved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testLowercaseLeadingBooleansAreRemoved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCaseInsensitiveLeadingBooleansAreRemoved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testTableValuedFunctionAsTableInSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testChunkWithLastChunkComplete SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testChunkWithLastChunkPartial SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testChunkCanBeStoppedByReturningFalse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testChunkWithCountZero SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testChunkByIdOnArrays SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testChunkPaginatesUsingIdWithLastChunkComplete SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testChunkPaginatesUsingIdWithLastChunkPartial SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testChunkPaginatesUsingIdWithCountZero SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testChunkPaginatesUsingIdWithAlias SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testChunkPaginatesUsingIdDesc SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPaginate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPaginateWithDefaultArguments SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPaginateWhenNoResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPaginateWithSpecificColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testPaginateWithTotalOverride SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCursorPaginate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCursorPaginateMultipleOrderColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCursorPaginateWithDefaultArguments SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCursorPaginateWhenNoResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCursorPaginateWithSpecificColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCursorPaginateWithMixedOrders SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCursorPaginateWithDynamicColumnInSelectRaw SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCursorPaginateWithDynamicColumnWithCastInSelectRaw SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCursorPaginateWithDynamicColumnInSelectSub SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCursorPaginateWithUnionWheres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCursorPaginateWithMultipleUnionsAndMultipleWheres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCursorPaginateWithUnionMultipleWheresMultipleOrders SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCursorPaginateWithUnionWheresWithRawOrderExpression SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCursorPaginateWithUnionWheresReverseOrder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCursorPaginateWithUnionWheresMultipleOrders SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCursorPaginateWithUnionWheresAndAliassedOrderColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereExpression SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereRowValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereRowValuesArityMismatch SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonContainsMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonOverlapsMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonContainsPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonContainsSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonContainsSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonDoesntContainMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonDoesntOverlapMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonDoesntContainPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonDoesntContainSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonDoesntContainSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonContainsKeyMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonContainsKeyPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonContainsKeySqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonContainsKeySqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonDoesntContainKeyMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonDoesntContainKeyPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonDoesntContainKeySqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonDoesntContainKeySqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonLengthMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonLengthPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonLengthSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testWhereJsonLengthSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testFrom SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testFromSub SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testFromSubWithPrefix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testFromSubWithoutBindings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testFromRaw SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testFromRawOnSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testFromRawWithWhereOnTheMainQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testFromQuestionMarkOperatorOnPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUseIndexMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testForceIndexMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testIgnoreIndexMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUseIndexSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testForceIndexSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testIgnoreIndexSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testUseIndexSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testForceIndexSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testIgnoreIndexSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testClone SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCloneWithout SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testCloneWithoutBindings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryBuilderTest::testToRawSql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryExceptionTest::testIfItEmbedsBindingsIntoSql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryExceptionTest::testIfItReturnsSameSqlWhenThereAreNoBindings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseQueryGrammarTest::testWhereRawReturnsStringWhenExpressionPassed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseQueryGrammarTest::testWhereRawReturnsStringWhenStringPassed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseQueryGrammarTest::testCompileOrdersAcceptsExpression SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseQueryGrammarTest::testCompileOrdersAcceptsExpressionWithPlaceholders SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testToSqlRunsCommandsFromBlueprint SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testIndexDefaultNames SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testIndexDefaultNamesWhenPrefixSupplied SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testDropIndexDefaultNames SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testDropIndexDefaultNamesWhenPrefixSupplied SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testDefaultCurrentDate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testDefaultCurrentDateTime SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testDefaultCurrentTimestamp SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testDefaultCurrentYear SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testRemoveColumn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testRenameColumn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testNativeRenameColumnOnMysql57 SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testNativeRenameColumnOnLegacyMariaDB SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testDropColumn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testNativeColumnModifyingOnMySql SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testMacroable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testDefaultUsingIdMorph SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testDefaultUsingNullableIdMorph SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testDefaultUsingUuidMorph SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testDefaultUsingNullableUuidMorph SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testDefaultUsingUlidMorph SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testDefaultUsingNullableUlidMorph SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testGenerateRelationshipColumnWithIncrementalModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testGenerateRelationshipColumnWithNonIncrementalModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testGenerateRelationshipColumnWithUuidModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testGenerateRelationshipColumnWithUlidModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testGenerateRelationshipConstrainedColumn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testGenerateRelationshipForModelWithNonStandardPrimaryKeyName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testDropRelationshipColumnWithIncrementalModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testDropRelationshipColumnWithUuidModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testDropConstrainedRelationshipColumnWithIncrementalModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testDropConstrainedRelationshipColumnWithUuidModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testTinyTextColumn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testTinyTextNullableColumn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testRawColumn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testTableComment SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testColumnDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBuilderIntegrationTest::testHasColumnWithTablePrefix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBuilderIntegrationTest::testHasColumnAndIndexWithPrefixIndexDisabled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBuilderIntegrationTest::testHasColumnAndIndexWithPrefixIndexEnabled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBuilderIntegrationTest::testDropColumnWithTablePrefix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBuilderTest::testCreateDatabase SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBuilderTest::testDropDatabaseIfExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBuilderTest::testHasTableCorrectlyCallsGrammar SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBuilderTest::testTableHasColumns SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBuilderTest::testGetColumnTypeAddsPrefix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSeederTest::testCallResolveTheClassAndCallsRun SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSeederTest::testSetContainer SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSeederTest::testSetCommand SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSeederTest::testInjectDependenciesOnRunMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSeederTest::testSendParamsOnCallMethodWithDeps SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSoftDeletingScopeTest::testApplyingScopeToABuilder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSoftDeletingScopeTest::testRestoreExtension SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSoftDeletingScopeTest::testRestoreOrCreateExtension SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSoftDeletingScopeTest::testCreateOrRestoreExtension SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSoftDeletingScopeTest::testWithTrashedExtension SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSoftDeletingScopeTest::testOnlyTrashedExtension SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSoftDeletingScopeTest::testWithoutTrashedExtension SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSoftDeletingTest::testDeletedAtIsAddedToCastsAsDefaultType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSoftDeletingTest::testDeletedAtIsCastToCarbonInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSoftDeletingTest::testExistingCastOverridesAddedDateCast SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSoftDeletingTest::testExistingMutatorOverridesAddedDateCast SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSoftDeletingTest::testCastingToStringOverridesAutomaticDateCastingToRetainPreviousBehaviour SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSoftDeletingTraitTest::testDeleteSetsSoftDeletedColumn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSoftDeletingTraitTest::testRestore SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSoftDeletingTraitTest::testRestoreCancel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteBuilderTest::testCreateDatabase SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteBuilderTest::testDropDatabaseIfExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteProcessorTest::testProcessColumns SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteQueryGrammarTest::testToRawSql SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testBasicCreateTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testCreateTemporaryTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testDropTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testDropTableIfExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testDropUnique SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testDropIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testDropIndexWithSchema SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testDropColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testDropSpatialIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testRenameTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testRenameIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingPrimaryKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingForeignKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingUniqueKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingUniqueKeyWithSchema SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingIndexWithSchema SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingSpatialIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingFluentSpatialIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingRawIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingIncrementingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingSmallIncrementingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingMediumIncrementingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingForeignID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingForeignIdSpecifyingIndexNameInConstraint SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingBigIncrementingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingText SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingBigInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingMediumInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingTinyInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingSmallInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingFloat SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingDouble SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingDecimal SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingBoolean SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingNativeJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingJsonb SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingNativeJsonb SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingDate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingDateWithDefaultCurrent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingYear SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingYearWithDefaultCurrent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingDateTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingDateTimeWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingDateTimeTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingDateTimeTzWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingTimeWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingTimeTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingTimeTzWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingTimestamp SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingTimestampWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingTimestampTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingTimestampTzWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingTimestampsTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingRememberToken SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingBinary SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingUuid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingUuidDefaultsColumnName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingForeignUuid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingIpAddress SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingIpAddressDefaultsColumnName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingMacAddress SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingMacAddressDefaultsColumnName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingGeometry SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingGeneratedColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testAddingGeneratedColumnByExpression SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testGrammarsAreMacroable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testCreateTableWithVirtualAsColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testCreateTableWithVirtualAsColumnWhenJsonColumnHasArrayKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testCreateTableWithStoredAsColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testDroppingColumnsWorks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testRenamingAndChangingColumnsWork SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSQLiteSchemaGrammarTest::testRenamingAndChangingColumnsWorkWithSchema SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqliteSchemaStateTest::testLoadSchemaToDatabase SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqliteSchemaStateTest::testLoadSchemaToInMemory SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerQueryGrammarTest::testToRawSql SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testBasicCreateTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testCreateTemporaryTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testCreateTemporaryTableWithPrefix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testDropTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testDropTableIfExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testDropColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testDropColumnDropsCreatesSqlToDropDefaultConstraints SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testDropPrimary SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testDropUnique SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testDropIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testDropSpatialIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testDropForeign SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testDropConstrainedForeignId SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testDropTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testDropTimestampsTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testDropMorphs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testRenameTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testRenameIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingPrimaryKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingUniqueKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingUniqueKeyOnline SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingIndexOnline SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingSpatialIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingFluentSpatialIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingRawIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingIncrementingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingSmallIncrementingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingMediumIncrementingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingForeignID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingForeignIdSpecifyingIndexNameInConstraint SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingBigIncrementingID SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingText SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingBigInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingMediumInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingTinyInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingSmallInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingFloat SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingDouble SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingDecimal SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingBoolean SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingJsonb SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingDate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingDateWithDefaultCurrent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingYear SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingYearWithDefaultCurrent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingDateTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingDateTimeWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingDateTimeTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingDateTimeTzWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingTimeWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingTimeTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingTimeTzWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingTimestamp SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingTimestampWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingTimestampTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingTimestampTzWithPrecision SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingTimestampsTz SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingRememberToken SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingBinary SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingUuid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingUuidDefaultsColumnName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingForeignUuid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingIpAddress SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingIpAddressDefaultsColumnName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingMacAddress SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingMacAddressDefaultsColumnName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingGeometry SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingGeography SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testAddingGeneratedColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testGrammarsAreMacroable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testQuoteString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testQuoteStringOnArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testCreateDatabase SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaGrammarTest::testDropDatabaseIfExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testBeginningTransactions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testRollingBackTransactions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testRollingBackTransactionsAllTheWay SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testCommittingTransactions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testCallbacksAreAddedToTheCurrentTransaction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testCallbacksRunInFifoOrder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testCommittingTransactionsExecutesCallbacks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testCommittingExecutesOnlyCallbacksOfTheConnection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testCallbackIsExecutedIfNoTransactions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testCallbacksForRollbackAreAddedToTheCurrentTransaction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testRollbackTransactionsExecutesCallbacks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testRollbackExecutesOnlyCallbacksOfTheConnection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testCallbackForRollbackIsNotExecutedIfNoTransactions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testStageTransactions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testStageTransactionsOnlyStagesTheTransactionsAtOrAboveTheGivenLevel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsTest::testTransactionIsRecordedAndCommitted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsTest::testTransactionIsRecordedAndCommittedUsingTheSeparateMethods SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsTest::testNestedTransactionIsRecordedAndCommitted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsTest::testNestedTransactionIsRecordeForDifferentConnectionsdAndCommitted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsTest::testTransactionIsRolledBack SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsTest::testTransactionIsRolledBackUsingSeparateMethods SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsTest::testNestedTransactionsAreRolledBack SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasOneOrManyDeprecationTest::testHasManyMatchWithNullLocalKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EloquentHasOneOrManyDeprecationTest::testHasOneMatchWithNullLocalKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EloquentModelCustomCastingTest::testSavingCastedAttributesToDatabase SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelCustomCastingTest::testInvalidArgumentExceptionOnInvalidValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelCustomCastingTest::testInvalidArgumentExceptionOnNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelCustomCastingTest::testModelsWithCustomCastsCanBeConvertedToArrays SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelCustomCastingTest::testModelWithCustomCastsWorkWithCustomIncrementDecrement SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelCustomCastingTest::testModelWithCustomCastsCompareFunction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelCustomCastingTest::testModelWithCustomCastsUnguardedCanBeMassAssigned SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelCustomCastingTest::testModelWithCustomCastsCanBeGuardedAgainstMassAssigned SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PruneCommandTest::testPrunableModelAndExceptWithEachOther SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PruneCommandTest::testPrunableModelWithPrunableRecords SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PruneCommandTest::testPrunableTestModelWithoutPrunableRecords SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PruneCommandTest::testPrunableSoftDeletedModelWithPrunableRecords SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PruneCommandTest::testNonPrunableTest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PruneCommandTest::testNonPrunableTestWithATrait SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PruneCommandTest::testNonModelFilesAreIgnoredTest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PruneCommandTest::testTheCommandMayBePretended SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PruneCommandTest::testTheCommandMayBePretendedOnSoftDeletedModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PruneCommandTest::testTheCommandDispatchesEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryDurationThresholdTest::testItCanHandleReachingADurationThresholdInTheDb SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueryDurationThresholdTest::testItIsOnlyCalledOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueryDurationThresholdTest::testItIsOnlyCalledOnceWhenGivenDateTime SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueryDurationThresholdTest::testItCanSpecifyMultipleHandlersWithTheSameIntervals SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueryDurationThresholdTest::testItCanSpecifyMultipleHandlersWithDifferentIntervals SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueryDurationThresholdTest::testItHasAccessToConnectionInHandler SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueryDurationThresholdTest::testItHasSpecifyThresholdWithFloat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueryDurationThresholdTest::testItHasSpecifyThresholdWithInt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueryDurationThresholdTest::testItCanResetTotalQueryDuration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueryDurationThresholdTest::testItCanRestoreAlreadyRunHandlers SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueryDurationThresholdTest::testItCanAccessAllQueriesWhenQueryLoggingIsActive SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SeedCommandTest::testHandle SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SeedCommandTest::testWithoutModelEvents SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SeedCommandTest::testProhibitable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SqlServerBuilderTest::testCreateDatabase SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SqlServerBuilderTest::testDropDatabaseIfExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TableGuesserTest::testMigrationIsProperlyParsed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TableGuesserTest::testMigrationIsProperlyParsedWithoutTableSuffix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testEncryption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testRawStringEncryption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testRawStringEncryptionWithPreviousKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testItValidatesMacOnPerKeyBasis SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testEncryptionUsingBase64EncodedKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testEncryptedLengthIsFixed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testWithCustomCipher SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testCipherNamesCanBeMixedCase SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testThatAnAeadCipherIncludesTag SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testThatAnAeadTagMustBeProvidedInFullLength SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testThatAnAeadTagCantBeModified SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testThatANonAeadCipherIncludesMac SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testDoNoAllowLongerKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testWithBadKeyLength SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testWithBadKeyLengthAlternativeCipher SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testWithUnsupportedCipher SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testExceptionThrownWhenPayloadIsInvalid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testDecryptionExceptionIsThrownWhenUnexpectedTagIsAdded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testExceptionThrownWithDifferentKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testExceptionThrownWhenIvIsTooLong SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testSupportedMethodAcceptsAnyCasing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncrypterTest::testTamperedPayloadWillGetRejected SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcastedEventsTest::testShouldBroadcastSuccess SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcastedEventsTest::testShouldBroadcastAsQueuedAndCallNormalListeners SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcastedEventsTest::testShouldBroadcastFail SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BroadcastedEventsTest::testBroadcastWithMultipleChannels SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testBroadcastWithCustomConnectionName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testBroadcastWithCustomEventName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testBroadcastWithCustomPayload SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testBasicEventExecution SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testDeferEventExecution SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testDeferMultipleEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testDeferNestedEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testDeferSpecificEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testDeferSpecificNestedEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testDeferSpecificObjectEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testHaltingEventExecution SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testResponseWhenNoListenersAreSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testReturningFalseStopsPropagation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testReturningFalsyValuesContinuesPropagation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testContainerResolutionOfEventHandlers SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testContainerResolutionOfEventHandlersWithDefaultMethods SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testQueuedEventsAreFired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testQueuedEventsCanBeForgotten SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testMultiplePushedEventsWillGetFlushed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testPushMethodCanAcceptObjectAsPayload SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testWildcardListeners SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testWildcardListenersWithResponses SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testWildcardListenersCacheFlushing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testListenersCanBeRemoved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testWildcardListenersCanBeRemoved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testWildcardCacheIsClearedWhenListenersAreRemoved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testHasWildcardListeners SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testListenersCanBeFound SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testWildcardListenersCanBeFound SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testEventPassedFirstToWildcards SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testClassesWork SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testClassesWorkWithAnonymousListeners SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testEventClassesArePayload SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testInterfacesWork SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testBothClassesAndInterfacesWork SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testNestedEvent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testDuplicateListenersWillFire SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testGetListeners SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testListenersObjectsCreationOrder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::test_Listener_object_creation_is_lazy SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsDispatcherTest::testInvokeIsCalled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsSubscriberTest::testEventSubscribers SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsSubscriberTest::testEventSubscribeCanAcceptObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventsSubscriberTest::testEventSubscribeCanReturnMappings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueuedEventsTest::testQueuedEventHandlersAreQueued SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueuedEventsTest::testCustomizedQueuedEventHandlersAreQueued SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueuedEventsTest::testQueueIsSetByGetQueue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueuedEventsTest::testQueueIsSetByGetConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueuedEventsTest::testDelayIsSetByWithDelay SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueuedEventsTest::testQueueIsSetByGetQueueDynamically SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueuedEventsTest::testQueueIsSetByGetConnectionDynamically SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueuedEventsTest::testDelayIsSetByWithDelayDynamically SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueuedEventsTest::testQueuePropagateRetryUntilAndMaxExceptions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueuedEventsTest::testQueuePropagateTries SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueuedEventsTest::testQueuePropagateMessageGroupProperty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueuedEventsTest::testQueuePropagateMessageGroupMethodOverProperty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueuedEventsTest::testQueuePropagateDeduplicationIdMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueuedEventsTest::testQueuePropagateDeduplicatorMethodOverDeduplicationIdMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueuedEventsTest::testQueuePropagateMiddleware SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueuedEventsTest::testDispatchesOnQueueDefinedWithEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testResponse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testMimeTypeIsNotCalledAlreadyProvidedToResponse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testSizeIsNotCalledAlreadyProvidedToResponse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testFallbackNameCalledAlreadyProvidedToResponse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testDownload SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testDownloadNonAsciiFilename SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testDownloadNonAsciiEmptyFilename SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testDownloadPercentInFilename SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testMissing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testDirectoryExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testDirectoryMissing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testPath SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testGet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testGetFileNotFound SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testJsonReturnsDecodedJsonData SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testJsonReturnsNullIfJsonDataIsInvalid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testMimeTypeNotDetected SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testPut SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testPrepend SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testAppend SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testDelete SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testDeleteReturnsTrueWhenFileNotFound SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testCopy SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testMove SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testStream SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testStreamBetweenFilesystems SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testStreamToExistingFileOverwrites SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testReadStreamNonExistentFileReturnsNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testStreamInvalidResourceThrows SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testPutWithStreamInterface SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testPutFileAs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testPutFileAsWithAbsoluteFilePath SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testPutFileAsWithoutPath SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testPutFile SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testPutFileWithAbsoluteFilePath SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testPutFileWithoutPath SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testCreateFtpDriver SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testMacroable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testTemporaryUrlWithCustomCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testThrowExceptionsForGet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testThrowExceptionsForReadStream SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testThrowExceptionsForPut SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testThrowExceptionsForMimeType SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testReportExceptionsForGet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testReportExceptionsForReadStream SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testReportExceptionsForPut SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testReportExceptionsForMimeType SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testGetAllFiles SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testProvidesTemporaryUrls SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testProvidesTemporaryUrlsWithCustomCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testProvidesTemporaryUrlsForS3Adapter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testUsesRightSeperatorForS3Adapter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testProvidesTemporaryUrlsForAdapterWithoutTemporaryUrlSupport SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testPrefixesUrls SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testGetChecksum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemAdapterTest::testUsesRightSeperatorForS3AdapterWithoutDoublePrefixing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemManagerTest::testExceptionThrownOnUnsupportedDriver SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemManagerTest::testCanBuildOnDemandDisk SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemManagerTest::testCanBuildReadOnlyDisks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemManagerTest::testCanBuildScopedDisks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemManagerTest::testCanBuildScopedDiskFromScopedDisk SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemManagerTest::testCanBuildScopedDisksWithVisibility SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemManagerTest::testCanBuildScopedDisksWithThrow SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemManagerTest::testCanBuildInlineScopedDisks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testGetRetrievesFiles SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testPutStoresFiles SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testLines SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testLinesThrowsExceptionNonexisitingFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testReplaceCreatesFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testReplaceInFileCorrectlyReplaces SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testReplaceWhenUnixSymlinkExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testSetChmod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testGetChmod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testDeleteRemovesFiles SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testPrependExistingFiles SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testPrependNewFiles SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testMissingFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testDeleteDirectory SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testDeleteDirectoryReturnFalseWhenNotADirectory SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testCleanDirectory SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testMacro SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testFilesMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testCopyDirectoryReturnsFalseIfSourceIsntDirectory SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testCopyDirectoryMovesEntireDirectory SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testMoveDirectoryMovesEntireDirectory SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testMoveDirectoryMovesEntireDirectoryAndOverwrites SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testMoveDirectoryReturnsFalseWhileOverwritingAndUnableToDeleteDestinationDirectory SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testGetThrowsExceptionNonexisitingFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testGetRequireReturnsProperly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testGetRequireThrowsExceptionNonExistingFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testJsonReturnsDecodedJsonData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testJsonReturnsNullIfJsonDataIsInvalid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testAppendAddsDataToFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testMoveMovesFiles SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testNameReturnsName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testExtensionReturnsExtension SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testBasenameReturnsBasename SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testDirnameReturnsDirectory SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testTypeIdentifiesFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testTypeIdentifiesDirectory SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testSizeOutputsSize SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testMimeTypeOutputsMimeType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testIsWritable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testIsReadable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testIsDirEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testGlobFindsFiles SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testAllFilesFindsFiles SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testDirectoriesFindsDirectories SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testAllDirectoriesFindsDirectories SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testMakeDirectory SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testSharedGet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testRequireOnceRequiresFileProperly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testRequireOnceThrowsExceptionNonexisitingFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testCopyCopiesFileProperly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testHasSameHashChecksFileHashes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testIsFileChecksFilesProperly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testFilesMethodReturnsFileInfoObjects SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testAllFilesReturnsFileInfoObjects SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testHashWithDefaultValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testHash SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testLastModifiedReturnsTimestamp SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testFileCreationAndContentVerification SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testDirectoryOperationsWithSubdirectories SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JoinPathsHelperTest::testItCanMergePathsForUnix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JoinPathsHelperTest::testItCanMergePathsForWindows SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleExceptionsTest::testPhpDeprecations SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleExceptionsTest::testPhpDeprecationsWithStackTraces SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleExceptionsTest::testNullValueAsChannelUsesNullDriver SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleExceptionsTest::testUserDeprecations SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleExceptionsTest::testUserDeprecationsWithStackTraces SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleExceptionsTest::testErrors SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleExceptionsTest::testEnsuresDeprecationsDriver SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleExceptionsTest::testEnsuresNullDeprecationsDriver SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleExceptionsTest::testEnsuresNullLogDriver SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleExceptionsTest::testDoNotOverrideExistingNullLogDriver SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleExceptionsTest::testNoDeprecationsDriverIfNoDeprecationsHereSend SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleExceptionsTest::testIgnoreDeprecationIfLoggerUnresolvable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleExceptionsTest::testItIgnoreDeprecationLoggingWhenRunningUnitTests SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleExceptionsTest::testItCanForceViaConfigDeprecationLoggingWhenRunningUnitTests SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleExceptionsTest::testForgetApp SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleExceptionsTest::testHandlerForgetsPreviousApp SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LoadConfigurationTest::testLoadsBaseConfiguration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LoadConfigurationTest::testSetsEnvironmentResolver SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LoadConfigurationTest::testDontLoadBaseConfiguration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LoadConfigurationTest::testLoadsConfigurationInIsolation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LoadConfigurationTest::testConfigurationArrayKeysMatchLoadedFilenames SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LoadEnvironmentVariablesTest::testCanLoad SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LoadEnvironmentVariablesTest::testCanFailSilent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ExceptionsTest::testStopIgnoring SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ExceptionsTest::testShouldRenderJsonWhen SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MiddlewareTest::testConvertEmptyStringsToNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MiddlewareTest::testTrimStrings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MiddlewareTest::testTrustProxies SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MiddlewareTest::testTrustHeaders SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MiddlewareTest::testTrustHosts SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MiddlewareTest::testEncryptCookies SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MiddlewareTest::testPreventRequestsDuringMaintenance SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AboutCommandTest::testItCanFormatForCliInterface SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AboutCommandTest::testItCanFormatForJsonInterface SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CliDumperTest::testString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CliDumperTest::testInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CliDumperTest::testFloat SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CliDumperTest::testArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CliDumperTest::testBoolean SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CliDumperTest::testObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CliDumperTest::testNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CliDumperTest::testWhenIsFileViewIsNotViewCompiled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CliDumperTest::testWhenIsFileViewIsViewCompiled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CliDumperTest::testGetOriginalViewCompiledFile SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CliDumperTest::testWhenGetOriginalViewCompiledFileFails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CliDumperTest::testUnresolvableSource SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CliDumperTest::testUnresolvableLine SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: KernelTest::testItDispatchesTerminatingEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteListCommandTest::testNoMiddlewareIfNotVerbose SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteListCommandTest::testSortRouteListAsc SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteListCommandTest::testSortRouteListDesc SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteListCommandTest::testSortRouteListDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteListCommandTest::testSortRouteListPrecedence SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteListCommandTest::testMiddlewareGroupsAssignmentInCli SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteListCommandTest::testMiddlewareGroupsExpandInCliIfVeryVerbose SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteListCommandTest::testMiddlewareGroupsAssignmentInJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteListCommandTest::testMiddlewareGroupsExpandInJsonIfVeryVerbose SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteListCommandTest::testMiddlewareGroupsExpandCorrectlySortedIfVeryVerbose SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteListCommandTest::testFilterByMiddleware SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ServeCommandLogParserTest::testExtractRequestPortWithValidLogLine SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ServeCommandLogParserTest::testExtractRequestPortWithValidLogLineAndExtraData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ServeCommandLogParserTest::testExtractRequestPortWithValidLogLineWithoutDate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ServeCommandLogParserTest::testExtractRequestPortWithMissingPort SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ServeCommandLogParserTest::testExtractRequestPortWithInvalidPortFormat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ServeCommandLogParserTest::testExtractRequestPortWithEmptyLogLine SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ServeCommandLogParserTest::testExtractRequestPortWithWhitespaceOnlyLine SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ServeCommandLogParserTest::testExtractRequestPortWithRandomString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrameTest::test_it_normalizes_file_path_on_unix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrameTest::test_it_normalizes_file_path_on_windows SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrameTest::test_it_determines_if_frame_is_from_vendor_on_unix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FrameTest::test_it_determines_if_frame_is_from_vendor_on_windows SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ListenerTest::test_queries_returns_expected_shape_after_query_executed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationAliasLoaderTest::testLoaderCanBeCreatedAndRegisteredOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationAliasLoaderTest::testGetInstanceCreatesOneInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationAliasLoaderTest::testLoaderCanBeCreatedAndRegisteredMergingAliases SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationAliasLoaderTest::testLoaderCanAliasAndLoadClasses SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationAliasLoaderTest::testSetAlias SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationBuilderTest::testBaseDirectoryWithArg SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationApplicationBuilderTest::testBaseDirectoryWithEnv SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationApplicationBuilderTest::testBaseDirectoryWithComposer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationApplicationBuilderTest::testStoragePathWithGlobalEnvVariable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationApplicationBuilderTest::testStoragePathWithGlobalServerVariable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationApplicationBuilderTest::testStoragePathPrefersEnvVariable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationApplicationBuilderTest::testStoragePathBasedOnBasePath SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationApplicationBuilderTest::testStoragePathCanBeCustomized SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testSetLocaleSetsLocaleAndFiresLocaleChangedEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testServiceProvidersAreCorrectlyRegistered SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testClassesAreBoundWhenServiceProviderIsRegistered SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testSingletonsAreCreatedWhenServiceProviderIsRegistered SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testServiceProvidersAreCorrectlyRegisteredWhenRegisterMethodIsNotFilled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testServiceProvidersCouldBeLoaded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testDeferredServicesMarkedAsBound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testDeferredServicesAreSharedProperly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testDeferredServicesCanBeExtended SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testDeferredServiceProviderIsRegisteredOnlyOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testDeferredServiceDontRunWhenInstanceSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testDeferredServicesAreLazilyInitialized SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testDeferredServicesCanRegisterFactories SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testSingleProviderCanProvideMultipleDeferredServices SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testDeferredServiceIsLoadedWhenAccessingImplementationThroughInterface SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testEnvironment SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testEnvironmentHelpers SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testDebugHelper SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testMethodAfterLoadingEnvironmentAddsClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testBeforeBootstrappingAddsClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testTerminationTests SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testAfterBootstrappingAddsClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testTerminationCallbacksCanAcceptAtNotation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testBootingCallbacks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testBootedCallbacks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testGetNamespace SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testCachePathsResolveToBootstrapCacheDirectory SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testEnvPathsAreUsedForCachePathsWhenSpecified SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testEnvPathsAreUsedAndMadeAbsoluteForCachePathsWhenSpecifiedAsRelative SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testEnvPathsAreUsedAndMadeAbsoluteForCachePathsWhenSpecifiedAsRelativeWithNullBasePath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testEnvPathsAreAbsoluteInWindows SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testMacroable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testUseConfigPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testMergingConfig SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testAbortThrowsNotFoundHttpException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testAbortThrowsHttpException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testAbortAcceptsHeaders SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::test_routes_are_cached SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::test_routes_are_not_cached_by_instance_falls_back_to_file SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::test_events_are_cached_uses_container_instance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::test_events_are_cached_checks_filesystem_if_not_set SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationApplicationTest::testCoreContainerAliasesAreRegisteredByDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationAuthenticationTest::testAssertAuthenticated SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationAuthenticationTest::testAssertGuest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationAuthenticationTest::testAssertAuthenticatedAs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationAuthenticationTest::testAssertCredentials SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationAuthenticationTest::testAssertCredentialsMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationAuthorizesRequestsTraitTest::testBasicGateCheck SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationAuthorizesRequestsTraitTest::testAcceptsBackedEnumAsAbility SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationAuthorizesRequestsTraitTest::testExceptionIsThrownIfGateCheckFails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationAuthorizesRequestsTraitTest::testPoliciesMayBeCalled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationAuthorizesRequestsTraitTest::testPolicyMethodMayBeGuessedPassingModelInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationAuthorizesRequestsTraitTest::testPolicyMethodMayBeGuessedPassingClassName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationAuthorizesRequestsTraitTest::testPolicyMethodMayBeGuessedAndNormalized SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationAuthorizesRequestTestPolicy::testPolicyMethodMayBeGuessedPassingModelInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationAuthorizesRequestTestPolicy::testPolicyMethodMayBeGuessedPassingClassName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationCacheBasedMaintenanceModeTest::test_it_determines_whether_maintenance_mode_is_active SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationCacheBasedMaintenanceModeTest::test_it_retrieves_payload_from_cache SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationCacheBasedMaintenanceModeTest::test_it_stores_payload_in_cache SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationCacheBasedMaintenanceModeTest::test_it_removes_payload_from_cache SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItCanOpenTheLaravelDocumentation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItCanSpecifyAutocompleteInOriginalCasing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItCanSpecifyAutocompleteInLowerCasing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItMatchesSectionsThatStartWithInput SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItMatchesSectionsWithFuzzyMatching SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItCanProvidePageToVisit SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItCanUseHyphensInsteadOfEscapingSpaces SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItHasMinimumScoreToMatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItMinimumScoreAccountsForInputLength SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItCanUseCustomAskStrategy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItFallsbackToAutocompleteWhenAskStrategyContainsBadSyntax SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItFallsbackToAutocompleteWithBadAskStrategyReturnValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItCatchesAndHandlesProcessInterruptExceptionsInAskStrategies SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItBubblesUpAskStrategyExceptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItBubblesUpNonProcessInterruptExceptionsInAskStrategies SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItCanGuessTheRequestedPageWhenItIsTheStartOfAPageTitle SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItCanGuessTheRequestedPageWhenItIsContainedSomewhereInThePageTitle SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItCanGuessTheWithTopAndTailMatching SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItCanSpecifyCustomOpenCommandsViaEnvVariables SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItHandlesBadSyntaxInOpeners SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItHandlesBadReturnTypesInOpeners SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItCanPerformSearchAgainstLaravelDotCom SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testUnknownSystemNotifiedToOpenManually SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testGuessedMatchesThatDirectlyContainTheGivenStringRankHigherThanArbitraryMatches SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItHandlesPoorSpelling SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testItHandlesNoInteractionOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationDocsCommandTest::testCanGetHelpWithoutInstantiatingDependencies SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationEnvironmentDetectorTest::testClosureCanBeUsedForCustomEnvironmentDetection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationEnvironmentDetectorTest::testConsoleEnvironmentDetection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationEnvironmentDetectorTest::testConsoleEnvironmentDetectionSeparatedWithSpace SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationEnvironmentDetectorTest::testConsoleEnvironmentDetectionWithNoValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationEnvironmentDetectorTest::testConsoleEnvironmentDetectionDoesNotUseArgumentThatStartsWithEnv SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationEnvironmentDetectorTest::testConsoleEnvironmentDetectionDoesNotUseArgumentThatStartsWithEnvSeparatedWithSpace SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationEnvironmentDetectorTest::testConsoleEnvironmentDetectionDoesNotUseArgumentThatStartsWithEnvWithNoValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testHandlerReportsExceptionAsContext SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testHandlerCallsContextMethodIfPresent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testHandlerReportsExceptionWhenUnReportable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testHandlerReportsExceptionWithCustomLogLevel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testHandlerIgnoresNotReportableExceptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testHandlerCallsReportMethodWithDependencies SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testHandlerReportsExceptionUsingCallableClass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testShouldReturnJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testShouldReturnJsonWhen SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testReturnsJsonWithStackTraceWhenAjaxRequestAndDebugTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testReturnsCustomResponseFromRenderableCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testReturnsCustomResponseFromCallableClass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testReturnsResponseFromRenderableException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testReturnsResponseFromMappedRenderableException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testReturnsCustomResponseWhenExceptionImplementsResponsable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testReturnsJsonWithoutStackTraceWhenAjaxRequestAndDebugFalseAndExceptionMessageIsMasked SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testReturnsJsonWithoutStackTraceWhenAjaxRequestAndDebugFalseAndHttpExceptionErrorIsShown SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testReturnsJsonWithoutStackTraceWhenAjaxRequestAndDebugFalseAndAccessDeniedHttpExceptionErrorIsShown SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testValidateFileMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testSuspiciousOperationReturns400WithoutReporting SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testRecordsNotFoundReturns404WithoutReporting SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testItReturnsSpecificErrorViewIfExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testItReturnsFallbackErrorViewIfExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testItReturnsNullIfNoErrorViewExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testItDoesNotCrashIfErrorViewThrowsWhileRenderingAndDebugFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testItDoesNotCrashIfErrorViewThrowsWhileRenderingAndDebugTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testAssertExceptionIsThrown SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testAssertNoExceptionIsThrown SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testItReportsDuplicateExceptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testItCanDedupeExceptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testItCanSkipExceptionReportingUsingCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testItDoesNotThrottleExceptionsByDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testItDoesNotThrottleExceptionsWhenNullReturned SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testItDoesNotThrottleExceptionsWhenUnlimitedLimit SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testItCanSampleExceptionsByClass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testItRescuesExceptionsWhileThrottlingAndReports SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testItRescuesExceptionsIfThereIsAnIssueResolvingTheRateLimiter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testItRescuesExceptionsIfThereIsAnIssueWithTheRateLimiter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testItCanRateLimitExceptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationExceptionsHandlerTest::testRateLimitExpiresOnBoundary SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationFormRequestTest::testValidatedMethodReturnsTheValidatedData SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationFormRequestTest::testValidatedMethodReturnsTheValidatedDataNestedRules SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationFormRequestTest::testValidatedMethodReturnsTheValidatedDataNestedChildRules SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationFormRequestTest::testValidatedMethodReturnsTheValidatedDataNestedArrayRules SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationFormRequestTest::testValidatedMethodNotValidateTwice SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationFormRequestTest::testValidateThrowsWhenValidationFails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationFormRequestTest::testValidateMethodThrowsWhenAuthorizationFails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationFormRequestTest::testValidateThrowsExceptionFromAuthorizationResponse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationFormRequestTest::testValidateDoesntThrowExceptionFromResponseAllowed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationFormRequestTest::testPrepareForValidationRunsBeforeValidation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationFormRequestTest::testAfterValidationRunsAfterValidation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationFormRequestTest::testValidatedMethodReturnsOnlyRequestedValidatedData SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationFormRequestTest::testValidatedMethodReturnsOnlyRequestedNestedValidatedData SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationFormRequestTest::testAfterMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testRequestCanPassWithoutRulesMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testRequestWithGetRules SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testCache SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testEvents SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testMixDoesNotIncludeHost SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testMixCachesManifestForSubsequentCalls SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testMixAssetMissingStartingSlashHaveItAdded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testMixMissingManifestThrowsException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testMixWithManifestDirectory SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testMixManifestDirectoryMissingStartingSlashHasItAdded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testMixHotModuleReloadingGetsUrlFromFileWithHttps SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testMixHotModuleReloadingGetsUrlFromFileWithHttp SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testMixHotModuleReloadingGetsUrlFromFileWithManifestDirectoryAndHttps SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testMixHotModuleReloadingGetsUrlFromFileWithManifestDirectoryAndHttp SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testMixHotModuleReloadingUsesLocalhostIfNoHttpScheme SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testMixHotModuleReloadingWithManifestDirectoryUsesLocalhostIfNoHttpScheme SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testMixIsSwappableForTests SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testAbortReceivesCodeAsSymfonyResponseInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testAbortReceivesCodeAsResponableImplementation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testAbortReceivesCodeAsInteger SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testBroadcastIfReturnsFakeOnFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testSeeInDatabaseFindsResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertDatabaseHasSupportsModelClass SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertDatabaseHasConstrainsToModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testSeeInDatabaseDoesNotFindResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testSeeInDatabaseFindsNotMatchingResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testSeeInDatabaseFindsManyNotMatchingResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testDontSeeInDatabaseDoesNotFindResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertDatabaseMissingSupportsModelClass SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertDatabaseMissingConstrainsToModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testDontSeeInDatabaseFindsResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertTableEntriesCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertDatabaseCountSupportModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertDatabaseEmpty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertTableEntriesCountWrong SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertDatabaseMissingPassesWhenDoesNotFindResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertDatabaseMissingFailsWhenFindsResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertModelMissingPassesWhenDoesNotFindModelResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertSoftDeletedInDatabaseFindsResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertSoftDeletedSupportModelStrings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertSoftDeletedInDatabaseDoesNotFindResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertSoftDeletedInDatabaseDoesNotFindModelResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertSoftDeletedInDatabaseDoesNotFindModelWithCustomColumnResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertSoftDeletedInDatabaseDoesNotFindModePassedViaFcnWithCustomColumnResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertNotSoftDeletedInDatabaseFindsResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertNotSoftDeletedSupportModelStrings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertNotSoftDeletedOnlyFindsMatchingModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertNotSoftDeletedInDatabaseDoesNotFindResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertNotSoftDeletedInDatabaseDoesNotFindModelResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertNotSoftDeletedInDatabaseDoesNotFindModelWithCustomColumnResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertNotSoftDeletedInDatabaseDoesNotFindModelPassedViaFcnWithCustomColumnResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testAssertExistsPassesWhenFindsResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testGetTableNameFromModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testGetTableConnectionNameFromModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testGetTableCustomizedDeletedAtColumnName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testExpectsDatabaseQueryCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testExpectsDatabaseQueryCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testExpectsDatabaseQueryCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testExpectsDatabaseQueryCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithDatabaseTest::testExpectsDatabaseQueryCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithTimeTest::testFreezeTimeReturnsFrozenTime SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithTimeTest::testFreezeTimeReturnsCallbackResult SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithTimeTest::testFreezeTimeReturnsCallbackResultEvenWhenNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithTimeTest::testFreezeSecondReturnsFrozenTime SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithTimeTest::testFreezeSecondReturnsCallbackResult SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationInteractsWithTimeTest::testFreezeSecondReturnsCallbackResultEvenWhenNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationPackageManifestTest::testAssetLoading SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationProviderRepositoryTest::testServicesAreRegisteredWhenManifestIsNotRecompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationProviderRepositoryTest::testManifestIsProperlyRecompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationProviderRepositoryTest::testShouldRecompileReturnsCorrectValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationProviderRepositoryTest::testLoadManifestReturnsParsedJSON SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationProviderRepositoryTest::testWriteManifestStoresToProperLocation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationProviderRepositoryTest::testWriteManifestThrowsExceptionIfManifestDirDoesntExist SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testViteWithJsOnly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testViteWithCssAndJs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testViteWithCssImport SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testViteWithSharedCssImport SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testViteHotModuleReplacementWithJsOnly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testViteHotModuleReplacementWithJsAndCss SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanGenerateCspNonceWithHotFile SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanGenerateCspNonceWithManifest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanSpecifyCspNonceWithHotFile SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanSpecifyCspNonceWithManifest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testReactRefreshWithNoNonce SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testReactRefreshNonce SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanInjectIntegrityWhenPresentInManifest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanInjectIntegrityWhenPresentInManifestForCss SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanInjectIntegrityWhenPresentInManifestForImportedCss SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanSpecifyIntegrityKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanSpecifyArbitraryAttributesForScriptTagsWhenBuilt SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanSpecifyArbitraryAttributesForStylesheetTagsWhenBuild SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanSpecifyArbitraryAttributesForScriptTagsWhenHotModuleReloading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanSpecifyArbitraryAttributesForStylesheetTagsWhenHotModuleReloading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanOverrideAllAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanGenerateIndividualAssetUrlInBuildMode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanGenerateIndividualAssetUrlInHotMode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItThrowsWhenUnableToFindAssetManifestInBuildMode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItThrowsDeprecatedExecptionWhenUnableToFindAssetManifestInBuildMode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItThrowsWhenUnableToFindAssetChunkInBuildMode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItDoesNotReturnHashInDevMode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItGetsHashInBuildMode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItGetsDifferentHashesForDifferentManifestsInBuildMode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testViteCanSetEntryPointsWithFluentBuilder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testViteCanOverrideBuildDirectory SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testViteCanOverrideHotFilePath SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testViteCanAssetPath SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testViteIsMacroable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItGeneratesPreloadDirectivesForJsAndCssImports SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanSpecifyAttributesForPreloadedAssets SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanSuppressPreloadTagGeneration SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testPreloadAssetsGetAssetNonce SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testCrossoriginAttributeIsInheritedByPreloadTags SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanConfigureTheManifestFilename SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItOnlyOutputsUniquePreloadTags SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItRetrievesAssetContent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItThrowsWhenUnableToFindFileToRetrieveContent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanPrefetchEntrypoint SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItHandlesSpecifyingPageWithAppJs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanSpecifyWaterfallChunks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanPrefetchAggressively SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testAddsAttributesToPrefetchTags SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItNormalisesAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItPrefetchesCss SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testSupportCspNonceInPrefetchScript SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanConfigureThePrefetchTriggerEvent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationViteTest::testItCanFlushState SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HtmlDumperTest::testString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HtmlDumperTest::testInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HtmlDumperTest::testFloat SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HtmlDumperTest::testArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HtmlDumperTest::testBoolean SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HtmlDumperTest::testObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HtmlDumperTest::testNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HtmlDumperTest::testUnresolvableSource SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HtmlDumperTest::testWhenIsFileViewIsNotViewCompiled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HtmlDumperTest::testWhenIsFileViewIsViewCompiled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HtmlDumperTest::testGetOriginalViewCompiledFile SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HtmlDumperTest::testWhenGetOriginalViewCompiledFileFails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HtmlDumperTest::testUnresolvableLine SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HtmlDumperTest::testHref SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: KernelTest::testGetMiddlewareGroups SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: KernelTest::testGetRouteMiddleware SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: KernelTest::testGetMiddlewarePriority SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: KernelTest::testAddToMiddlewarePriorityAfter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: KernelTest::testAddToMiddlewarePriorityBefore SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: KernelTest::testItTriggersTerminatingEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConvertEmptyStringsToNullTest::testConvertsEmptyStringsToNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConvertEmptyStringsToNullTest::testSkipConvertsEmptyStringsToNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TransformsRequestTest::testTransformOncePerKeyWhenMethodIsGet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TransformsRequestTest::testTransformOncePerKeyWhenMethodIsPost SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TransformsRequestTest::testTransformOncePerArrayKeysWhenMethodIsPost SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TransformsRequestTest::testTransformOncePerKeyWhenContentTypeIsJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrimStringsTest::testTrimStringsIgnoringExceptAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrimStringsTest::testTrimStringsNBSP SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatePathEncodingTest::testValidPathsArePassing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatePathEncodingTest::testInvalidPathsAreFailing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BootTraitsTest::testSetUpAndTearDownTraits SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: InteractsWithContainerTest::testWithoutViteBindsEmptyHandlerAndReturnsInstance SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: InteractsWithContainerTest::testWithoutViteHandlesReactRefresh SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: InteractsWithContainerTest::testWithoutViteHandlesAsset SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: InteractsWithContainerTest::testWithViteRestoresOriginalHandlerAndReturnsInstance SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: InteractsWithContainerTest::testWithoutViteReturnsEmptyArrayForPreloadedAssets SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: InteractsWithContainerTest::testWithoutMixBindsEmptyHandlerAndReturnsInstance SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: InteractsWithContainerTest::testWithMixRestoresOriginalHandlerAndReturnsInstance SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: InteractsWithContainerTest::testWithoutDefer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: InteractsWithContainerTest::testForgetMock SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: InteractsWithViewsTest::testBladeCorrectlyRendersString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: InteractsWithViewsTest::testComponentCanAccessPublicProperties SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testComponentMacroable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MakesHttpRequestsTest::testFromSetsHeaderAndSession SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MakesHttpRequestsTest::testFromRouteSetsHeaderAndSession SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MakesHttpRequestsTest::testFromRemoveHeader SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MakesHttpRequestsTest::testFromRemoveHeaders SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MakesHttpRequestsTest::testWithTokenSetsAuthorizationHeader SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MakesHttpRequestsTest::testWithBasicAuthSetsAuthorizationHeader SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MakesHttpRequestsTest::testWithoutTokenRemovesAuthorizationHeader SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MakesHttpRequestsTest::testWithoutAndWithMiddleware SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MakesHttpRequestsTest::testWithoutAndWithMiddlewareWithParameter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MakesHttpRequestsTest::testWithCookieSetCookie SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MakesHttpRequestsTest::testWithCookiesSetsCookiesAndOverwritesPreviousValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MakesHttpRequestsTest::testWithUnencryptedCookieSetCookie SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MakesHttpRequestsTest::testWithUnencryptedCookiesSetsCookiesAndOverwritesPreviousValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MakesHttpRequestsTest::testWithoutAndWithCredentials SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MakesHttpRequestsTest::testFollowingRedirects SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MakesHttpRequestsTest::testFollowingRedirectsTerminatesInExpectedOrder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MakesHttpRequestsTest::testWithPrecognition SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseMigrationsTest::testRefreshTestDatabaseDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationsTest::testRefreshTestDatabaseWithDropViewsOption SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMigrationsTest::testRefreshTestDatabaseWithDropTypesOption SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testItExecutesCallbacksImmediatelyIfThereIsOnlyOneTransaction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testItIgnoresTheBaseTransactionForCallbackApplicableTransactions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testCommittingDoesNotRemoveTheBasePendingTransaction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testItExecutesCallbacksForTheSecondTransaction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testItExecutesTransactionCallbacksAtLevelOne SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsManagerTest::testSkipsTheNumberOfConnectionsTransacting SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTruncationTest::testTruncateTables SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTruncationTest::testTruncateTablesWithTablesToTruncateProperty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTruncationTest::testTruncateTablesWithExceptTablesProperty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTruncationTest::testTruncateTablesWithSchema SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTruncationTest::testTruncateTablesWithSchemaTablesToTruncateProperty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTruncationTest::testTruncateTablesWithSchemaAndExceptTablesProperty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTruncationTest::testTruncateTablesWithConnectionPrefix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseTruncationTest::testTruncateTablesOnPgsqlWithSearchPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RefreshDatabaseTest::testRefreshTestDatabaseDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RefreshDatabaseTest::testRefreshTestDatabaseWithDropViewsOption SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RefreshDatabaseTest::testRefreshTestDatabaseWithDropTypesOption SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CanConfigureMigrationCommandsTest::testMigrateFreshUsingDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CanConfigureMigrationCommandsTest::testMigrateFreshUsingWithPropertySets SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WormholeTest::testCanTravelBackToPresent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WormholeTest::testCarbonImmutableCompatibility SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WormholeTest::testItCanTravelByMicroseconds SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HasherTest::testEmptyHashedValueReturnsFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HasherTest::testNullHashedValueReturnsFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HasherTest::testBasicBcryptHashing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HasherTest::testBcryptValueTooLong SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HasherTest::testBasicArgon2iHashing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HasherTest::testBasicArgon2idHashing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HasherTest::testBasicBcryptVerification SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HasherTest::testBasicArgon2iVerification SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HasherTest::testBasicArgon2idVerification SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HasherTest::testIsHashedWithNonHashedValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HasherTest::testBasicBcryptNotSupported SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HasherTest::testBasicArgon2iNotSupported SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HasherTest::testBasicArgon2idNotSupported SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpClientTest::testStubbedResponsesAreReturnedAfterFaking SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testCreatedRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testStatusCodeShorthand SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testStatusCodeShorthandAssumeBodyWhenInvalidHttpStatusCode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testBodyShorthands SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testAcceptedRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testMovedPermanentlyRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testNoContentRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testFoundRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testNotModifiedRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testBadRequestRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testPaymentRequiredRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testRequestTimeoutRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testConflictResponseRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testUnprocessableContentRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testUnprocessableEntityRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testTooManyRequestsRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testUnauthorizedRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testForbiddenRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testNotFoundResponse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testResponseBodyCasting SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testResponseObjectAsArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testResponseObjectAsObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testResponseObjectIsTappable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testResponseObjectIsMacroable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testResponseCanBeReturnedAsResource SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testResponseCanBeReturnedAsCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testResponseCanBeReturnedAsFluent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testSendRequestBodyAsJsonByDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testSendRequestBodyWithManyAmpersands SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testSendStreamRequestBody SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testUrlsCanBeStubbedByPath SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testCanSendJsonData SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testCanSendFormData SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testCanSendArrayableFormData SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testCanSendJsonSerializableData SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testPrefersJsonSerializableOverArrayableData SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testCanSendJsonDataWithStringable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testCanSendFormDataWithStringable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testCanSendFormDataWithStringableInArrays SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRecordedCallsAreEmptiedWhenFakeIsCalled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testSpecificRequestIsNotBeingSent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testNoRequestIsNotBeingSent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testCanSendMultipartData SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testFilesCanBeAttached SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testCanSendMultipartDataWithSimplifiedParameters SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testCanSendMultipartDataWithBothSimplifiedAndExtendedParameters SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testCanSendMultipartDataWithArrayValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testCanSendMultipartDataWithFileAndArrayValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItCanSendToken SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItCanSendUserAgent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItOnlySendsOneUserAgentHeader SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testSequenceBuilder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testSequenceBuilderCanKeepGoingWhenEmpty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testAssertSequencesAreEmpty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testFakeSequence SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testWithCookies SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testWithQueryParameters SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testWithArrayQueryParameters SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testWithQueryParametersAllowsAddingMoreOnRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testWithQueryParametersAllowsOverridingParameterOnRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testWithStringableQueryParameters SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testWithArrayStringableQueryParameters SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testGetWithArrayQueryParam SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testGetWithArrayableQueryParam SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testGetWithStringQueryParam SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testGetWithQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testGetWithQueryWontEncode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testGetWithArrayQueryParamOverwrites SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testGetWithArrayQueryParamEncodes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testWithBaseUrl SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testCanConfirmManyHeaders SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testCanConfirmManyHeadersUsingAString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItMergesMultipleHeaders SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItCanReplaceHeaders SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItCanReplaceHeadersWhenNoHeadersYetSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testCanConfirmSingleStringHeader SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testCanConfirmSingleArrayHeader SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testExceptionAccessorOnSuccess SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testExceptionAccessorOnFailure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionSummary SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionTruncatedSummary SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionWithoutTruncatedSummary SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionWithCustomTruncatedSummary SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestLevelTruncationLevelOnRequestException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testNoTruncationOnRequestLevel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionDoesNotTruncateButRequestDoes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testAsyncRequestExceptionsRespectRequestTruncation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionEmptyBody SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testReportingExceptionTwiceDoesNotIncludeSummaryTwice SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testOnErrorDoesntCallClosureOnInformational SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testOnErrorDoesntCallClosureOnSuccess SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testOnErrorDoesntCallClosureOnRedirection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testOnErrorCallsClosureOnClientError SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testOnErrorCallsClosureOnServerError SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testSinkToFile SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testSinkToResource SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testSinkWhenStubbedByPath SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testCanAssertAgainstOrderOfHttpRequestsWithUrlStrings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testAssertionsSentOutOfOrderThrowAssertionFailed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testWrongNumberOfRequestsThrowAssertionFailed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testCanAssertAgainstOrderOfHttpRequestsWithCallables SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testCanAssertAgainstOrderOfHttpRequestsWithCallablesAndHeaders SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testCanAssertAgainstOrderOfHttpRequestsWithCallablesAndHeadersFailsCorrectly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testCanDump SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testResponseCanDump SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testResponseCanDumpWithKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testResponseCanDumpHeaders SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testResponseSequenceIsMacroable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestsCanBeAsync SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testClientCanBeSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestsCanReplaceOptions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testMultipleRequestsAreSentInThePool SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testMultipleRequestsAreSentInThePoolWithKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testMiddlewareRunsInPool SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testPoolConcurrency SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testTheRequestSendingAndResponseReceivedEventsAreFiredWhenARequestIsSent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testTheRequestSendingAndResponseReceivedEventsAreFiredWhenARequestIsSentAsync SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testTheRequestSendingAndResponseReceivedEventsAreFiredForEveryRetry SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testTheTransferStatsAreCalledSafelyWhenFakingTheRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testTransferStatsArePresentWhenFakingTheRequestUsingAPromiseResponse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testClonedClientsWorkSuccessfullyWithTheRequestObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestIsMacroable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsThrownWhenRetriesExhausted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsThrownWhenRetriesExhaustedWithBackoffArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsThrownWithoutRetriesIfRetryNotNecessary SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsThrownWithoutRetriesIfRetryNotNecessaryWithBackoffArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsNotThrownWhenDisabledAndRetriesExhausted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsNotThrownWhenDisabledAndRetriesExhaustedWithBackoffArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsNotThrownWithoutRetriesIfRetryNotNecessary SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsNotThrownWithoutRetriesIfRetryNotNecessaryWithBackoffArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestCanBeModifiedInRetryCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestCanBeModifiedInRetryCallbackWithBackoffArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testExceptionThrownInRetryCallbackWithoutRetrying SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testExceptionThrownInRetryCallbackWithoutRetryingWithBackoffArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestsWillBeWaitingSleepMillisecondsReceivedBeforeRetry SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionReturnedWhenRetriesExhaustedInPool SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsReturnedWithoutRetriesIfRetryNotNecessaryInPool SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsNotReturnedWhenDisabledAndRetriesExhaustedInPool SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsNotReturnedWithoutRetriesIfRetryNotNecessaryInPool SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestCanBeModifiedInRetryCallbackInPool SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testHandleRequestExeptionWithNoResponseInPoolConsideredConnectionException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testExceptionThrownInRetryCallbackIsReturnedWithoutRetryingInPool SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testExceptionThrowInMiddlewareAllowsRetry SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestsWillBeWaitingSleepMillisecondsReceivedInBackoffArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testFailedRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testFakeConnectionException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testFakeConnectionExceptionWithinFakeClosure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testFakeConnectionExceptionWithinArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testFakeConnectionExceptionWithinSequence SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testMiddlewareRunsWhenFaked SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testMiddlewareRunsAndCanChangeRequestOnAssertSent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testSslCertificateErrorsConvertedToConnectionException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testConnectExceptionIsConvertedToConnectionExceptionEvenWhenWithoutFactory SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionWithoutResponseIsConvertedToConnectionExceptionEvenWhenWithoutFactory SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionWithResponseIsConvertedToConnectionExceptionEvenWhenWithoutFactory SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testTooManyRedirectsExceptionIsConvertedToConnectionExceptionEvenWhenWithoutFactory SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testTooManyRedirectsExceptionConvertedToConnectionException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testTooManyRedirectsWithFakedRedirectChain SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsNotThrownIfThePendingRequestIsSetToThrowOnFailureButTheResponseIsSuccessful SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsThrownIfThePendingRequestIsSetToThrowOnFailure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsThrownIfTheThrowIfOnThePendingRequestIsSetToTrueOnFailure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsNotThrownIfTheThrowIfOnThePendingRequestIsSetToFalseOnFailure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsThrownIfTheThrowIfClosureOnThePendingRequestReturnsTrue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsNotThrownIfTheThrowIfClosureOnThePendingRequestReturnsFalse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsThrownWithCallbackIfThePendingRequestIsSetToThrowOnFailure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsThrownIfTheRequestFails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsThrownWithCallbackIfTheRequestFails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsNotThrownIfTheRequestDoesNotFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsNotReturnedIfThePendingRequestIsSetToThrowOnFailureButTheResponseIsSuccessfulInPool SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsReturnedIfThePendingRequestIsSetToThrowOnFailureInPool SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsReturnedIfTheThrowIfOnThePendingRequestIsSetToTrueOnFailureInPool SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsNotReturnedIfTheThrowIfOnThePendingRequestIsSetToFalseOnFailureInPool SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsReturnedIfTheThrowIfClosureOnThePendingRequestReturnsTrueInPool SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsNotReturnedIfTheThrowIfClosureOnThePendingRequestReturnsFalseInPool SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsReturnedWithCallbackIfThePendingRequestIsSetToThrowOnFailureInPool SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsReturnedAfterLastRetryInPool SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsThrowIfConditionIsSatisfied SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsNotThrownIfConditionIsNotSatisfied SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsThrownWhenUnlessConditionIsNotSatisfied SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsNotThrownWhenUnlessConditionIsSatisfied SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsThrowIfConditionClosureIsSatisfied SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsNotThrownIfConditionClosureIsNotSatisfied SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsThrownIfStatusCodeIsSatisfied SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsThrownIfStatusCodeIsSatisfiedWithClosure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsNotThrownIfStatusCodeIsNotSatisfied SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsThrownUnlessStatusCodeIsSatisfied SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsThrownIfIsClientError SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testRequestExceptionIsThrownIfIsServerError SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItCanEnforceFaking SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItCanEnforceFakingInThePool SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testPreventingStrayRequests SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testAllowingStrayRequestUrls SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItCanAddAuthorizationHeaderIntoRequestUsingBeforeSendingCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItCanSetAllowMaxRedirects SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testPreventDuplicatedContentType SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItCanSubstituteUrlParams SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testTheTransferStatsAreCustomizable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testTheTransferStatsAreCustomizableOnFake SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItCanAddGlobalMiddleware SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItCanAddGlobalRequestMiddleware SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItCanAddGlobalResponseMiddleware SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItCanGetTheGlobalMiddleware SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItCanAddRequestMiddleware SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItCanAddResponseMiddleware SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItReturnsResponse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItCanReturnCustomResponseClass SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItCanHaveGlobalDefaultValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testItCanCreatePendingRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testBatchNoCallbacks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testBatchDefer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testCannotAddRequestsToInProgressBatch SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testBatchBeforeHook SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testBatchProgressHook SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testBatchCatchHook SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testBatchThenHookIsCalled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testBatchThenHookIsNotCalled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testBatchFinallyHookIsCalledWithoutErrors SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testBatchFinallyHookIsCalledWithErrors SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testBatchConcurrency SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testAfterResponse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testAfterResponseWithThrows SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: implements::testAfterResponseWithAsync SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpJsonResponseTest::testSetAndRetrieveData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpJsonResponseTest::testGetOriginalContent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpJsonResponseTest::testSetAndRetrieveOptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpJsonResponseTest::testSetAndRetrieveDefaultOptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpJsonResponseTest::testSetAndRetrieveStatusCode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpJsonResponseTest::testInvalidArgumentExceptionOnJsonError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpJsonResponseTest::testGracefullyHandledSomeJsonErrorsWithPartialOutputOnError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpJsonResponseTest::testFromJsonString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpMimeTypeTest::testMimeTypeFromFileNameExistsTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpMimeTypeTest::testMimeTypeFromFileNameExistsFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpMimeTypeTest::testMimeTypeFromExtensionExistsTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpMimeTypeTest::testMimeTypeFromExtensionExistsFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpMimeTypeTest::testMimeTypeSymfonyInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpMimeTypeTest::testSearchExtensionFromMimeType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testHeaderOnRedirect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testWithOnRedirect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testWithCookieOnRedirect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testFragmentIdentifierOnRedirect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testInputOnRedirect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testWithCookies SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testOnlyInputOnRedirect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testExceptInputOnRedirect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testFlashingErrorsOnRedirect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testCanEnforceSameOriginWhenSameOrigin SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testCanEnforceSameOriginWhenSameOriginAndCustomPort SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testCanEnforceSameOriginWhenNotSameScheme SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testCanEnforceSameOriginWhenNotSameHostname SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testCanEnforceSameOriginWhenNotSamePort SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testCanEnforceSameOriginWhenNotSameSchemeAndSchemeValidationIsDisabled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testCanEnforceSameOriginWhenNotSamePortAndPortValidationIsDisabled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testSettersGettersOnRequest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testRedirectWithErrorsArrayConvertsToMessageBag SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testMagicCall SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRedirectResponseTest::testMagicCallException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testInstanceMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testMethodMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testRootMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testPathMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testDecodedPathMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testSegmentMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testSegmentsMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testUrlMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testFullUrlMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testIsMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testFullUrlIsMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testRouteIsMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testRouteMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testAjaxMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testPrefetchMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testPjaxMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testSecureMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testUserAgentMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testHostMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testHttpHostMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testSchemeAndHttpHostMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testHasMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testWhenHasMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testWhenFilledMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testMissingMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testWhenMissingMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testHasAnyMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testFilledMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testIsNotFilledMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testFilledAnyMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testInputMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testFluentMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testStringMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testBooleanMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testIntegerMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testFloatMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testArrayMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testCollectMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testDateMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testDateMethodExceptionWhenValueInvalid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testDateMethodExceptionWhenFormatInvalid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testEnumMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testEnumsMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testArrayAccess SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testArrayAccessWithoutRouteResolver SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testAllMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testKeysMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testOnlyMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testExceptMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testQueryMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testPostMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testCookieMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testHasCookieMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testFileMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testHasFileMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testServerMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testMergeMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testMergeIfMissingMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testReplaceMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testOffsetUnsetMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testHeaderMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testBearerTokenMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testJSONMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testJSONEmulatingPHPBuiltInServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testPrefersMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testAllInputReturnsInputAndFiles SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testAllInputReturnsNestedInputAndFiles SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testAllInputReturnsInputAfterReplace SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testAllInputWithNumericKeysReturnsInputAfterReplace SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testInputWithEmptyFilename SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testMultipleFileUploadWithEmptyValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testOldMethodCallsSession SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testOldMethodCallsSessionWhenDefaultIsArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testOldMethodCanGetDefaultValueFromModelByKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testFlushMethodCallsSession SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testExpectsJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testFormatReturnsAcceptableFormat SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testFormatReturnsAcceptsJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testFormatReturnsAcceptsHtml SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testFormatReturnsAcceptsAll SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testFormatReturnsAcceptsMultiple SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testFormatReturnsAcceptsCharset SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testWantsJsonRespectsHeaderChanges SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testAcceptsJsonRespectsHeaderChanges SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testPrefersRespectsHeaderChanges SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testWantsJsonWorksWhenHeaderSetBeforeFirstCall SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testCacheClearedWhenTransitioningFromUnsetToSetHeader SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testAcceptsJsonWorksWhenHeaderChangedMultipleTimes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testBadAcceptHeader SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testCaseInsensitiveAcceptHeader SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testSessionMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testHasSessionMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testGetSessionMethodWithLaravelSession SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testGetSessionMethodWithoutLaravelSession SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testUserResolverMakesUserAvailableAsMagicProperty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testFingerprintMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testFingerprintWithoutRoute SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testJsonRequestFillsRequestBodyParams SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testNonJsonRequestDoesntFillRequestBodyParams SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testMagicMethods SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testHttpRequestFlashCallsSessionFlashInputWithInputData SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testHttpRequestFlashOnlyCallsFlashWithProperParameters SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testHttpRequestFlashExceptCallsFlashWithProperParameters SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testGeneratingJsonRequestFromParentRequestUsesCorrectType SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testJsonRequestsCanMergeDataIntoJsonRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testItCanHaveObjectsInJsonPayload SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpRequestTest::testItDoesNotGenerateJsonErrorsForEmptyContent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpResponseTest::testJsonResponsesAreConvertedAndHeadersAreSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpResponseTest::testRenderablesAreRendered SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpResponseTest::testHeader SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpResponseTest::testWithCookie SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpResponseTest::testResponseCookiesInheritRequestSecureState SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpResponseTest::testGetOriginalContent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpResponseTest::testGetOriginalContentRetrievesTheFirstOriginalContent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpResponseTest::testSetAndRetrieveStatusCode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpResponseTest::testSetStatusCodeAndRetrieveStatusText SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpResponseTest::testOnlyInputOnRedirect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpResponseTest::testExceptInputOnRedirect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpResponseTest::testFlashingErrorsOnRedirect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpResponseTest::testSettersGettersOnRequest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpResponseTest::testRedirectWithErrorsArrayConvertsToMessageBag SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpResponseTest::testWithHeaders SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpResponseTest::testMagicCall SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpResponseTest::testMagicCallException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpTestingFileFactoryTest::testImagePng SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpTestingFileFactoryTest::testImageJpeg SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpTestingFileFactoryTest::testImageGif SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpTestingFileFactoryTest::testImageWebp SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpTestingFileFactoryTest::testImageWbmp SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpTestingFileFactoryTest::testImageBmp SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpTestingFileFactoryTest::testCreateWithMimeType SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpTestingFileFactoryTest::testCreateWithoutMimeType SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpTestingFileFactoryTest::testCallingCreateWithoutGDLoadedThrowsAnException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpUploadedFileTest::testUploadedFileCanRetrieveContentsFromTextFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpUploadedFileTest::testUploadedFileInRequestContainsOriginalPathAndName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JsonResourceTest::testJsonResourceNullAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testJsonResourceToJsonSucceedsWithPriorErrors SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testJsonResourceToPrettyPrint SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTest::testItCanGenerateDefinitionViaStaticMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTest::testDoNotSetHeaderWhenMethodNotCacheable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTest::testDoNotSetHeaderWhenNoContent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTest::testSetHeaderToFileResponseEvenWithNoContent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTest::testSetHeaderToDownloadResponseEvenWithNoContent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTest::testAddHeaders SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTest::testAddHeadersUsingArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTest::testGenerateEtag SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTest::testDoesNotOverrideEtag SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTest::testIsNotModified SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTest::testInvalidOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTest::testLastModifiedUnixTime SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTest::testLastModifiedStringDate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTest::testTrailingDelimiterIgnored SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTest::testItDoesNotSetEtagHeadersForBinaryContent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrimStringsTest::test_no_zero_width_space_character_returns_the_same_string SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrimStringsTest::test_leading_zero_width_space_character_is_trimmed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrimStringsTest::test_trim_strings_can_globally_ignore_certain_inputs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrimStringsTest::test_trailing_zero_width_space_character_is_trimmed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrimStringsTest::test_leading_zero_width_non_breakable_space_character_is_trimmed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrimStringsTest::test_leading_multiple_zero_width_non_breakable_space_characters_are_trimmed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrimStringsTest::test_combination_of_leading_and_trailing_zero_width_non_breakable_space_and_zero_width_space_characters_are_trimmed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrimStringsTest::test_leading_invisible_characters_are_trimmed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrimStringsTest::test_trailing_invisible_characters_are_trimmed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrimStringsTest::test_leading_multiple_invisible_characters_are_trimmed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrimStringsTest::test_trailing_multiple_invisible_characters_are_trimmed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrimStringsTest::test_combination_of_leading_and_trailing_multiple_invisible_characters_are_trimmed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrimStringsTest::test_trim_strings_can_ignore_nested_attributes_using_wildcards SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrustProxiesTest::test_request_does_not_trust SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrustProxiesTest::test_does_trust_trusted_proxy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrustProxiesTest::test_trusted_proxy_sets_trusted_proxies_with_wildcard SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrustProxiesTest::test_trusted_proxy_sets_trusted_proxies_with_double_wildcard_for_backwards_compat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrustProxiesTest::test_trusted_proxy_sets_trusted_proxies_with_REMOTE_ADDR SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrustProxiesTest::test_trusted_proxy_sets_trusted_proxies SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrustProxiesTest::test_get_client_ips SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrustProxiesTest::test_get_client_ip_with_multiple_ip_addresses_some_of_which_are_trusted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrustProxiesTest::test_get_client_ip_with_multiple_ip_addresses_all_proxies_are_trusted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrustProxiesTest::test_can_distrust_headers SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrustProxiesTest::test_x_forwarded_for_header_only_trusted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrustProxiesTest::test_x_forwarded_host_header_only_trusted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrustProxiesTest::test_x_forwarded_port_header_only_trusted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrustProxiesTest::test_x_forwarded_prefix_header_only_trusted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrustProxiesTest::test_x_forwarded_proto_header_only_trusted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrustProxiesTest::test_x_forwarded_multiple_individual_headers_trusted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TrustProxiesTest::test_is_reading_text_based_configurations SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: VitePreloadingTest::testItDoesNotSetLinkTagWhenNoTagsHaveBeenPreloaded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItAddsPreloadLinkHeader SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItDoesNotAttachHeadersToNonIlluminateResponses SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItDoesNotOverwriteOtherLinkHeaders SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItCanLimitNumberOfAssetsPreloaded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::test_it_can_configure_the_middleware SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JsonApiResourceTest::testResponseWrapperIsHardCodedToData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JsonApiResourceTest::testUnableToSetWrapper SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JsonApiResourceTest::testUnableToUnsetWrapper SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ApiAuthenticationWithEloquentTest::testAuthenticationViaApiWithEloquentUsingWrongDatabaseCredentialsShouldNotCauseInfiniteLoop SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthenticationTest::testBasicAuthProtectsRoute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticationTest::testBasicAuthPassesOnCorrectCredentials SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: AuthenticationTest::testBasicAuthRespectsAdditionalConditions SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: AuthenticationTest::testBasicAuthFailsOnWrongCredentials SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticationTest::testLoggingInFailsViaAttempt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticationTest::testLoggingInSucceedsViaAttempt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticationTest::testLoggingInUsingId SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticationTest::testLoggingOut SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticationTest::testLoggingOutOtherDevices SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticationTest::testPasswordMustBeValidToLogOutOtherDevices SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticationTest::testLoggingInOutViaAttemptRemembering SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticationTest::testLoggingInOutCurrentDeviceViaRemembering SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticationTest::testAuthViaAttemptRemembering SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticationTest::testDispatcherChangesIfThereIsOneOnTheAuthGuard SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticationTest::testDispatcherChangesIfThereIsOneOnTheCustomAuthGuard SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthenticationTest::testHasNoProblemIfThereIsNoDispatchingTheAuthCustomGuard SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ForgotPasswordTest::testItCanSendForgotPasswordEmail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ForgotPasswordTest::testItCanTriggerPasswordResetSentEvent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ForgotPasswordTest::testItCanSendForgotPasswordEmailViaCreateUrlUsing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ForgotPasswordTest::testItCanSendForgotPasswordEmailViaToMailUsing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ForgotPasswordWithoutDefaultRoutesTest::testItCannotSendForgotPasswordEmail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ForgotPasswordWithoutDefaultRoutesTest::testItCanSendForgotPasswordEmailViaCreateUrlUsing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ForgotPasswordWithoutDefaultRoutesTest::testItCanSendForgotPasswordEmailViaToMailUsing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: GatePolicyResolutionTest::testGateEvaluationEventIsFired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: GatePolicyResolutionTest::testPolicyCanBeGuessedUsingClassConventions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: GatePolicyResolutionTest::testPolicyCanBeGuessedForParallelClassHierarchies SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: GatePolicyResolutionTest::testPolicyCanBeGuessedUsingCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: GatePolicyResolutionTest::testPolicyCanBeGuessedMultipleTimes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: GatePolicyResolutionTest::testPolicyCanBeGivenByAttribute SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RedirectIfAuthenticatedTest::testWhenDashboardNamedRouteIsAvailable SAFETY: FAIL QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - framework_magic_hiding_intent TEST: RedirectIfAuthenticatedTest::testWhenHomeNamedRouteIsAvailable SAFETY: FAIL QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - framework_magic_hiding_intent TEST: RedirectIfAuthenticatedTest::testWhenDashboardSlugIsAvailable SAFETY: FAIL QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - framework_magic_hiding_intent TEST: RedirectIfAuthenticatedTest::testWhenHomeSlugIsAvailable SAFETY: FAIL QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - framework_magic_hiding_intent TEST: RedirectIfAuthenticatedTest::testWhenHomeOrDashboardAreNotAvailable SAFETY: FAIL QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - framework_magic_hiding_intent TEST: RedirectIfAuthenticatedTest::testWhenGuest SAFETY: FAIL QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: RequirePasswordTest::testItCanGenerateDefinitionViaStaticMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RequirePasswordTest::testUserSeesTheWantedPageIfThePasswordWasRecentlyConfirmed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RequirePasswordTest::testUserIsRedirectedToThePasswordConfirmRouteIfThePasswordWasNotRecentlyConfirmed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RequirePasswordTest::testUserIsRedirectedToACustomRouteIfThePasswordWasNotRecentlyConfirmedAndTheCustomRouteIsSpecified SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RequirePasswordTest::testAuthPasswordTimeoutIsConfigurable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RehashOnLogoutOtherDevicesTest::testItRehashThePasswordUsingLogoutOtherDevices SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - framework_magic_hiding_intent TEST: BroadcastManagerTest::testEventCanBeBroadcastNow SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BroadcastManagerTest::testEventsCanBeBroadcast SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BroadcastManagerTest::testEventsCanBeRescued SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BroadcastManagerTest::testNowEventsCanBeRescued SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BroadcastManagerTest::testUniqueEventsCanBeBroadcast SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BroadcastManagerTest::testUniqueEventsCanBeBroadcastWithUniqueIdFromProperty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BroadcastManagerTest::testUniqueEventsCanBeBroadcastWithUniqueIdFromMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BroadcastManagerTest::testThrowExceptionWhenUnknownStoreIsUsed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BroadcastManagerTest::testThrowExceptionWhenDriverCreationFails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SendingBroadcastsViaAnonymousEventTest::testBroadcastIsSent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingBroadcastsViaAnonymousEventTest::testBroadcastIsSentNow SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingBroadcastsViaAnonymousEventTest::testDefaultNameIsSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingBroadcastsViaAnonymousEventTest::testDefaultPayloadIsSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingBroadcastsViaAnonymousEventTest::testSendToMultipleChannels SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingBroadcastsViaAnonymousEventTest::testSendViaANonDefaultConnection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingBroadcastsViaAnonymousEventTest::testSendToOthersOnly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingBroadcastsViaAnonymousEventTest::testSendToPrivateChannel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingBroadcastsViaAnonymousEventTest::testSendToPresenceChannel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DynamoDbStoreTest::testItemsCanBeStoredAndRetrieved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DynamoDbStoreTest::testItemsCanBeAtomicallyAdded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DynamoDbStoreTest::testItemsCanBeIncrementedAndDecremented SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DynamoDbStoreTest::testLocksCanBeAcquired SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileCacheLockTest::testLocksCanBeAcquiredAndReleased SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileCacheLockTest::testLocksCanBlockForSeconds SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileCacheLockTest::testConcurrentLocksAreReleasedSafely SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileCacheLockTest::testLocksWithFailedBlockCallbackAreReleased SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileCacheLockTest::testLocksCanBeReleasedUsingOwnerToken SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileCacheLockTest::testOwnerStatusCanBeCheckedAfterRestoringLock SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileCacheLockTest::testCacheRememberReturnsValueWhenLockWithSameKeyExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileCacheLockTest::testOtherOwnerDoesNotOwnLockAfterRestore SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileCacheLockTest::testExceptionIfBlockCanNotAcquireLock SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MemoizedStoreTest::test_it_can_memoize_when_retrieving_single_value SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MemoizedStoreTest::test_null_values_are_memoized_when_retrieving_single_value SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MemoizedStoreTest::test_it_can_memoize_when_retrieving_multiple_values SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MemoizedStoreTest::test_it_uses_correct_keys_for_getMultiple SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MemoizedStoreTest::test_it_uses_correct_keys_for_getMultiple_with_empty_prefix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MemoizedStoreTest::test_null_values_are_memoized_when_retrieving_multiple_values SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MemoizedStoreTest::test_it_can_retrieve_already_memoized_and_not_yet_memoized_values_when_retrieving_multiple_values SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MemoizedStoreTest::test_put_forgets_memoized_value SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MemoizedStoreTest::test_put_many_forgets_memoized_value SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MemoizedStoreTest::test_increment_forgets_memoized_value SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MemoizedStoreTest::test_decrement_forgets_memoized_value SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MemoizedStoreTest::test_forever_forgets_memoized_value SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MemoizedStoreTest::test_forget_forgets_memoized_value SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MemoizedStoreTest::test_flush_forgets_memoized_value SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MemoizedStoreTest::test_memoized_driver_uses_underlying_drivers_prefix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MemoizedStoreTest::test_memoized_keys_are_prefixed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MemoizedStoreTest::test_it_dispatches_decorated_driver_events_only SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MemoizedStoreTest::test_it_resets_cache_store_with_scoped_instances SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MemoizedStoreTest::test_it_throws_when_underlying_store_does_not_support_locks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::test_it_supports_with_flexible SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NoLockTest::testLocksCanAlwaysBeAcquiredAndReleased SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NoLockTest::testLocksCanBlockForSeconds SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PhpRedisBackoffTest::testPhpRedisBackoffAlgorithmParsing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PhpRedisBackoffTest::testPhpRedisBackoffAlgorithm SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PhpRedisBackoffTest::testAnInvalidPhpRedisBackoffAlgorithmIsConvertedToDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PhpRedisBackoffTest::testItFailsWithAnInvalidPhpRedisAlgorithm SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PhpRedisCacheLockTest::testRedisLockCanBeAcquiredAndReleasedWithoutSerializationAndCompression SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PhpRedisCacheLockTest::testRedisLockCanBeAcquiredAndReleasedWithPhpSerialization SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PhpRedisCacheLockTest::testRedisLockCanBeAcquiredAndReleasedWithJsonSerialization SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PhpRedisCacheLockTest::testRedisLockCanBeAcquiredAndReleasedWithIgbinarySerialization SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PhpRedisCacheLockTest::testRedisLockCanBeAcquiredAndReleasedWithMsgpackSerialization SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PhpRedisCacheLockTest::testRedisLockCanBeAcquiredAndReleasedWithLzfCompression SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PhpRedisCacheLockTest::testRedisLockCanBeAcquiredAndReleasedWithZstdCompression SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PhpRedisCacheLockTest::testRedisLockCanBeAcquiredAndReleasedWithLz4Compression SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PhpRedisCacheLockTest::testRedisLockCanBeAcquiredAndReleasedWithSerializationAndCompression SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Psr6RedisTest::testTransactionIsNotOpenedWhenSerializationFails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RedisCacheIntegrationTest::testRedisCacheAddTwice SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisCacheIntegrationTest::testRedisCacheRateLimiter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisCacheIntegrationTest::testRedisCacheAddFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisCacheIntegrationTest::testRedisCacheAddNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisCacheLockTest::testRedisLocksCanBeAcquiredAndReleased SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisCacheLockTest::testRedisLockCanHaveASeparateConnection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisCacheLockTest::testRedisLocksCanBlockForSeconds SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisCacheLockTest::testConcurrentRedisLocksAreReleasedSafely SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisCacheLockTest::testRedisLocksWithFailedBlockCallbackAreReleased SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisCacheLockTest::testRedisLocksCanBeReleasedUsingOwnerToken SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisCacheLockTest::testOwnerStatusCanBeCheckedAfterRestoringLock SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisCacheLockTest::testOtherOwnerDoesNotOwnLockAfterRestore SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisStoreTest::testCacheTtl SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisStoreTest::testItCanStoreInfinite SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisStoreTest::testItCanStoreNan SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisStoreTest::testItCanExpireWithZeroTTL SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisStoreTest::testTagsCanBeAccessed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisStoreTest::testTagEntriesCanBeStoredForever SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisStoreTest::testTagEntriesCanBeIncremented SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisStoreTest::testIncrementedTagEntriesProperlyTurnStale SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisStoreTest::testPastTtlTagEntriesAreNotAdded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisStoreTest::testPutPastTtlTagEntriesProperlyTurnStale SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisStoreTest::testTagsCanBeFlushedBySingleKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisStoreTest::testStaleEntriesCanBeFlushed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisStoreTest::testMultipleItemsCanBeSetAndRetrieved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisStoreTest::testPutManyCallsPutWhenClustered SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisStoreTest::testIncrementWithSerializationEnabled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisStoreTest::testTagsCanBeFlushedWithLargeNumberOfKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testStaleWhileRevalidate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testItHandlesStrayTtlKeyAfterMainKeyIsForgotten SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testItImplicitlyClearsTtlKeysFromDatabaseCache SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testItImplicitlyClearsTtlKeysFromFileDriver SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testItCanAlwaysDefer SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RepositoryTest::testItRoundsDateTimeValuesToAccountForTimePassedDuringScriptExecution SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConcurrencyTest::testWorkCanBeDistributed SAFETY: FAIL QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: ConcurrencyTest::testRunHandlerProcessErrorCode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConcurrencyTest::testOutputIsMappedToArrayInput SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConcurrencyTest::testRunHandlerProcessErrorWithDefaultExceptionWithoutParam SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConcurrencyTest::testRunHandlerProcessErrorWithCustomExceptionWithoutParam SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConcurrencyTest::testRunHandlerProcessErrorWithCustomExceptionWithParam SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConcurrencyTest::testRunPreservesCallbackOrder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: InvokeSerializedClosureCommandTest::testItCanInvokeSerializedClosureFromArgument SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: InvokeSerializedClosureCommandTest::testItCanInvokeSerializedClosureFromEnvironment SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: InvokeSerializedClosureCommandTest::testItReturnsNullWhenNoClosureIsProvided SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: InvokeSerializedClosureCommandTest::testItHandlesExceptionsGracefully SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: InvokeSerializedClosureCommandTest::testItHandlesCustomExceptionWithParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testExecutionOrder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCallbacksCannotRunInBackground SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testExceptionHandlingInCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CallCommandsTest::testItCanCallCommands SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CommandDurationThresholdTest::testItCanHandleExceedingCommandDuration SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CommandDurationThresholdTest::testItDoesntCallWhenExactlyThresholdDuration SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CommandDurationThresholdTest::testItProvidesArgsToHandler SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CommandDurationThresholdTest::testItCanExceedThresholdWhenSpecifyingDurationAsMilliseconds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CommandDurationThresholdTest::testItCanStayUnderThresholdWhenSpecifyingDurationAsMilliseconds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CommandDurationThresholdTest::testItCanExceedThresholdWhenSpecifyingDurationAsDateTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CommandDurationThresholdTest::testItCanStayUnderThresholdWhenSpecifyingDurationAsDateTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CommandDurationThresholdTest::testItClearsStartTimeAfterHandlingCommand SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CommandDurationThresholdTest::testUsesTheConfiguredDateTimezone SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CommandDurationThresholdTest::testItHandlesCallingTerminateWithoutHandle SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CommandEventsTest::testCommandEventsReceiveParsedInput SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CommandEventsTest::testCommandEventsReceiveParsedInputFromBackground SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CommandManualFailTest::testFailArtisanCommandManually SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CommandManualFailTest::testCreatesAnExceptionFromString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CommandManualFailTest::testCreatesAnExceptionFromNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CommandManualFailTest::testThrowsTheOriginalThrowableInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CommandSchedulingTest::testExecutionOrder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testArtisanCallUsingCommandName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testArtisanCallUsingCommandNameAliases SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testArtisanCallUsingCommandClass SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testArtisanCallUsingCommandNameUsingAsCommandAttribute SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testArtisanCallUsingCommandNameAliasesUsingAsCommandAttribute SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testArtisanCallNow SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testArtisanWithMockCallAfterCallNow SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testArtisanInstantiateScheduleWhenNeed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConsoleApplicationTest::testArtisanQueue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EnvironmentDecryptCommandTest::testItFailsWithInvalidCipherFails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentDecryptCommandTest::testItFailsUsingCipherWithInvalidKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentDecryptCommandTest::testItFailsWhenEncryptionFileCannotBeFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentDecryptCommandTest::testItFailsWhenEnvironmentFileExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentDecryptCommandTest::testItGeneratesTheEnvironmentFileWithGeneratedKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentDecryptCommandTest::testItGeneratesTheEnvironmentFileWithUserProvidedKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentDecryptCommandTest::testItGeneratesTheEnvironmentFileWithKeyFromEnvironment SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentDecryptCommandTest::testItGeneratesTheEnvironmentFileWhenForcing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentDecryptCommandTest::testItDecryptsMultiLineEnvironmentCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentDecryptCommandTest::testItWritesTheEnvironmentFileCustomFilename SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentDecryptCommandTest::testItWritesTheEnvironmentFileCustomPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentDecryptCommandTest::testItWritesTheEnvironmentFileCustomPathAndFilename SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentDecryptCommandTest::testItCannotOverwriteEncryptedFiles SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentDecryptCommandTest::testItGeneratesTheEnvironmentFileWithInteractivelyUserProvidedKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentEncryptCommandTest::testItFailsWithInvalidCipherFails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentEncryptCommandTest::testItFailsUsingCipherWithInvalidKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentEncryptCommandTest::testItGeneratesTheCorrectFileWhenUsingEnvironment SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentEncryptCommandTest::testItGeneratesTheCorrectFileWhenNotUsingEnvironment SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentEncryptCommandTest::testItFailsWhenEnvironmentFileCannotBeFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentEncryptCommandTest::testItFailsWhenEncryptionFileExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentEncryptCommandTest::testItGeneratesTheEncryptionFileWhenForcing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentEncryptCommandTest::testItEncryptsWithGivenKeyAndDisplaysIt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentEncryptCommandTest::testItEncryptsWithGivenGeneratedBase64KeyAndDisplaysIt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentEncryptCommandTest::testItCanRemoveTheOriginalFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnvironmentEncryptCommandTest::testItEncryptsWithInteractivelyGivenKeyAndDisplaysIt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventListCommandTest::testDisplayEmptyList SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventListCommandTest::testDisplayEvents SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventListCommandTest::testDisplayFilteredEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventListCommandTest::testDisplayEmptyListAsJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventListCommandTest::testDisplayEventsAsJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventListCommandTest::testDisplayFilteredEventAsJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: GeneratorCommandTest::testItChopsPhpExtension SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooCommand::testItChopsPhpExtensionFromMakeViewCommands SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooCommand::testItOnlyChopsPhpExtensionFromFilename SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SomeTest::testItCannotGenerateClassUsingReservedName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobSchedulingTest::testJobQueuingRespectsJobQueue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JobSchedulingTest::testJobQueuingRespectsJobConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PromptsAssertionTest::testAssertionForTextPrompt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAssertionForPausePrompt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAssertionForTextareaPrompt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAssertionForSuggestPrompt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAssertionForPasswordPrompt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAssertionForConfirmPrompt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAssertionForSelectPromptWithAList SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAssertionForSelectPromptWithAnAssociativeArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAlternativeAssertionForSelectPromptWithAnAssociativeArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAssertionForRequiredMultiselectPrompt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAssertionForOptionalMultiselectPrompt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAssertionForSearchPrompt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAssertionForMultisearchPrompt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAssertionForSelectPromptFollowedByMultisearchPrompt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PromptsValidationTest::testValidationForPrompts SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PromptsValidationTest::testValidationWithLaravelRulesAndNoCustomization SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PromptsValidationTest::testValidationWithLaravelRulesInlineMessagesAndAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PromptsValidationTest::testValidationWithLaravelRulesMessagesAndAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CallbackEventTest::testDefaultResultIsSuccess SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CallbackEventTest::testFalseResponseIsFailure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CallbackEventTest::testExceptionIsFailure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CallbackEventTest::testExceptionBubbles SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventPingTest::testPingRescuesTransferExceptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleGroupTest::testGroupCanSetScheduleCronExpression SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleGroupTest::testGroupedScheduleCanOverrideGroupCronExpression SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleGroupTest::testGroupCanSetScheduleRepeatSeconds SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleGroupTest::testGroupedScheduleCanOverrideGroupRepeatSeconds SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleGroupTest::testGroupedScheduleCanBeNested SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleGroupTest::testGroupCanApplyAttributeToSchedules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleGroupTest::testGroupedScheduleExecution SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleGroupTest::testGroupedPendingEventAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleGroupTest::testGroupedPendingEventAttributesWithoutOverlapping SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleListCommandTest::testDisplayEmptySchedule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleListCommandTest::testDisplayEmptyScheduleAsJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleListCommandTest::testDisplaySchedule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleListCommandTest::testDisplayScheduleAsJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleListCommandTest::testDisplayScheduleAsJsonWithSpecificEnvironment SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleListCommandTest::testDisplayScheduleWithSortAsJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleListCommandTest::testDisplayScheduleAsJsonWithTimezone SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleListCommandTest::testDisplayScheduleAsJsonInVerboseMode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleListCommandTest::testDisplayScheduleWithSort SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleListCommandTest::testDisplayScheduleInVerboseMode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleListCommandTest::testDisplayScheduleSubMinute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleListCommandTest::testClosureCommandsMayBeScheduled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleRunCommandTest::test_failing_command_in_foreground_triggers_event SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleRunCommandTest::test_failing_command_in_background_does_not_trigger_event SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleRunCommandTest::test_successful_command_does_not_trigger_event SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleRunCommandTest::test_command_with_no_explicit_return_does_not_trigger_event SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleRunCommandTest::test_successful_command_in_background_does_not_trigger_event SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleRunCommandTest::test_command_with_no_explicit_return_in_background_does_not_trigger_event SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleTestCommandTest::testRunNoDefinedCommands SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleTestCommandTest::testRunNoMatchingCommand SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleTestCommandTest::testRunUsingNameOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ScheduleTestCommandTest::testRunUsingChoices SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SubMinuteSchedulingTest::test_it_doesnt_wait_for_sub_minute_events_when_nothing_is_scheduled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SubMinuteSchedulingTest::test_it_doesnt_wait_for_sub_minute_events_when_none_are_scheduled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SubMinuteSchedulingTest::test_it_runs_sub_minute_callbacks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SubMinuteSchedulingTest::test_it_runs_multiple_sub_minute_callbacks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SubMinuteSchedulingTest::test_sub_minute_scheduling_can_be_interrupted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SubMinuteSchedulingTest::test_sub_minute_events_stop_for_the_rest_of_the_minute_once_maintenance_mode_is_enabled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SubMinuteSchedulingTest::test_sub_minute_events_can_be_run_in_maintenance_mode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SubMinuteSchedulingTest::test_sub_minute_scheduling_respects_filters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SubMinuteSchedulingTest::test_sub_minute_scheduling_can_run_on_one_server SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: UniqueJobSchedulingTest::testJobsPushedToQueue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UniqueJobSchedulingTest::testUniqueJobsPushedToQueue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BuildableIntegrationTest::test_build_method_can_resolve_itself_via_container SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::test_cookie_is_sent_back_with_proper_expire_time_when_should_expire_on_close SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieTest::test_cookie_is_sent_back_with_proper_expire_time_with_respect_to_lifetime SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AfterQueryTest::testAfterQueryOnEloquentBuilder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AfterQueryTest::testAfterQueryOnBaseBuilder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AfterQueryTest::testAfterQueryOnEloquentCursor SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AfterQueryTest::testAfterQueryOnBaseBuilderCursor SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AfterQueryTest::testAfterQueryOnEloquentPluck SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AfterQueryTest::testAfterQueryOnBaseBuilderPluck SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AfterQueryTest::testAfterQueryHookOnBelongsToManyRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AfterQueryTest::testAfterQueryHookOnHasManyThroughRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AfterQueryTest::testAfterQueryOnEloquentBuilderCanAlterReturnedResult SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AfterQueryTest::testAfterQueryOnBaseBuilderCanAlterReturnedResult SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConnectionThreadsCountTest::testGetThreadsCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCacheStoreTest::testValueCanStoreNewCache SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCacheStoreTest::testPutOperationShouldNotStoreExpired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCacheStoreTest::testValueCanUpdateExistCache SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCacheStoreTest::testValueCanUpdateExistCacheInTransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCacheStoreTest::testAddOperationShouldNotStoreExpired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCacheStoreTest::testAddOperationCanStoreNewCache SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCacheStoreTest::testAddOperationShouldNotUpdateExistCache SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCacheStoreTest::testAddOperationShouldNotUpdateExistCacheInTransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCacheStoreTest::testAddOperationCanUpdateIfCacheExpired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCacheStoreTest::testAddOperationCanUpdateIfCacheExpiredInTransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCacheStoreTest::testGetOperationReturnNullIfExpired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCacheStoreTest::testGetOperationCanDeleteExpired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCacheStoreTest::testForgetIfExpiredOperationCanDeleteExpired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCacheStoreTest::testForgetIfExpiredOperationShouldNotDeleteUnExpired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCacheStoreTest::testMany SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCacheStoreTest::testManyWithExpiredKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCacheStoreTest::testManyAsAssociativeArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCacheStoreTest::testPutMany SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCacheStoreTest::testResolvingSQLiteConnectionDoesNotThrowExceptions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionsTest::testBuildDatabaseConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionsTest::testEstablishDatabaseConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionsTest::testThrowExceptionIfConnectionAlreadyExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionsTest::testOverrideExistingConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionsTest::testEstablishingAConnectionWillDispatchAnEvent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionsTest::testTablePrefix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionsTest::testDynamicConnectionDoesntFailOnReconnect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseConnectionsTest::testDynamicConnectionWithNoNameDoesntFailOnReconnect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCustomCastsTest::test_custom_casting SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCustomCastsTest::test_custom_casting_using_create SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCustomCastsTest::test_custom_casting_nullable_values SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCustomCastsTest::test_as_collection_with_map_into SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCustomCastsTest::test_as_custom_collection_with_map_into SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCustomCastsTest::test_as_collection_with_map_callback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseCustomCastsTest::test_as_custom_collection_with_map_callback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBroadcastingTest::testBasicBroadcasting SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBroadcastingTest::testChannelRouteFormatting SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBroadcastingTest::testBroadcastingOnModelTrashing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBroadcastingTest::testBroadcastingForSpecificEventsOnly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBroadcastingTest::testBroadcastNameDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBroadcastingTest::testBroadcastNameCanBeDefined SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBroadcastingTest::testBroadcastPayloadDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentBroadcastingTest::testBroadcastPayloadCanBeDefined SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelAttributeCastingTest::testBasicCustomCasting SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelAttributeCastingTest::testGetOriginalWithCastValueObjects SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelAttributeCastingTest::testOneWayCasting SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelAttributeCastingTest::testSettingRawAttributesClearsTheCastCache SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelAttributeCastingTest::testCastsThatOnlyHaveGetterDoNotPersistAnythingToModelOnSave SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelAttributeCastingTest::testCastsThatOnlyHaveGetterThatReturnsPrimitivesAreNotCached SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelAttributeCastingTest::testAttributesCanCacheStrings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelAttributeCastingTest::testAttributesCanCacheBooleans SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelAttributeCastingTest::testAttributesCanCacheNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelAttributeCastingTest::testAttributesByDefaultDontCacheBooleans SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelAttributeCastingTest::testCastsThatOnlyHaveGetterThatReturnsObjectAreCached SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelAttributeCastingTest::testCastsThatOnlyHaveGetterThatReturnsDateTimeAreCached SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelAttributeCastingTest::testCastsThatOnlyHaveGetterThatReturnsObjectAreNotCached SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelAttributeCastingTest::testCastsThatOnlyHaveGetterThatReturnsDateTimeAreNotCached SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelAttributeCastingTest::testCastsThatOnlyHaveGetterThatReturnsObjectAreNotCachedFluent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelAttributeCastingTest::testCastsThatOnlyHaveGetterThatReturnsDateTimeAreNotCachedFluent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelCustomCastingTest::testBasicCustomCasting SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelCustomCastingTest::testGetOriginalWithCastValueObjects SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelCustomCastingTest::testDeviableCasts SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelCustomCastingTest::testSerializableCasts SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelCustomCastingTest::testOneWayCasting SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelCustomCastingTest::testSettingRawAttributesClearsTheCastCache SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelCustomCastingTest::testSettingAttributesUsingArrowClearsTheCastCache SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelCustomCastingTest::testWithCastableInterface SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelCustomCastingTest::testGetFromUndefinedCast SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentModelCustomCastingTest::testSetToUndefinedCast SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseLockTest::testLockCanHaveASeparateConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseLockTest::testLockCanBeAcquired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseLockTest::testLockCanBeForceReleased SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseLockTest::testExpiredLockCanBeRetrieved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseLockTest::testOtherOwnerDoesNotOwnLockAfterRestore SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseLockTest::testIgnoresConcurrencyException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsTest::testTransactionCallbacks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsTest::testTransactionCallbacksDoNotInterfereWithOneAnother SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsTest::testTransactionsDoNotAffectDifferentConnections SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseTransactionsTest::testAfterRollbackCallbacksAreExecuted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentAggregateTest::testMinMax SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentAggregateTest::testAvg SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentAggregateTest::testSum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentAggregateTest::testNumericAggregate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testBasicCreateAndRetrieve SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testRefreshOnOtherModelWorks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testCustomPivotClass SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testCustomPivotClassUsingSync SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testCustomPivotClassUsingUpdateExistingPivot SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testCustomPivotClassUpdatesTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testAttachMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testDetachMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testDetachMethodWithCustomPivot SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFirstMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFirstOrFailMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFindMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFindMethodStringyKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFindSoleMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFindOrFailMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFindOrFailMethodWithMany SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFindOrFailMethodWithManyUsingCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFindOrNewMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFindOrMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFindOrMethodWithMany SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFindOrMethodWithManyUsingCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFirstOrNewMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFirstOrCreateMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFirstOrCreateUnrelatedExisting SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testCreateOrFirst SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testCreateOrFirstUnrelatedExisting SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testCreateOrFirstWithinTransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFirstOrNewMethodWithValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFirstOrCreateMethodWithValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testUpdateOrCreateMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testUpdateOrCreateUnrelatedExisting SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testUpdateOrCreateMethodCreate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testSyncMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testSyncMethodWithModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testSyncWithoutDetachingMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testSyncMethodWithEmptyValueDoesNotQueryWhenDetachingDisabled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testToggleMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testTouchingParent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testTouchingRelatedModelsOnSync SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testNoTouchingHappensIfNotConfigured SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testCanRetrieveRelatedIds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testCanTouchRelatedModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testWherePivotOnString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFirstWhere SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testWherePivotOnBoolean SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testOrWherePivotOnBoolean SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testWherePivotNotBetween SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testWherePivotInMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testOrWherePivotInMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testWherePivotNotInMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testOrWherePivotNotInMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testWherePivotNullMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testWherePivotNotNullMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testCanUpdateExistingPivot SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testCanUpdateExistingPivotUsingArrayableOfIds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testCanUpdateExistingPivotUsingModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testCustomRelatedKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testGlobalScopeColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testPivotDoesntHavePrimaryKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testOrderByPivotMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFirstOrMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testUpdateOrCreateQueryBuilderIsolation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToManyTest::testFirstOrCreateQueryBuilderIsolation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToTest::testHasSelf SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToTest::testHasSelfCustomOwnerKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToTest::testAssociateWithModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToTest::testAssociateWithId SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToTest::testAssociateWithIdUnsetsLoadedRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToTest::testParentIsNotNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToTest::testParentIsModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToTest::testParentIsNotAnotherModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToTest::testNullParentIsNotModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToTest::testParentIsNotModelWithAnotherTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentBelongsToTest::testParentIsNotModelWithAnotherConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCollectionFreshTest::testEloquentCollectionFresh SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCollectionLoadCountTest::testLoadCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCollectionLoadCountTest::testLoadCountWithSameModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCollectionLoadCountTest::testLoadCountOnDeletedModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCollectionLoadCountTest::testLoadCountWithArrayOfRelations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCollectionLoadCountTest::testLoadCountDoesNotOverrideAttributesWithDefaultValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCollectionLoadMissingTest::testLoadMissing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCollectionLoadMissingTest::testLoadMissingWithClosure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCollectionLoadMissingTest::testLoadMissingWithDuplicateRelationName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCollectionLoadMissingTest::testLoadMissingWithoutInitialLoad SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCollectionLoadMissingTest::testLoadMissingWithNestedArraySyntax SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCollectionLoadMissingTest::testLoadMissingWithMultipleDotNotationRelations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCollectionLoadMissingTest::testLoadMissingWithNestedArrayWithColon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCollectionLoadMissingTest::testLoadMissingWithNestedArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCollectionLoadMissingTest::testLoadMissingWithNestedArrayWithClosure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCollectionLoadMissingTest::testLoadMissingWithMultipleNestedArrays SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCollectionLoadMissingTest::testLoadMissingWithMultipleNestedArraysCombinedWithDotNotation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCursorPaginateTest::testCursorPaginationOnTopOfColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCursorPaginateTest::testPaginationWithUnion SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCursorPaginateTest::testPaginationWithDistinct SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCursorPaginateTest::testPaginationWithWhereClause SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCursorPaginateTest::testPaginationWithHasClause SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCursorPaginateTest::testPaginationWithWhereHasClause SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCursorPaginateTest::testPaginationWithWhereExistsClause SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCursorPaginateTest::testPaginationWithMultipleWhereClauses SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCursorPaginateTest::testPaginationWithMultipleUnionAndMultipleWhereClauses SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCursorPaginateTest::testPaginationWithMultipleAliases SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCursorPaginateTest::testPaginationWithAliasedOrderBy SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCursorPaginateTest::testPaginationWithDistinctColumnsAndSelect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCursorPaginateTest::testPaginationWithDistinctColumnsAndSelectAndJoin SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCustomPivotCastTest::testCastsAreRespectedOnAttach SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCustomPivotCastTest::testCastsAreRespectedOnAttachArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCustomPivotCastTest::testCastsAreRespectedOnSync SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCustomPivotCastTest::testCastsAreRespectedOnSyncArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCustomPivotCastTest::testCastsAreRespectedOnSyncArrayWhileUpdatingExisting SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCustomPivotCastTest::testDefaultAttributesAreRespectedAndCastsAreRespected SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentDeleteTest::testDeleteWithLimit SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentDeleteTest::testForceDeletedEventIsFired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentDeleteTest::testForceDeletingEventIsFired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentDeleteTest::testDeleteQuietly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentDeleteTest::testDestroy SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentEagerLoadingLimitTest::testBelongsToMany SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentEagerLoadingLimitTest::testBelongsToManyWithOffset SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentEagerLoadingLimitTest::testHasMany SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentEagerLoadingLimitTest::testHasManyWithOffset SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentEagerLoadingLimitTest::testHasManyThrough SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentEagerLoadingLimitTest::testHasManyThroughWithOffset SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyTest::testCanGetHasOneFromHasManyRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyTest::testHasOneRelationshipFromHasMany SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyTest::testFirstOrCreate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyTest::testFirstOrCreateWithinTransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyTest::testCreateOrFirst SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyTest::testCreateOrFirstWithinTransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyThroughTest::testBasicCreateAndRetrieve SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyThroughTest::testGlobalScopeColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyThroughTest::testHasSelf SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyThroughTest::testHasSelfCustomOwnerKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyThroughTest::testHasSameParentAndThroughParentTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyThroughTest::testFirstOrNewOnMissingRecord SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyThroughTest::testFirstOrNewWhenRecordExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyThroughTest::testFirstOrCreateWhenModelDoesntExist SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyThroughTest::testFirstOrCreateWhenModelExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyThroughTest::testFirstOrCreateRegressionIssue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyThroughTest::testCreateOrFirstWhenRecordDoesntExist SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyThroughTest::testCreateOrFirstWhenRecordExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyThroughTest::testCreateOrFirstWhenRecordExistsInTransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyThroughTest::testCreateOrFirstRegressionIssue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyThroughTest::testUpdateOrCreateAffectingWrongModelsRegression SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyThroughTest::testCanReplicateModelLoadedThroughHasManyThrough SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasManyThroughTest::testOne SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasOneIsTest::testChildIsNotNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasOneIsTest::testChildIsModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasOneIsTest::testChildIsNotAnotherModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasOneIsTest::testNullChildIsNotModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasOneIsTest::testChildIsNotModelWithAnotherTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasOneIsTest::testChildIsNotModelWithAnotherConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasOneOfManyTest::testItOnlyEagerLoadsRequiredModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentHasOneOfManyTest::testItGetsCorrectResultUsingAtLeastTwoAggregatesDistinctFromId SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentLazyEagerLoadingTest::testItBasic SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMassPrunableTest::testPrunableMethodMustBeImplemented SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMassPrunableTest::testPrunesRecords SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMassPrunableTest::testPrunesSoftDeletedRecords SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelCustomEventsTest::testFlushListenersClearsCustomEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelCustomEventsTest::testCustomEventListenersAreFired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelCustomEventsTest::testAddObservableEventFromTrait SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelDateCastingTest::testDatesAreCustomCastable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelDateCastingTest::testDatesFormattedAttributeBindings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelDateCastingTest::testDatesFormattedArrayAndJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelDateCastingTest::testCustomDateCastsAreComparedAsDatesForCarbonInstances SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelDateCastingTest::testCustomDateCastsAreComparedAsDatesForStringValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelDateCastingTest::testDatesCanBeSerializedToArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelDecimalCastingTest::testItHandlesExponent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testItHandlesIntegersWithUnderscores SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testItWrapsThrownExceptions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testItHandlesMissingIntegers SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testItHandlesLargeNumbers SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testItRounds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testItTrimsLongValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testItDoesntRoundNumbers SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDecimalsAreCastable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testRoundingDirection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEncryptedCastingTest::testStringsAreCastable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEncryptedCastingTest::testArraysAreCastable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEncryptedCastingTest::testJsonIsCastable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEncryptedCastingTest::testJsonAttributeIsCastable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEncryptedCastingTest::testObjectIsCastable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEncryptedCastingTest::testCollectionIsCastable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEncryptedCastingTest::testAsEncryptedCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEncryptedCastingTest::testAsEncryptedCollectionMap SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEncryptedCastingTest::testAsEncryptedArrayObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEncryptedCastingTest::testCustomEncrypterCanBeSpecified SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEncryptedDirtyTest::testDirtyAttributeBehaviorWithNoPreviousKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EloquentModelEncryptedDirtyTest::testDirtyAttributeBehaviorWithPreviousKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EloquentModelEnumCastingTest::testEnumsAreCastable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEnumCastingTest::testEnumsReturnNullWhenNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEnumCastingTest::testEnumsAreCastableToArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEnumCastingTest::testEnumsAreCastableToArrayWhenNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEnumCastingTest::testEnumsAreConvertedOnSave SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEnumCastingTest::testEnumsAreNotConvertedOnSaveWhenAlreadyCorrect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEnumCastingTest::testEnumsAcceptNullOnSave SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEnumCastingTest::testEnumsAcceptBackedValueOnSave SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEnumCastingTest::testFirstOrNew SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEnumCastingTest::testFirstOrCreate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEnumCastingTest::testAttributeCastToAnEnumCanNotBeSetToAnotherEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEnumCastingTest::testAttributeCastToAnEnumCanNotBeSetToAValueNotDefinedOnTheEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEnumCastingTest::testAnAttributeWithoutACastCanBeSetToAnEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelEnumCastingTest::testCreateOrFirst SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelHashedCastingTest::testHashedWithBcrypt SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelHashedCastingTest::testNotHashedIfAlreadyHashedWithBcrypt SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelHashedCastingTest::testNotHashedIfNullWithBrcypt SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelHashedCastingTest::testPassingHashWithHigherCostThrowsExceptionWithBcrypt SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelHashedCastingTest::testPassingHashWithLowerCostDoesNotThrowExceptionWithBcrypt SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelHashedCastingTest::testPassingDifferentHashAlgorithmThrowsExceptionWithBcrypt SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelHashedCastingTest::testHashedWithArgon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelHashedCastingTest::testNotHashedIfAlreadyHashedWithArgon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelHashedCastingTest::testNotHashedIfNullWithArgon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelHashedCastingTest::testPassingHashWithHigherMemoryThrowsExceptionWithArgon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelHashedCastingTest::testPassingHashWithHigherTimeThrowsExceptionWithArgon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelHashedCastingTest::testPassingHashWithHigherThreadsThrowsExceptionWithArgon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelHashedCastingTest::testPassingHashWithLowerMemoryThrowsExceptionWithArgon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelHashedCastingTest::testPassingHashWithLowerTimeThrowsExceptionWithArgon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelHashedCastingTest::testPassingHashWithLowerThreadsThrowsExceptionWithArgon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelHashedCastingTest::testPassingDifferentHashAlgorithmThrowsExceptionWithArgonAndBcrypt SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelHashedCastingTest::testPassingDifferentHashAlgorithmThrowsExceptionWithArgon2idAndBcrypt SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelImmutableDateCastingTest::testDatesAreImmutableCastable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelImmutableDateCastingTest::testDatesAreImmutableAndCustomCastable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelJsonCastingTest::testStringsAreCastable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelJsonCastingTest::testArraysAreCastable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelJsonCastingTest::testObjectsAreCastable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelJsonCastingTest::testCollectionsAreCastable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelLoadCountTest::testLoadCountSingleRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelLoadCountTest::testLoadCountMultipleRelations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelLoadCountTest::testLoadCountDeletedRelations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelLoadMaxTest::testLoadMaxSingleRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelLoadMaxTest::testLoadMaxMultipleRelations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelLoadMinTest::testLoadMinSingleRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelLoadMinTest::testLoadMinMultipleRelations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelLoadMissingTest::testLoadMissing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelLoadMissingTest::testLoadMissingNoUnnecessaryAttributeMutatorAccess SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelLoadSumTest::testLoadSumSingleRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelLoadSumTest::testLoadSumMultipleRelations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelRefreshTest::testItRefreshesModelExcludedByGlobalScope SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelRefreshTest::testItRefreshesASoftDeletedModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelRefreshTest::testItSyncsOriginalOnRefresh SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelRefreshTest::testItDoesNotSyncPreviousOnRefresh SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelRefreshTest::testAsPivot SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelRelationAutoloadTest::testRelationAutoloadForCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelRelationAutoloadTest::testRelationAutoloadForSingleModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelRelationAutoloadTest::testRelationAutoloadWithSerialization SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelRelationAutoloadTest::testRelationAutoloadWithCircularRelations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelRelationAutoloadTest::testRelationAutoloadWithChaperoneRelations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelRelationAutoloadTest::testRelationAutoloadVariousNestedMorphRelations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelRelationAutoloadTest::testRelationAutoloadWorksOnFactoryMake SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelScopeTest::testModelHasScope SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EloquentModelScopeTest::testModelDoesNotHaveScope SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EloquentModelScopeTest::testModelHasAttributedScope SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EloquentModelStringCastingTest::testSavingCastedAttributesToDatabase SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelStringCastingTest::testSavingCastedEmptyAttributesToDatabase SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelTest::testUserCanUpdateNullableDate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelTest::testAttributeChanges SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelTest::testDiscardChanges SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelTest::testInsertRecordWithReservedWordFieldName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelWithoutEventsTest::testWithoutEventsRegistersBootedListenersForLater SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphConstrainTest::testMorphConstraints SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphCountEagerLoadingTest::testWithMorphCountLoading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphCountEagerLoadingTest::testWithMorphCountLoadingWithSingleRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphCountLazyEagerLoadingTest::testLazyEagerLoading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphEagerLoadingTest::testWithMorphLoading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphEagerLoadingTest::testWithMorphLoadingWithSingleRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphEagerLoadingTest::testMorphLoadingMixedWithTrashedRelations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphEagerLoadingTest::testMorphWithTrashedRelationLazyLoading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphLazyEagerLoadingTest::testLazyEagerLoading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphManyTest::testUpdateModelWithDefaultWithCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphManyTest::test_self_referencing_existence_query SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphManyTest::testCanMorphOne SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphOneIsTest::testChildIsNotNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphOneIsTest::testChildIsModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphOneIsTest::testChildIsNotAnotherModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphOneIsTest::testNullChildIsNotModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphOneIsTest::testChildIsNotModelWithAnotherTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphOneIsTest::testChildIsNotModelWithAnotherConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphToGlobalScopesTest::testWithGlobalScopes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphToGlobalScopesTest::testWithoutGlobalScope SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphToGlobalScopesTest::testWithoutGlobalScopes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphToGlobalScopesTest::testLazyLoading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphToIsTest::testParentIsNotNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphToIsTest::testParentIsModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphToIsTest::testParentIsNotAnotherModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphToIsTest::testNullParentIsNotModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphToIsTest::testParentIsNotModelWithAnotherTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphToIsTest::testParentIsNotModelWithAnotherConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphToLazyEagerLoadingTest::testLazyEagerLoading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphToSelectTest::testSelect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphToSelectTest::testSelectRaw SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphToSelectTest::testSelectSub SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphToSelectTest::testAddSelect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphToSelectTest::testLazyLoading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphToTouchesTest::testNotNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMorphToTouchesTest::testNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMultiDimensionalArrayEagerLoadingTest::testItCanEagerLoad SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMultiDimensionalArrayEagerLoadingTest::testItAppliesConstraintsViaClosuresAndCanContinueEagerLoading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMultiDimensionalArrayEagerLoadingTest::testItCanSpecifyAttributesToSelectInKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMultiDimensionalArrayEagerLoadingTest::testItMixesWithDotNotation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentMultiDimensionalArrayEagerLoadingTest::testItMixesConstraintsFromDotNotation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentNamedScopeAttributeTest::test_it_can_query_named_scoped_from_the_query_builder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EloquentNamedScopeAttributeTest::test_it_can_query_named_scoped_from_static_query SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EloquentPaginateTest::testPaginationOnTopOfColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPaginateTest::testPaginationWithDistinct SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPaginateTest::testPaginationWithDistinctAndSelect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPaginateTest::testPaginationWithDistinctColumnsAndSelect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPaginateTest::testPaginationWithDistinctColumnsAndSelectAndJoin SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPivotEventsTest::testPivotWillTriggerEventsToBeFired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPivotEventsTest::testPivotWithPivotValueWillTriggerEventsToBeFired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPivotEventsTest::testPivotWithPivotCriteriaTriggerEventsToBeFiredOnCreateUpdateNoneOnDetach SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPivotEventsTest::testCustomPivotUpdateEventHasExistingAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPivotEventsTest::testCustomPivotUpdateEventHasDirtyCorrect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPivotEventsTest::testCustomMorphPivotClassDetachAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPivotSerializationTest::testPivotCanBeSerializedAndRestored SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPivotSerializationTest::testMorphPivotCanBeSerializedAndRestored SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPivotSerializationTest::testCollectionOfPivotsCanBeSerializedAndRestored SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPivotSerializationTest::testCollectionOfMorphPivotsCanBeSerializedAndRestored SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPivotTest::testPivotConvenientHelperReturnExpectedResult SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPivotTest::testPivotValuesCanBeSetFromRelationDefinition SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPivotWithoutTimestampTest::testAttachingModelWithoutTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPrunableTest::testPrunableMethodMustBeImplemented SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPrunableTest::testPrunesRecords SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPrunableTest::testPrunesSoftDeletedRecords SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPrunableTest::testPruneWithCustomPruneMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPrunableTest::testPruneWithExceptionAtOneOfModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentPushTest::testPushMethodSavesTheRelationshipsRecursively SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentStrictLoadingTest::testStrictModeThrowsAnExceptionOnLazyLoading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentStrictLoadingTest::testStrictModeDoesntThrowAnExceptionOnLazyLoadingWithSingleModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentStrictLoadingTest::testStrictModeDoesntThrowAnExceptionOnAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentStrictLoadingTest::testStrictModeDoesntThrowAnExceptionOnEagerLoading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentStrictLoadingTest::testStrictModeDoesntThrowAnExceptionOnLazyEagerLoading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentStrictLoadingTest::testStrictModeDoesntThrowAnExceptionOnSingleModelLoading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentStrictLoadingTest::testStrictModeThrowsAnExceptionOnLazyLoadingInRelations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentStrictLoadingTest::testStrictModeWithCustomCallbackOnLazyLoading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentStrictLoadingTest::testStrictModeWithOverriddenHandlerOnLazyLoading SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentStrictLoadingTest::testStrictModeDoesntThrowAnExceptionOnManuallyMadeModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentStrictLoadingTest::testStrictModeDoesntThrowAnExceptionOnRecentlyCreatedModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentTouchParentWithGlobalScopeTest::testBasicCreateAndRetrieve SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentTransactionWithAfterCommitUsingRefreshDatabaseOnMultipleConnectionsTest::testAfterCommitCallbacksAreCalledCorrectlyWhenNoAppTransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentTransactionWithAfterCommitUsingRefreshDatabaseOnMultipleConnectionsTest::testAfterCommitCallbacksAreCalledWithWrappingTransactionsCorrectly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentUniqueStringPrimaryKeysTest::testModelWithUuidPrimaryKeyCanBeCreated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentUniqueStringPrimaryKeysTest::testModelWithUlidPrimaryKeyCanBeCreated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentUniqueStringPrimaryKeysTest::testModelWithoutUuidPrimaryKeyCanBeCreated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentUniqueStringPrimaryKeysTest::testModelWithCustomUuidPrimaryKeyNameCanBeCreated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentUniqueStringPrimaryKeysTest::testModelWithUuidPrimaryKeyCanBeCreatedQuietly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentUniqueStringPrimaryKeysTest::testModelWithUlidPrimaryKeyCanBeCreatedQuietly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentUniqueStringPrimaryKeysTest::testModelWithoutUuidPrimaryKeyCanBeCreatedQuietly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentUniqueStringPrimaryKeysTest::testModelWithCustomUuidPrimaryKeyNameCanBeCreatedQuietly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentUniqueStringPrimaryKeysTest::testUpsertWithUuidPrimaryKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentUpdateTest::testBasicUpdate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentUpdateTest::testUpdateWithLimitsAndOrders SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentUpdateTest::testUpdatedAtWithJoins SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentUpdateTest::testSoftDeleteWithJoins SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentUpdateTest::testIncrement SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentUpdateTest::testIncrementOrDecrementIgnoresGlobalScopes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentUpdateTest::testUpdateSyncsPrevious SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentUpdateTest::testSaveSyncsPrevious SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentUpdateTest::testIncrementSyncsPrevious SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testWhereHasMorph SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testWhereHasMorphWithMorphMap SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testWhereHasMorphWithWildcard SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testWhereHasMorphWithWildcardAndMorphMap SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testWhereHasMorphWithWildcardAndOnlyNullMorphTypes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testWhereHasMorphWithRelationConstraint SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testWhereHasMorphWitDifferentConstraints SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testWhereHasMorphWithOwnerKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testHasMorph SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testOrHasMorph SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testDoesntHaveMorph SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testOrDoesntHaveMorph SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testOrWhereHasMorph SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testOrWhereHasMorphWithWildcardAndOnlyNullMorphTypes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testWhereDoesntHaveMorph SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testWhereDoesntHaveMorphWithWildcardAndOnlyNullMorphTypes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testOrWhereDoesntHaveMorph SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testModelScopesAreAccessible SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testWhereDoesntHaveMorphWithNullableMorph SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasMorphTest::testWhereDoesntHaveMorphWithNullableMorphAndAdditionalWhereIsLogicallyGrouped SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasTest::testWhereRelationCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasTest::testOrWhereRelationCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasTest::testWhereDoesntRelationCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasTest::testOrWhereDoesntRelationCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasTest::testWhereRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasTest::testOrWhereRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasTest::testNestedWhereRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasTest::testNestedOrWhereRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasTest::testWhereMorphRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasTest::testOrWhereMorphRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasTest::testWhereDoesntHaveRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasTest::testOrWhereDoesntHaveRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasTest::testNestedWhereDoesntHaveRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasTest::testNestedOrWhereDoesntHaveRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasTest::testWhereMorphDoesntHaveRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasTest::testOrWhereMorphDoesntHaveRelation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereHasTest::testWithCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereTest::testWhereAndWhereOrBehavior SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereTest::testWhereNot SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereTest::testWhereIn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereTest::testWhereInCanAcceptQueryable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereTest::testWhereIntegerInRaw SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereTest::testFirstWhere SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereTest::testSole SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereTest::testSoleFailsForMultipleRecords SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereTest::testSoleFailsIfNoRecords SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereTest::testSoleValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWhereTest::testChunkMap SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWithCountTest::testItBasic SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWithCountTest::testGlobalScopes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentWithCountTest::testSortingScopes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventConnectionEstablishedTest::testItListenToEstablishedConnectionOnReconnect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMariaDbIntegrationTest::testCreateOrFirst SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMariaDbIntegrationTest::testCreateOrFirstWithinTransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbConnectionTest::testJsonFloatComparison SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbConnectionTest::testFloatValueStoredCorrectly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbConnectionTest::testJsonWhereNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbConnectionTest::testJsonWhereNotNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbConnectionTest::testJsonPathUpdate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbConnectionTest::testWhereJsonContainsKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaBuilderAlterTableWithEnumTest::testRenameColumnOnTableWithEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaBuilderAlterTableWithEnumTest::testChangeColumnOnTableWithEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaBuilderAlterTableWithEnumTest::testGetTablesAndColumnListing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMariaDbSchemaBuilderTest::testAddCommentToTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCastTest::testItCastTimestampsCreatedByTheBuilderWhenTimeHasNotPassed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCastTest::testItCastTimestampsCreatedByTheBuilderWhenTimeHasPassed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCastTest::testItCastTimestampsUpdatedByAMutator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeInt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeFloat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeBool SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeBinary SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeStringInvalidUtf8 SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeStringNullByte SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FulltextTest::testWhereFulltext SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FulltextTest::testWhereFulltextWithBooleanMode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FulltextTest::testWhereFulltextWithExpandedQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JsonLikeTest::testJsonLikeWithEmoji SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MigrateWithRealpathTest::testRealpathMigrationHasProperlyExecuted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MigrateWithRealpathTest::testMigrationsHasTheMigratedTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MigrationServiceProviderTest::testContainerCanBuildMigrator SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MigratorEventsTest::testMigrationEventsAreFired SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MigratorEventsTest::testMigrationEventsContainTheOptionsAndPretendFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MigratorEventsTest::testMigrationEventsContainTheOptionsAndPretendTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MigratorEventsTest::testMigrationEventsContainTheMigrationAndMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MigratorEventsTest::testTheNoMigrationEventIsFiredWhenNothingToMigrate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MigratorEventsTest::testMigrationSkippedEventIsFired SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ModelInspectorTest::test_extracts_model_data SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ModelInspectorTest::test_command_returns_json SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMySqlIntegrationTest::testCreateOrFirst SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentMySqlIntegrationTest::testCreateOrFirstWithinTransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlConnectionTest::testJsonFloatComparison SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlConnectionTest::testFloatValueStoredCorrectly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlConnectionTest::testJsonWhereNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlConnectionTest::testJsonWhereNotNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlConnectionTest::testJsonPathUpdate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlConnectionTest::testWhereJsonContainsKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlConnectionTest::testLastInsertIdIsPreserved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaBuilderAlterTableWithEnumTest::testRenameColumnOnTableWithEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaBuilderAlterTableWithEnumTest::testChangeColumnOnTableWithEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaBuilderAlterTableWithEnumTest::testGetTablesAndColumnListing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaBuilderTest::testAddCommentToTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseMySqlSchemaBuilderTest::testGetRawIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCastTest::testItCastTimestampsCreatedByTheBuilderWhenTimeHasNotPassed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCastTest::testItCastTimestampsCreatedByTheBuilderWhenTimeHasPassed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentCastTest::testItCastTimestampsUpdatedByAMutator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeInt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeFloat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeBool SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeBinary SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeStringInvalidUtf8 SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeStringNullByte SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FulltextTest::testWhereFulltext SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FulltextTest::testWhereFulltextWithBooleanMode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FulltextTest::testWhereFulltextWithExpandedQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JoinLateralTest::testJoinLateral SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JoinLateralTest::testLeftJoinLateral SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPostgresIntegrationTest::testCreateOrFirst SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentPostgresIntegrationTest::testCreateOrFirstWithinTransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresConnectionTest::testJsonWhereNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresConnectionTest::testJsonWhereNotNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresConnectionTest::testJsonPathUpdate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabasePostgresConnectionTest::testWhereJsonContainsKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeInt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeFloat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeBool SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeBinary SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeStringInvalidUtf8 SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeStringNullByte SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FulltextTest::testWhereFulltext SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FulltextTest::testWhereFulltextWithWebsearch SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FulltextTest::testWhereFulltextWithPlain SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FulltextTest::testWhereFulltextWithPhrase SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JoinLateralTest::testJoinLateral SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JoinLateralTest::testLeftJoinLateral SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PostgresSchemaBuilderTest::testDropAllTablesOnAllSchemas SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PostgresSchemaBuilderTest::testDropAllTablesUsesDontDropConfigOnAllSchemas SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PostgresSchemaBuilderTest::testDropAllTablesUsesDontDropConfigOnOneSchema SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PostgresSchemaBuilderTest::testDropAllViewsOnAllSchemas SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PostgresSchemaBuilderTest::testAddTableCommentOnNewTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PostgresSchemaBuilderTest::testAddTableCommentOnExistingTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PostgresSchemaBuilderTest::testGetTables SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PostgresSchemaBuilderTest::testGetViews SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PostgresSchemaBuilderTest::testDropPartitionedTables SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PostgresSchemaBuilderTest::testGetRawIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PostgresSchemaBuilderTest::testCreateIndexesOnline SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testIncrement SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testSole SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testSoleWithParameters SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testSoleFailsForMultipleRecords SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testSoleFailsIfNoRecords SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testSelect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testSelectReplacesExistingSelects SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testSelectWithSubQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testAddSelect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testAddSelectWithSubQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testFromWithAlias SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testFromWithSubQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testWhereValueSubQuery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testWhereValueSubQueryBuilder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testWhereNot SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testWhereNotInputStringParameter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testOrWhereNot SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testWhereDate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testWhereDateWithInvalidOperator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testOrWhereDate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testOrWhereDateWithInvalidOperator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testWhereDay SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testWhereDayWithInvalidOperator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testOrWhereDay SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testOrWhereDayWithInvalidOperator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testWhereMonth SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testWhereMonthWithInvalidOperator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testOrWhereMonth SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testOrWhereMonthWithInvalidOperator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testWhereYear SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testWhereYearWithInvalidOperator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testOrWhereYear SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testOrWhereYearWithInvalidOperator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testWhereTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testWhereTimeWithInvalidOperator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testOrWhereTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testOrWhereTimeWithInvalidOperator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testWhereNested SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testPaginateWithSpecificColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testChunkMap SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderTest::testPluck SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderUpdateTest::testBasicUpdateForJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderUpdateTest::testSubqueryUpdate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderWhereLikeTest::testWhereLike SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderWhereLikeTest::testWhereLikeWithPercentWildcard SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderWhereLikeTest::testWhereLikeWithUnderscoreWildcard SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderWhereLikeTest::testWhereLikeCaseSensitive SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderWhereLikeTest::testWhereLikeWithPercentWildcardCaseSensitive SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryBuilderWhereLikeTest::testWhereLikeWithUnderscoreWildcardCaseSensitive SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryingWithEnumsTest::testCanQueryWithEnums SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueryingWithEnumsTest::testCanInsertWithEnums SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BatchableTransactionTest::testItCanHandleTimeoutJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueTransactionTest::testItCanHandleTimeoutJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RefreshCommandTest::testRefreshWithoutRealpath SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RefreshCommandTest::testRefreshWithRealpath SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderSchemaNameTest::testSchemas SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderSchemaNameTest::testCreate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderSchemaNameTest::testRename SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderSchemaNameTest::testDrop SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderSchemaNameTest::testDropIfExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderSchemaNameTest::testAddColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderSchemaNameTest::testRenameColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderSchemaNameTest::testModifyColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderSchemaNameTest::testDropColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderSchemaNameTest::testIndexes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderSchemaNameTest::testForeignKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderSchemaNameTest::testForeignKeysOnSameSchema SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderSchemaNameTest::testHasView SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderSchemaNameTest::testComment SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderSchemaNameTest::testAutoIncrementStartingValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderSchemaNameTest::testHasTable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testDropAllTables SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testDropAllViews SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testChangeToTinyInteger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testChangeToTextColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testChangeTextColumnToTextColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testModifyNullableColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testChangeNullableColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testRenameColumnWithDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testModifyColumnWithZeroDefaultOnSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testCompoundPrimaryWithAutoIncrement SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testModifyingAutoIncrementColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testModifyingColumnToAutoIncrementColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testAddingAutoIncrementColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testGetTables SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testHasView SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testGetViews SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testGetAndDropTypes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testGetColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testGetColumnsOnView SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testGetIndexes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testGetUniqueIndexes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testGetIndexesWithCompositeKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testGetFullTextIndexes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testHasIndexOrder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testGetForeignKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testGetCompoundForeignKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testAlteringTableWithForeignKeyConstraintsEnabled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testSystemVersionedTables SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testAddingStoredColumnOnSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testModifyingStoredColumnOnSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testGettingGeneratedColumns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testAddForeignKeysOnSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testDropForeignKeysOnSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testAddAndDropPrimaryOnSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SchemaBuilderTest::testAddingMacros SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConnectorTest::testConnectionConfigurations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MigrateFreshCommandWithJournalModeWalTest::testRunningMigrateFreshCommandWithWalJournalMode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testRenamingAndChangingColumnsWork SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testRenamingColumnsWorks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testNativeColumnModifyingOnPostgreSql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testNativeColumnModifyingOnSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testChangingColumnWithCollationWorks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testChangingCharColumnsWork SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testChangingPrimaryAutoincrementColumnsToNonAutoincrementColumnsWork SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testChangingDoubleColumnsWork SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testChangingColumnsWithDefaultWorks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testRenameIndexWorks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testAddUniqueIndexWithoutNameWorks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testAddUniqueIndexWithNameWorks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testAddColumnNamedCreateWorks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testDropIndexOnColumnChangeWorks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testItDoesNotSetPrecisionHigherThanSupportedWhenRenamingTimestamps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBlueprintTest::testItEnsuresDroppingForeignKeyIsAvailable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBuilderTest::testDropAllTablesWorksWithForeignKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBuilderTest::testHasColumnAndIndexWithPrefixIndexDisabled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBuilderTest::testHasColumnAndIndexWithPrefixIndexEnabled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBuilderTest::testAlterTableAddForeignKeyWithPrefix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSchemaBuilderTest::testAlterTableAddForeignKeyWithExpressionDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqliteConnectionTest::testWhereJsonContainsKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqliteSchemaBuilderTest::testGetTablesAndColumnListing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqliteSchemaBuilderTest::testGetViews SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqliteSchemaBuilderTest::testGetRawIndex SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelConnectionsTest::testChildObeysParentConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelConnectionsTest::testChildUsesItsOwnConnectionIfSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EloquentModelConnectionsTest::testChildUsesItsOwnConnectionIfSetEvenIfParentExplicitConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeInt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeFloat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeBool SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeBinary SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeStringInvalidUtf8 SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeStringNullByte SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SchemaStateTest::testSchemaDumpOnSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSqlServerIntegrationTest::testCreateOrFirst SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseEloquentSqlServerIntegrationTest::testCreateOrFirstWithinTransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerConnectionTest::testWhereJsonContainsKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaBuilderTest::testGetTables SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaBuilderTest::testColumnListing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaBuilderTest::testGetViews SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaBuilderTest::testGetViewsWhenNoneExist SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaBuilderTest::testComputedColumnsListing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseSqlServerSchemaBuilderTest::testCreateIndexesOnline SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeInt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeFloat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeBool SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeBinary SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeStringInvalidUtf8 SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeStringNullByte SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EscapeTest::testEscapeArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JoinLateralTest::testJoinLateral SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JoinLateralTest::testLeftJoinLateral SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TimestampTypeTest::testChangeDatetimeColumnToTimestampColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TimestampTypeTest::testChangeTimestampColumnToDatetimeColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TimestampTypeTest::testChangeStringColumnToTimestampColumn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EncryptionTest::testEncryptionProviderBind SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EncryptionTest::testEncryptionWillNotBeInstantiableWhenMissingAppKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DeferEventsTest::testDeferEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DeferEventsTest::testDeferModelEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DeferEventsTest::testDeferMultipleModelEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DeferEventsTest::testDeferSpecificModelEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EventFakeTest::testNonFakedEventGetsProperlyDispatched SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventFakeTest::testNonFakedEventGetsProperlyDispatchedAndReturnsResponses SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventFakeTest::testNonFakedEventGetsProperlyDispatchedAndCancelsFutureListeners SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventFakeTest::testNonFakedHaltedEventGetsProperlyDispatchedAndReturnsResponse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventFakeTest::testFakeExceptAllowsGivenEventToBeDispatched SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventFakeTest::testFakeExceptAllowsGivenEventsToBeDispatched SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventFakeTest::testEventsListedInExceptAreProperlyDispatched SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventFakeTest::testAssertListening SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventFakeTest::testMissingMethodsAreForwarded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventFakeTest::testShouldDispatchAfterCommitEventsAreNotDispatchedIfTransactionFails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventFakeTest::testShouldDispatchAfterCommitEventsAreDispatchedIfTransactionSucceeds SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventFakeTest::testShouldDispatchAfterCommitEventsAreDispatchedIfThereIsNoTransaction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventFakeTest::testAssertNothingDispatchedShouldDispatchAfterCommit SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ListenerTest::testClassListenerRunsNormallyIfNoTransactions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ListenerTest::testClassListenerDoesntRunInsideTransaction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueuedClosureListenerTest::testAnonymousQueuedListenerIsQueued SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueuedClosureListenerTest::testAnonymousQueuedListenerIsQueuedOnMessageGroup SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueuedClosureListenerTest::testAnonymousQueuedListenerIsQueuedWithDeduplicator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ShouldDispatchAfterCommitEventTest::testEventIsDispatchedIfThereIsNoTransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ShouldDispatchAfterCommitEventTest::testEventIsNotDispatchedIfTransactionFails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ShouldDispatchAfterCommitEventTest::testEventIsDispatchedIfTransactionSucceeds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ShouldDispatchAfterCommitEventTest::testItHandlesNestedTransactions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ShouldDispatchAfterCommitEventTest::testItOnlyDispatchesNestedTransactionsEventsAfterTheRootTransactionIsCommitted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ShouldDispatchAfterCommitEventTest::testItOnlyDispatchesNestedTransactionsEventsAfterTheRootTransactionIsCommittedDifferentOrder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ShouldDispatchAfterCommitEventTest::testItDoesNotDispatchAfterCommitEventsImmediatelyIfASiblingTransactionIsCommittedFirst SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ShouldDispatchAfterCommitEventTest::testChildEventsAreNotDispatchedIfParentTransactionFails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ShouldDispatchAfterCommitEventTest::testItHandlesNestedTransactionsWhereTheSecondOneFails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ShouldDispatchAfterCommitEventTest::testChildCallbacksShouldNotBeDispatchedIfTheirParentFails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ShouldDispatchAfterCommitEventTest::testItHandlesFailuresWithTransactionsTwoLevelsHigher SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ShouldDispatchAfterCommitEventTest::testCommittedTransactionThatWasDeeplyNestedIsRemovedIfTopLevelFails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FilesystemTest::testItCanDeleteViaFilesystemShouldUpdatesFileExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testItCanDeleteViaFilesystemRequiresManualClearStatCacheOnFileExistsFromDifferentProcess SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testItCanDeleteViaFilesystemShouldUpdatesIsFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testItCanDeleteViaFilesystemRequiresManualClearStatCacheOnIsFileFromDifferentProcess SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FilesystemTest::testItCanDeleteDirectoryViaFilesystem SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ServeFileTest::testItCanServeAnExistingFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ServeFileTest::testItWill404OnMissingFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ServeFileTest::testItWill403OnWrongSignature SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: StorageTest::testItCanDeleteViaStorage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: StorageTest::testItCanDeleteViaFilesystemShouldUpdatesStorage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: StorageTest::testItCanDeleteViaFilesystemRequiresManualClearStatCacheOnStorageFromDifferentProcess SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: StorageTest::testConditionable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: StorageTest::testItCanDeleteDirectoryViaStorage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CloudTest::test_it_can_resolve_core_container_aliases SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CloudTest::test_it_can_configure_disks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CloudTest::test_it_respects_log_levels SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WithScheduleTest::testDisplaySchedule SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AboutCommandTest::testItCanDisplayAboutCommandAsJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AboutCommandTest::testItRespectsCustomPathForCompiledViews SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ClosureCommandTest::testItCanRunClosureCommand SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConfigCacheCommandTest::testConfigurationCanBeCachedSuccessfully SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConfigCacheCommandTest::testConfigurationCacheFailsWithNonSerializableValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConfigCacheCommandTest::testConfigurationCacheFailsWithNestedNonSerializableValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConfigCacheCommandTest::testConfigurationCacheIsDeletedWhenSerializationFails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConfigPublishCommandTest::testItCanPublishConfigFilesWhenConfiguredWithDontMergeFrameworkConfiguration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OptimizeClearCommandTest::testCanListenToOptimizingEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OptimizeClearCommandTest::testCanExcludeCommandsByKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OptimizeClearCommandTest::testCanExcludeCommandsByCommand SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OptimizeCommandTest::testCanListenToOptimizingEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OptimizeCommandTest::testCanExcludeCommandsByKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OptimizeCommandTest::testCanExcludeCommandsByCommand SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CoreContainerAliasesTest::testItCanResolveCoreContainerAliases SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DiscoverEventsTest::testEventsCanBeDiscovered SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DiscoverEventsTest::testUnionEventsCanBeDiscovered SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DiscoverEventsTest::testMultipleDirectoriesCanBeDiscovered SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DiscoverEventsTest::testNoExceptionForEmptyDirectories SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DiscoverEventsTest::testEventsCanBeDiscoveredUsingCustomClassNameGuessing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ExceptionHandlerTest::testItRendersAuthorizationExceptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ExceptionHandlerTest::testItDoesntReportExceptionsWithShouldntReportInterface SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItRendersAuthorizationExceptionsWithCustomStatusCode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItRendersAuthorizationExceptionsWithStatusCodeTextWhenNoMessageIsSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItRendersAuthorizationExceptionsWithStatusButWithoutResponse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItHasFallbackErrorMessageForUnknownStatusCodes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItReturns400CodeOnMalformedRequests SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItReturnsNonZeroExitCodesForUncaughtExceptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::test_it_handles_malformed_error_views_in_production SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::test_it_handles_malformed_error_views_in_development SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::test_it_use_custom_json_response_factory_in_exception_handler SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::test_it_reports_request_exceptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RenderBladeFilesTest::testFormattedSourceTooltipRendersMultilineSafely SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RenderBladeFilesTest::testQueryTooltipRendersMultilineSafely SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RenderBladeFilesTest::testRequestHeaderTooltipRendersMultilineSafely SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RenderBladeFilesTest::testRoutingTooltipRendersMultilineSafely SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RendererTest::testItCanRenderExceptionPage SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RendererTest::testItCanRenderExceptionPageUsingSymfonyIfRendererIsNotDefined SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RendererTest::testItCanRenderExceptionPageWithRendererWhenDebugEnabled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RendererTest::testItDoesNotRenderExceptionPageWithRendererWhenDebugDisabled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RendererTest::testItDoesNotRegisterListenersWhenDebugDisabled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RendererTest::testItDoesNotRegisterListenersWhenRendererBound SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RendererTest::testItRegistersListenersWhenRendererNotBound SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testRescue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testMixReportsExceptionWhenAssetIsMissingFromManifest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testMixSilentlyFailsWhenAssetIsMissingFromManifestWhenNotInDebugMode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testMixThrowsExceptionWhenAssetIsMissingFromManifestWhenInDebugMode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testMixOnlyThrowsAndReportsOneExceptionWhenAssetIsMissingFromManifestWhenInDebugMode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testFakeReturnsSameInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationHelpersTest::testFakeUsesLocale SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FoundationServiceProvidersTest::testItCanBootServiceProviderRegisteredFromAnotherServiceProvider SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MaintenanceModeTest::testBasicMaintenanceModeResponse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MaintenanceModeTest::testMaintenanceModeCanHaveCustomStatus SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: MaintenanceModeTest::testMaintenanceModeCanHaveCustomTemplate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MaintenanceModeTest::testMaintenanceModeCanRedirectWithBypassCookie SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MaintenanceModeTest::testMaintenanceModeCanBeBypassedWithValidCookie SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MaintenanceModeTest::testMaintenanceModeCanBeBypassedOnExcludedUrls SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: MaintenanceModeTest::testMaintenanceModeCantBeBypassedWithInvalidCookie SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MaintenanceModeTest::testCanCreateBypassCookies SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MaintenanceModeTest::testDispatchEventWhenMaintenanceModeIsEnabled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MaintenanceModeTest::testDispatchEventWhenMaintenanceModeIsDisabled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingServiceProviderTest::testItIncludesMergedDataInServerRequestInterfaceInstancesUsingGetRequests SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RoutingServiceProviderTest::testItWorksNormallyWithoutMergeDataMiddlewareWithEmptyRequests SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RoutingServiceProviderTest::testItIncludesMergedDataInServerRequestInterfaceInstancesUsingGetJsonRequestsWithContentTypeHeader SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RoutingServiceProviderTest::testItIncludesMergedDataInServerRequestInterfaceInstancesUsingGetJsonRequests SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RoutingServiceProviderTest::testItIncludesMergedDataInServerRequestInterfaceInstancesUsingPostRequests SAFETY: FAIL QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: RoutingServiceProviderTest::testItIncludesMergedDataInServerRequestInterfaceInstancesUsingPostJsonRequests SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RoutingServiceProviderTest::testItHandlesGzippedBodyPayloadsWhenCreatingServerRequestInterfaceInstances SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RouteServiceProviderHealthTest::test_it_can_load_health_page SAFETY: FAIL QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: RouteServiceProviderTest::test_it_can_register_multiple_route_service_providers SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RouteServiceProviderTest::test_it_can_uses_routes_registered_using_bootstrap_file SAFETY: FAIL QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: RouteServiceProviderTest::test_it_can_uses_routes_registered_using_configuration_file SAFETY: FAIL QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: InteractsWithAuthenticationTest::testActingAsIsProperlyHandledForSessionAuth SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - framework_magic_hiding_intent TEST: InteractsWithAuthenticationTest::testActingAsIsProperlyHandledForAuthViaRequest SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - framework_magic_hiding_intent TEST: InteractsWithAuthenticationTest::testActingAsGuestClearsTheUser SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 6.0 REASONS: - ambiguous_success_no_identity_anchor - framework_magic_hiding_intent TEST: MakeHttpRequestsTest::test_it_can_use_uri_to_make_request SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheTableCommandTest::testCreateMakesMigration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CastMakeCommandTest::testItCanGenerateCastFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Foo::testItCanGenerateInboundCastFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ChannelMakeCommandTest::testItCanGenerateChannelFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ClassMakeCommandTest::testItCanGenerateClassFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Reverb::testItCanGenerateInvokableClassFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ComponentMakeCommandTest::testItCanGenerateComponentFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Foo::testItCanGenerateInlineComponentFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Foo::testItCanGenerateComponentFileWithTest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Foo::testItCanGenerateComponentFileWithCustomPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Foo::testItCanGenerateNestedComponentFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Foo::testItCanGenerateNestedComponentFileWithCustomPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConsoleMakeCommandTest::testItCanGenerateConsoleFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooCommand::testItCanGenerateConsoleFileWithCommandOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ControllerMakeCommandTest::testItCanGenerateControllerFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooController::testItCanGenerateControllerFileWhenBaseControllerExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooController::testItCanGenerateControllerFileWithInvokableTypeOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooController::testItCanGenerateControllerFileWithInvokableOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooController::testItCanGenerateControllerFileWithModelOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooController::testItCanGenerateControllerFileWithModelAndParentOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooController::testItCanGenerateControllerFileWithApiOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooController::testItCanGenerateControllerFileWithInvokableIgnoresApiOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooController::testItCanGenerateControllerFileWithApiAndModelOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooController::testItCanGenerateControllerFileWithTest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnumMakeCommandTest::testItCanGenerateEnumFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnumMakeCommandTest::testItCanGenerateEnumFileWithString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnumMakeCommandTest::testItCanGenerateEnumFileWithInt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnumMakeCommandTest::testItCanGenerateEnumFileInEnumsFolder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EnumMakeCommandTest::testItCanGenerateEnumFileInEnumerationsFolder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EventMakeCommandTest::testItCanGenerateEventFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ExceptionMakeCommandTest::testItCanGenerateExceptionFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooException::testItCanGenerateExceptionFileWithReportOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooException::testItCanGenerateExceptionFileWithRenderOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooException::testItCanGenerateExceptionFileWithReportAndRenderOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FactoryMakeCommandTest::testItCanGenerateFactoryFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: InterfaceMakeCommandTest::testItCanGenerateInterfaceFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: InterfaceMakeCommandTest::testItCanGenerateInterfaceFileWhenContractsFolderExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: InterfaceMakeCommandTest::testItCanGenerateInterfaceFileWhenInterfacesFolderExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobMakeCommandTest::testItCanGenerateJobFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooCreated::testItCanGenerateSyncJobFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooCreated::testItCanGenerateJobFileWithTest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobMiddlewareMakeCommandTest::testItCanGenerateJobFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Foo::testItCanGenerateJobFileWithTest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ListenerMakeCommandTest::testItCanGenerateListenerFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooListener::testItCanGenerateListenerFileForEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooListener::testItCanGenerateListenerFileForIlluminateEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooListener::testItCanGenerateQueuedListenerFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooListener::testItCanGenerateQueuedListenerFileForEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooListener::testItCanGenerateQueuedListenerFileForIlluminateEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooListener::testItCanGenerateQueuedListenerFileWithTest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMakeCommandTest::testItCanGenerateMailFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooMail::testItCanGenerateMailFileWithMarkdownOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooMail::testErrorsWillBeDisplayedWhenMarkdownsAlreadyExist SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooMail::testItCanGenerateMailFileWithViewOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooMail::testErrorsWillBeDisplayedWhenViewsAlreadyExist SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooMail::testItCanGenerateMailFileWithTest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooMail::testItCanGenerateMailWithNoInitialInput SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooMail::testItCanGenerateMailWithViewWithNoInitialInput SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooMail::testItCanGenerateMailWithMarkdownViewWithNoInitialInput SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MiddlewareMakeCommandTest::testItCanGenerateMiddlewareFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Foo::testItCanGenerateMiddlewareFile_with_tests SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MigrateMakeCommandTest::testItCanGenerateMigrationFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItCanGenerateMigrationFileWIthTableOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItCanGenerateMigrationFileUsingCreateKeyword SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItCanGenerateMigrationFileUsingCreateOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ModelMakeCommandTest::testItCanGenerateModelFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Foo::testItCanGenerateModelFileWithPivotOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Foo::testItCanGenerateModelFileWithMorphPivotOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Foo::testItCanGenerateModelFileWithControllerOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooController::testItCanGenerateModelFileWithFactoryOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Foo::testItCanGenerateModelFileWithFactoryOptionForDeepFolder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Bar::testItGeneratesModelWithHasFactoryTraitWhenUsingAllOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Foo::testItCanGenerateModelFileWithMigrationOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItCanGenerateModelFileWithSeederption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Foo::testItCanGenerateNestedModelFileWithControllerOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BarController::testItCanGenerateModelFileWithTest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Foo::testItAsksForAdditionalComponentsForExistingModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMakeCommandTest::testItCanGenerateNotificationFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooNotification::testItCanGenerateNotificationFileWithMarkdownOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooNotification::testItCanGenerateNotificationFileWithTest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooNotification::testItCanGenerateNotificationFileWithNotInitialInput SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooNotification::testItCanGenerateNotificationFileWithMarkdownTemplateWithNotInitialInput SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationTableCommandTest::testCreateMakesMigration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ObserverMakeCommandTest::testItCanGenerateObserverFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooObserver::testItCanGenerateObserverFileWithModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PolicyMakeCommandTest::testItCanGeneratePolicyFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooPolicy::testItCanGeneratePolicyFileWithModelOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ProviderMakeCommandTest::testItCanGenerateServiceProviderFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueBatchesTableCommandTest::testCreateMakesMigration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueFailedTableCommandTest::testCreateMakesMigration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueTableCommandTest::testCreateMakesMigration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RequestMakeCommandTest::testItCanGenerateRequestFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceMakeCommandTest::testItCanGenerateResourceFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooResource::testItCanGenerateResourceCollectionFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RuleMakeCommandTest::testItCanGenerateRuleFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Foo::testItCanGenerateInvokableRuleFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: Foo::testItCanGenerateImplicitRuleFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SeederMakeCommandTest::testItCanGenerateSeederFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SessionTableCommandTest::testCreateMakesMigration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TestMakeCommandTest::testItCanGenerateFeatureTest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooTest::testItCanGenerateUnitTest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooTest::testItCanGenerateFeatureTestUsingPest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FooTest::testItCanGenerateUnitTestUsingPest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TraitMakeCommandTest::testItCanGenerateTraitFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TraitMakeCommandTest::testItCanGenerateTraitFileWhenTraitsFolderExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TraitMakeCommandTest::testItCanGenerateTraitFileWhenConcernsFolderExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewMakeCommandTest::testItCanGenerateViewFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewMakeCommandTest::testItCanGenerateViewFileWithTest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HttpClientTest::testGlobalMiddlewarePersistsBeforeWeDispatchEvent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testGlobalMiddlewarePersistsAfterFacadeFlush SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testPoolCanForwardToUnderlyingPromise SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testForwardsCallsToPromise SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: HttpClientTest::testCanSetRequestAttributes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JsonResponseTest::testResponseWithInvalidJsonThrowsException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testResponseSetDataPassesWithPriorJsonErrors SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleCorsTest::testShouldReturnHeaderAssessControlAllowOriginWhenDontHaveHttpOriginOnRequest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleCorsTest::testOptionsAllowOriginAllowed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleCorsTest::testAllowAllOrigins SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleCorsTest::testAllowAllOriginsWildcard SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleCorsTest::testOriginsWildcardIncludesNestedSubdomains SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleCorsTest::testAllowAllOriginsWildcardNoMatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleCorsTest::testOptionsAllowOriginAllowedNonExistingRoute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleCorsTest::testOptionsAllowOriginNotAllowed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleCorsTest::testAllowMethodAllowed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleCorsTest::testAllowMethodNotAllowed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleCorsTest::testAllowHeaderAllowedOptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleCorsTest::testAllowHeaderAllowedWildcardOptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleCorsTest::testAllowHeaderNotAllowedOptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleCorsTest::testAllowHeaderAllowed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleCorsTest::testAllowHeaderAllowedWildcard SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleCorsTest::testAllowHeaderNotAllowed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleCorsTest::testError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HandleCorsTest::testValidationException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: VerifyCsrfTokenExceptTest::testItCanExceptPaths SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: VerifyCsrfTokenExceptTest::testPathsCanBeGloballyIgnored SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: VerifyCsrfTokenExceptTest::testItCanExceptWildcardPaths SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: VerifyCsrfTokenExceptTest::testItCanExceptFullUrlPaths SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: VerifyCsrfTokenExceptTest::testItCanExceptFullUrlWildcardPaths SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RequestDurationThresholdTest::testItCanHandleExceedingRequestDuration SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RequestDurationThresholdTest::testItDoesntCallWhenExactlyThresholdDuration SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RequestDurationThresholdTest::testItProvidesRequestToHandler SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RequestDurationThresholdTest::testUsesTheConfiguredDateTimezone SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RequestDurationThresholdTest::testItCanExceedThresholdWhenSpecifyingDurationAsMilliseconds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RequestDurationThresholdTest::testItCanStayUnderThresholdWhenSpecifyingDurationAsMilliseconds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RequestDurationThresholdTest::testItCanExceedThresholdWhenSpecifyingDurationAsDateTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RequestDurationThresholdTest::testItCanStayUnderThresholdWhenSpecifyingDurationAsDateTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RequestDurationThresholdTest::testItClearsStartTimeAfterHandlingRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RequestDurationThresholdTest::testItHandlesCallingTerminateWithoutHandle SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JsonApiCollectionTest::testItCanGenerateJsonApiResponse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JsonApiCollectionTest::testItCanGenerateJsonApiResponseWithSparseFieldsets SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JsonApiCollectionTest::testItCanGenerateJsonApiResponseWithEmptyRelationshipsUsingSparseIncluded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JsonApiCollectionTest::testItCanGenerateJsonApiResponseWithRelationshipsUsingSparseIncluded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JsonApiRequestTest::testItCanResolveSparseFields SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JsonApiRequestTest::testItCanResolveEmptySparseFields SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JsonApiRequestTest::testItCanResolveSparseIncluded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JsonApiRequestTest::testItCanREsolveSparseIncludedWithMaxRelationshipNesting SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JsonApiRequestTest::testItCanResolveEmptySparseIncluded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JsonApiResourceTest::testItCanGenerateJsonApiResponse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JsonApiResourceTest::testItCanGenerateJsonApiResponseWithSparseFieldsets SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JsonApiResourceTest::testItCanGenerateJsonApiResponseWithEmptyRelationshipsUsingSparseIncluded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JsonApiResourceTest::testItCanGenerateJsonApiResponseWithRelationshipsUsingSparseIncluded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JsonApiResourceTest::testItCanGenerateJsonApiResponseWithRelationshipsUsingSparseIncludedAndSparseFieldsets SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JsonApiResourceTest::testItCanResolveRelationshipWithCustomNameAndResourceClass SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JsonApiResourceTest::testItCanResolveRelationshipWithNestedRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JsonApiResourceTest::testItCanResolveRelationshipWithRecursiveNestedRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JsonApiResourceTest::testItCanResolveRelationshipWithRecursiveNestedRelationshipLimitedToDepthConfiguration SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JsonApiResourceTest::testItCanResolveRelationshipWithoutRedundantIncludedRelationship SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayBeConvertedToJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayBeConvertedToJsonWithToJsonMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testAnObjectsMayBeConvertedToJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testArraysWithObjectsMayBeConvertedToJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayHaveNoWrap SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayHaveOptionalValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayHaveOptionalValuesUsingUnless SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayHaveOptionalSelectedAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayHaveOptionalHasAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesWithOptionalHasAttributesReturnDefaultValuesAndNotMissingValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayHaveOptionalAppendedAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesWithOptionalAppendedAttributesReturnDefaultValuesAndNotMissingValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayHaveOptionalMerges SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayHaveOptionalRelationships SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayHaveOptionalRelationshipCounts SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayLoadOptionalRelationshipCounts SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayHaveOptionalRelationshipExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayLoadOptionalRelationshipExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayLoadOptionalRelationships SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayLoadOptionalRelationshipAggregates SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayHaveOptionalRelationshipAggregates SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayShowsNullForLoadedRelationshipWithValueNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayHaveOptionalRelationshipsWithDefaultValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayHaveOptionalPivotRelationships SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourceDoesNotThrowErrorWhenUsingEloquentStrictModeAndCheckingOptionalPivotRelationship SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testWhenLoadedUsingNamedDefaultParameterOnMissingRelation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testWhenLoadedUsingNamedDefaultParameterOnLoadedRelation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayHaveOptionalPivotRelationshipsWithCustomAccessor SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourceIsUrlRoutable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testNamedRoutesAreUrlRoutable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayBeSerializable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayCustomizeResponses SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayCustomizeExtraData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayCustomizeExtraDataWhenBuildingResponse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayCustomizeJsonOptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testCollectionResourcesMayCustomizeJsonOptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayCustomizeJsonOptionsOnPaginatedResponse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayCustomizeJsonOptionsWithTypeHintedConstructor SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testCustomHeadersMayBeSetOnResponses SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourcesMayReceiveProperStatusCodeForFreshModels SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testCollectionsAreNotDoubledWrapped SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testPaginatorsReceiveLinks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testPaginatorResourceCanPreserveQueryParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testPaginatorResourceCanReceiveQueryParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testCursorPaginatorReceiveLinks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testCursorPaginatorResourceCanPreserveQueryParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testCursorPaginatorResourceCanReceiveQueryParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testToJsonMayBeLeftOffOfCollection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testToJsonMayBeLeftOffOfSingleResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testOriginalOnResponseIsModelWhenSingleResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testOriginalOnResponseIsCollectionOfModelWhenCollectionResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testCollectionResourceWithPaginationInformation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourceWithPaginationInformation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testCollectionResourcesAreCountable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testCollectionResourcesMustCollectResources SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testKeysArePreservedIfTheResourceIsFlaggedToPreserveKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testKeysArePreservedInAnAnonymousCollectionIfTheResourceIsFlaggedToPreserveKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testLeadingMergeKeyedValueIsMergedCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testPostTooLargeException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testLeadingMergeKeyedValueIsMergedCorrectlyWhenFirstValueIsMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testLeadingMergeValueIsMergedCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testMergeValuesMayBeMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testInitialMergeValuesMayBeMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testMergeValueCanMergeJsonSerializable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testMergeValueCanMergeCollectionOfJsonSerializable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testAllMergeValuesMayBeMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testMergeValuesMayFallbackToDefaults SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testNestedMerges SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testTheResourceCanBeAnArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testItWillReturnAsAnArrayWhenStringKeysAreStripped SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testItStripsNumericKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testItWontKeysIfAnyOfThemAreStrings SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testItThrowsNoErrorInStrictModeWhenResourceIsPaginated SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourceSkipsWrappingWhenDataKeyExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourceWrapsWhenDataKeyDoesNotExist SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResourceTest::testResourceForceWrapOverridesDataKeyCheck SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResponseTest::testResponseWithInvalidJsonThrowsException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ThrottleRequestsTest::testLockOpensImmediatelyAfterDecay SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ThrottleRequestsTest::testLimitingUsingNamedLimiter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ThrottleRequestsTest::testItCanGenerateDefinitionViaStaticMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ThrottleRequestsTest::testItCanThrottlePerMinute SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: ThrottleRequestsTest::testItCanThrottlePerSecond SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: ThrottleRequestsTest::testItCanCombineRateLimitsWithoutSpecifyingUniqueKeys SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: ThrottleRequestsTest::testItFailsIfNamedLimiterDoesNotExist SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ThrottleRequestsTest::testItFailsIfNamedLimiterDoesNotExistAndAuthenticatedUserDoesNotHaveFallbackProperty SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - framework_magic_hiding_intent TEST: ThrottleRequestsTest::testItFallbacksToUserPropertyWhenThereIsNoNamedLimiterWhenAuthenticated SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 6.0 REASONS: - framework_magic_hiding_intent - multi_actor_unclear_actor TEST: ThrottleRequestsTest::testItFallbacksToUserAccessorWhenThereIsNoNamedLimiterWhenAuthenticated SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 6.0 REASONS: - framework_magic_hiding_intent - multi_actor_unclear_actor TEST: ThrottleRequestsTest::testItCanThrottleBasedOnResponse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ThrottleRequestsTest::testItDoesNotHitLimiterUntilResponseHasBeenGenerated SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ThrottleRequestsTest::testItReturnsConfiguredResponseWhenUsingAfterLimit SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ThrottleRequestsWithRedisTest::testLockOpensImmediatelyAfterDecay SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextIntegrationTest::test_it_can_hydrate_null SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextIntegrationTest::test_it_handles_eloquent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextIntegrationTest::test_it_ignores_deleted_models_when_hydrating SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextIntegrationTest::test_it_ignores_deleted_models_within_collections_when_hydrating SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextIntegrationTest::test_it_throws_on_incomplete_classes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextIntegrationTest::test_it_throws_generic_unserialize_exceptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextIntegrationTest::test_it_can_handle_unserialize_exceptions_manually SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LoggingIntegrationTest::testLoggingCanBeRunWithoutEncounteringExceptions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LoggingIntegrationTest::testCallingLoggerDirectlyDispatchesOneEvent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AttachingFromStorageTest::testItCanAttachFromStorage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AttachingFromStorageTest::testItCanAttachFromStorageAndFallbackToStorageNameAndMime SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AttachingFromStorageTest::testItCanChainAttachWithMailMessage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AttachingFromStorageTest::testItCanCheckForStorageBasedAttachments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailableWithoutSecuredEncodingTest::testItCanAssertMarkdownEncodedStringUsingTemplate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailableWithoutSecuredEncodingTest::testItCanAssertMarkdownEncodedStringUsingTemplateWithTable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailableWithSecuredEncodingTest::testItCanAssertMarkdownEncodedStringUsingTemplate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailableWithSecuredEncodingTest::testItCanAssertMarkdownEncodedStringUsingTemplateWithTable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MarkdownParserTest::testItCanParseMarkdownString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MarkdownParserTest::testItCanParseMarkdownEncodedString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RenderingMailWithLocaleTest::testMailableRendersInDefaultLocale SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RenderingMailWithLocaleTest::testMailableRendersInSelectedLocale SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RenderingMailWithLocaleTest::testMailableRendersInAppSelectedLocale SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMailWithLocaleTest::testMailIsSentWithDefaultLocale SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMailWithLocaleTest::testMailIsSentWithSelectedLocale SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMailWithLocaleTest::testMailIsSentWithLocaleFromMailable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMailWithLocaleTest::testMailIsSentWithLocaleUpdatedListenersCalled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMailWithLocaleTest::testLocaleIsSentWithModelPreferredLocale SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMailWithLocaleTest::testLocaleIsSentWithSelectedLocaleOverridingModelPreferredLocale SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMailWithLocaleTest::testLocaleIsSentWithModelPreferredLocaleWillIgnorePreferredLocaleOfTheCcRecipient SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMailWithLocaleTest::testLocaleIsNotSentWithModelPreferredLocaleWhenThereAreMultipleRecipients SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMailWithLocaleTest::testLocaleIsSetBackToDefaultAfterMailSent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMarkdownMailTest::testMailIsSent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMarkdownMailTest::testMailMayHaveSpecificTextView SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMarkdownMailTest::testEmbed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMarkdownMailTest::testEmbedData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMarkdownMailTest::testEmbedMultilineImage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMarkdownMailTest::testEmbeddedImagesAreInlinedWhenRenderingMailable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMarkdownMailTest::testMessageAsPublicPropertyMayBeDefinedAsViewData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMarkdownMailTest::testMessageAsWithNamedParameterMayBeDefinedAsViewData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMarkdownMailTest::testTheme SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMarkdownMailTest::testEmbeddedImageContentIdConsistencyAcrossMailerFailoverClones SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingQueuedMailTest::testMailIsSentWithDefaultLocale SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SentMessageMailTest::testDispatchesNotificationSent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MigratorTest::testMigrate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MigratorTest::testMigrateWithoutOutput SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MigratorTest::testWithSkippedMigrations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MigratorTest::testRollback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MigratorTest::testPretendMigrate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MigratorTest::testIgnorePretendModeForCallbackData SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MigratorTest::testIgnorePretendModeForCallbackOutputDynamicContentIsShown SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MigratorTest::testIgnorePretendModeForCallbackOutputDynamicContentNotShown SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseNotificationTest::testAssertSentToWhenNotifiableHasStringableKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SendingMailableNotificationsTest::testMarkdownNotification SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMailableNotificationsTest::testCanSetTheme SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingMailNotificationsTest::testMailIsSent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SendingMailNotificationsTest::testMailIsSentWithCustomTheme SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SendingMailNotificationsTest::testMailIsSentToNamedAddress SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SendingMailNotificationsTest::testMailIsSentWithSubject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SendingMailNotificationsTest::testMailIsSentToMultipleAddresses SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SendingMailNotificationsTest::testMailIsSentUsingMailable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SendingMailNotificationsTest::testMailIsSentUsingMailMessageWithHtmlAndPlain SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SendingMailNotificationsTest::testMailIsSentUsingMailMessageWithHtmlOnly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SendingMailNotificationsTest::testMailIsSentUsingMailMessageWithPlainOnly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SendingNotificationsViaAnonymousNotifiableTest::testMailIsSent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingNotificationsViaAnonymousNotifiableTest::testAnonymousNotifiableWithMultipleRoutes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingNotificationsViaAnonymousNotifiableTest::testFaking SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SendingNotificationsWithLocaleTest::testMailIsSentWithDefaultLocale SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SendingNotificationsWithLocaleTest::testMailIsSentWithFacadeSelectedLocale SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SendingNotificationsWithLocaleTest::testMailIsSentWithNotificationSelectedLocale SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SendingNotificationsWithLocaleTest::testMailableIsSentWithSelectedLocale SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SendingNotificationsWithLocaleTest::testMailIsSentWithLocaleUpdatedListenersCalled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SendingNotificationsWithLocaleTest::testLocaleIsSentWithNotifiablePreferredLocale SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SendingNotificationsWithLocaleTest::testLocaleIsSentWithNotifiablePreferredLocaleForMultipleRecipients SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SendingNotificationsWithLocaleTest::testLocaleIsSentWithNotificationSelectedLocaleOverridingNotifiablePreferredLocale SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SendingNotificationsWithLocaleTest::testLocaleIsSentWithFacadeSelectedLocaleOverridingNotifiablePreferredLocale SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CallQueuedHandlerTest::testJobCanBeDispatched SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CallQueuedHandlerTest::testJobCanBeDispatchedThroughMiddleware SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CallQueuedHandlerTest::testJobCanBeDispatchedThroughMiddlewareOnDispatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CallQueuedHandlerTest::testJobIsMarkedAsFailedIfModelNotFoundExceptionIsThrown SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CallQueuedHandlerTest::testJobIsDeletedIfHasDeleteProperty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CallQueuedHandlerTest::testJobIsDeletedIfHasDeleteAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CustomPayloadTest::test_custom_payload_gets_cleared_for_each_data_provider SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DeleteModelWhenMissingTest::test_deleteModelWhenMissing_and_display_name SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DynamoBatchTest::test_running_a_batch SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DynamoBatchTest::test_retrieve_batch_by_id SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DynamoBatchTest::test_retrieve_non_existent_batch SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DynamoBatchTest::test_delete_batch_by_id SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DynamoBatchTest::test_delete_non_existent_batch SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DynamoBatchTest::test_batch_with_failing_job SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DynamoBatchTest::test_get_batches SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: JobChainingTest::testJobsCanBeChainedOnSuccess SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testJobsCanBeChainedOnSuccessUsingPendingChain SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testJobsCanBeChainedOnSuccessUsingBusFacade SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testJobsCanBeChainedOnSuccessUsingBusFacadeAsArguments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testJobsChainedOnExplicitDelete SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testJobsCanBeChainedOnSuccessWithSeveralJobs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testJobsCanBeChainedOnSuccessUsingHelper SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testJobsCanBeChainedViaQueue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testSecondJobIsNotFiredIfFirstFailed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testSecondJobIsNotFiredIfFirstReleased SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testThirdJobIsNotFiredIfSecondFails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testCatchCallbackIsCalledOnFailure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testChainJobsUseSameConfig SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testChainJobsUseOwnConfig SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testChainJobsUseDefaultConfig SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testChainJobsCanBePrepended SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testChainJobsCanBePrependedWithoutExistingChain SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testChainJobsCanBeAppended SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testChainJobsCanBePrependedBatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testChainJobsCanBeAppendedBatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testChainJobsCanBeAppendedWithoutExistingChain SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testChainCanBeAppended SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testChainCanBeAppendedWithInitialJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testChainCanBePrepended SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testChainCanBePrependedWithInitialJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testBatchCanBeAddedToChain SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testBatchInChainUsesCorrectQueue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testDynamicBatchCanBeAddedToChain SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testChainBatchChain SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testChainBatchChainBatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testBatchCatchCallbacks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testChainBatchFailureAllowed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testChainBatchFailureNotAllowed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testChainConditionable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testBatchConditionable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testJobsAreChainedWhenDispatchIfIsTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testJobsAreNotChainedWhenDispatchIfIsFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testJobsAreChainedWhenDispatchUnlessIsFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobChainingTest::testJobsAreNotChainedWhenDispatchUnlessIsTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobDispatchingTest::testJobCanUseCustomMethodsAfterDispatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobDispatchingTest::testDispatchesConditionallyWithBoolean SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobDispatchingTest::testDispatchesConditionallyWithClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobDispatchingTest::testDoesNotDispatchConditionallyWithBoolean SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobDispatchingTest::testDoesNotDispatchConditionallyWithClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobDispatchingTest::testUniqueJobLockIsReleasedForJobDispatchedAfterResponse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobDispatchingTest::testQueueMayBeNullForJobQueueingAndJobQueuedEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobDispatchingTest::testQueuedClosureCanBeNamed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobDispatchingTest::testCanDisableDispatchingAfterResponse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobEncryptionTest::testEncryptedJobPayloadIsStoredEncrypted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobEncryptionTest::testNonEncryptedJobPayloadIsStoredRaw SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobEncryptionTest::testQueueCanProcessEncryptedJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: JobEncryptionTest::testQueueCanProcessUnEncryptedJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ModelSerializationTest::testItSerializeUserOnDefaultConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ModelSerializationTest::testItSerializeUserOnDifferentConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ModelSerializationTest::testItFailsIfModelsOnMultiConnections SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ModelSerializationTest::testItReloadsRelationships SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ModelSerializationTest::testItReloadsRelationshipsOnlyOnce SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ModelSerializationTest::testItReloadsNestedRelationships SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ModelSerializationTest::testItCanRunModelBootsAndTraitInitializations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ModelSerializationTest::testItCanUnserializeNestedRelationshipsWithoutPivot SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ModelSerializationTest::testItSerializesAnEmptyCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ModelSerializationTest::testItSerializesACollectionInCorrectOrder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ModelSerializationTest::testItCanUnserializeACollectionInCorrectOrderAndHandleDeletedModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ModelSerializationTest::testItCanUnserializeCustomCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ModelSerializationTest::testItSerializesTypedProperties SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ModelSerializationTest::test_model_serialization_structure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ModelSerializationTest::test_it_respects_without_relations_attribute SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ModelSerializationTest::test_it_respects_without_relations_attribute_applied_to_class SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ModelSerializationTest::test_serialization_types_empty_custom_eloquent_collection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueConnectionTest::testJobWontGetDispatchedInsideATransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueConnectionTest::testJobWillGetDispatchedInsideATransactionWhenExplicitlyIndicated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueConnectionTest::testJobWontGetDispatchedInsideATransactionWhenExplicitlyIndicated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueConnectionTest::testUniqueJobWontGetDispatchedInsideATransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueConnectionTest::testUniqueJobWillGetDispatchedInsideATransactionWhenExplicitlyIndicated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueConnectionTest::testUniqueJobWontGetDispatchedInsideATransactionWhenExplicitlyIndicated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueuedListenersTest::testListenersCanBeQueuedOptionally SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueFakeTest::testFakeFor SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueFakeTest::testFakeExceptFor SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueFakeTest::testFakeExcept SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueFakeTest::testFakeForReturnValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueFakeTest::testFakeExceptForReturnValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RateLimitedTest::testUnlimitedJobsAreExecuted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RateLimitedTest::testUnlimitedJobsAreExecutedUsingBackedEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RateLimitedTest::testUnlimitedJobsAreExecutedUsingUnitEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RateLimitedTest::testRateLimitedJobsAreNotExecutedOnLimitReached2 SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RateLimitedTest::testRateLimitedJobsAreNotExecutedOnLimitReached SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RateLimitedTest::testRateLimitedJobsCanBeSkippedOnLimitReached SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RateLimitedTest::testJobsCanHaveConditionalRateLimits SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RateLimitedTest::testRateLimitedJobsCanBeSkippedOnLimitReachedAndReleasedAfter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RateLimitedTest::testMiddlewareSerialization SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RateLimitedTest::testItCanLimitPerMinute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RateLimitedTest::testItCanLimitPerSecond SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RateLimitedWithRedisTest::testUnlimitedJobsAreExecuted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RateLimitedWithRedisTest::testRateLimitedJobsAreNotExecutedOnLimitReached SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RateLimitedWithRedisTest::testRateLimitedJobsCanBeSkippedOnLimitReached SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RateLimitedWithRedisTest::testJobsCanHaveConditionalRateLimits SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RateLimitedWithRedisTest::testMiddlewareSerialization SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisQueueTest::testExpiredJobsArePopped SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RedisQueueTest::testBlockingPop SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RedisQueueTest::testPopProperlyPopsJobOffOfRedis SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RedisQueueTest::testPopProperlyPopsDelayedJobOffOfRedis SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RedisQueueTest::testPopPopsDelayedJobOffOfRedisWhenExpireNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RedisQueueTest::testBlockingPopProperlyPopsJobOffOfRedis SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RedisQueueTest::testBlockingPopProperlyPopsExpiredJobs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RedisQueueTest::testNotExpireJobsWhenExpireNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RedisQueueTest::testExpireJobsWhenExpireSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RedisQueueTest::testRelease SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RedisQueueTest::testReleaseInThePast SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RedisQueueTest::testDelete SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RedisQueueTest::testClear SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RedisQueueTest::testSize SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RedisQueueTest::testPushJobQueueingAndJobQueuedEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RedisQueueTest::testBulkJobQueuedEvent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SerializableClosureV1QueueTest::testItCanProcessQueueFromSerializableClosureV1 SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SkipIfBatchCancelledTest::testJobsAreSkippedOnceBatchIsCancelled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SkipMiddlewareTest::testJobIsSkippedWhenConditionIsTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SkipMiddlewareTest::testJobIsSkippedWhenConditionIsTrueUsingClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SkipMiddlewareTest::testJobIsNotSkippedWhenConditionIsFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SkipMiddlewareTest::testJobIsNotSkippedWhenConditionIsFalseUsingClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SkipMiddlewareTest::testJobIsNotSkippedWhenConditionIsTrueWithUnless SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SkipMiddlewareTest::testJobIsNotSkippedWhenConditionIsTrueWithUnlessUsingClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SkipMiddlewareTest::testJobIsSkippedWhenConditionIsFalseWithUnless SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SkipMiddlewareTest::testJobIsSkippedWhenConditionIsFalseWithUnlessUsingClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ThrottlesExceptionsTest::testCircuitIsOpenedForJobErrors SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ThrottlesExceptionsTest::testCircuitStaysClosedForSuccessfulJobs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ThrottlesExceptionsTest::testCircuitResetsAfterSuccess SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ThrottlesExceptionsTest::testCircuitCanSkipJob SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ThrottlesExceptionsTest::testCircuitCanFailJob SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ThrottlesExceptionsTest::testItCanLimitPerMinute SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ThrottlesExceptionsTest::testItCanLimitPerSecond SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ThrottlesExceptionsTest::testLimitingWithDefaultValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ThrottlesExceptionsTest::testReportingExceptions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ThrottlesExceptionsTest::testUsesJobClassNameForCacheKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ThrottlesExceptionsTest::testUsesDisplayNameForCacheKeyWhenAvailable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ThrottlesExceptionsWithRedisTest::testCircuitIsOpenedForJobErrors SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ThrottlesExceptionsWithRedisTest::testCircuitStaysClosedForSuccessfulJobs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ThrottlesExceptionsWithRedisTest::testCircuitResetsAfterSuccess SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ThrottlesExceptionsWithRedisTest::testReportingExceptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: UniqueJobTest::testUniqueJobsAreNotDispatched SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UniqueJobTest::testUniqueJobWithViaDispatched SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UniqueJobTest::testLockIsReleasedForSuccessfulJobs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UniqueJobTest::testLockIsReleasedForFailedJobs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UniqueJobTest::testLockIsNotReleasedForJobRetries SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UniqueJobTest::testLockIsNotReleasedForJobReleases SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UniqueJobTest::testLockCanBeReleasedBeforeProcessing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UniqueJobTest::testLockIsReleasedOnModelNotFoundException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UniqueJobTest::testLockUsesDisplayNameWhenAvailable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UniqueJobTest::testUniqueLockCreatesKeyWithClassName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UniqueJobTest::testUniqueLockCreatesKeyWithIdAndClassName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UniqueJobTest::testUniqueLockCreatesKeyWithDisplayNameWhenAvailable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UniqueJobTest::testUniqueLockCreatesKeyWithIdAndDisplayNameWhenAvailable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UniqueUntilProcessingJobTest::testShouldBeUniqueUntilProcessingReleasesLockWhenJobIsReleasedByAMiddleware SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: WithoutOverlappingJobsTest::testNonOverlappingJobsAreExecuted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WithoutOverlappingJobsTest::testLockIsReleasedOnJobExceptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WithoutOverlappingJobsTest::testOverlappingJobsAreReleased SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WithoutOverlappingJobsTest::testOverlappingJobsCanBeSkipped SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WithoutOverlappingJobsTest::testCanShareKeyAcrossJobs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WithoutOverlappingJobsTest::testGetLock SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WithoutOverlappingJobsTest::testGetLockUsesDisplayName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WorkCommandTest::testRunningOneJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WorkCommandTest::testRunTimestampOutputWithDefaultAppTimezone SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WorkCommandTest::testRunTimestampOutputWithDifferentLogTimezone SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WorkCommandTest::testRunTimestampOutputWithSameAppDefaultAndQueueLogDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WorkCommandTest::testDaemon SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WorkCommandTest::testMemoryExceeded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WorkCommandTest::testMaxJobsExceeded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WorkCommandTest::testMaxTimeExceeded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WorkCommandTest::testMemoryExitCode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WorkCommandTest::testDisableLastRestartCheck SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WorkCommandTest::testDisablePauseQueueCheck SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: WorkCommandTest::testFailedJobListenerOnlyRunsOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PredisConnectionTest::testPredisCanEmitEventWithArrayableArgumentObject SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testRouteCollectionCanAddRoute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testRouteCollectionAddReturnsTheRoute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testRouteCollectionCanRetrieveByName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testRouteCollectionCanRetrieveByAction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testCompiledAndNonCompiledUrlResolutionHasSamePrecedenceForActions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testCompiledAndNonCompiledUrlResolutionHasSamePrecedenceForNames SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testRouteCollectionCanGetIterator SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testRouteCollectionCanGetIteratorWhenEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testRouteCollectionCanGetIteratorWhenRoutesAreAdded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testRouteCollectionCanHandleSameRoute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testRouteCollectionCanGetAllRoutes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testRouteCollectionCanGetRoutesByName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testRouteCollectionCanGetRoutesByMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testRouteCollectionCleansUpOverwrittenRoutes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testMatchingThrowsNotFoundExceptionWhenRouteIsNotFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testMatchingThrowsMethodNotAllowedHttpExceptionWhenMethodIsNotAllowed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testMatchingThrowsExceptionWhenMethodIsNotAllowedWhileSameRouteIsAddedDynamically SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testMatchingRouteWithSameDynamicallyAddedRouteAlwaysMatchesCachedOneFirst SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testMatchingFindsRouteWithDifferentMethodDynamically SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testMatchingWildcardFromCompiledRoutesAlwaysTakesPrecedent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testMatchingDynamicallyAddedRoutesTakePrecedenceOverFallbackRoutes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testMatchingFallbackRouteCatchesAll SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testMatchingCachedFallbackTakesPrecedenceOverDynamicFallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testMatchingCachedFallbackTakesPrecedenceOverDynamicRouteWithWrongMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testSlashPrefixIsProperlyHandled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testRouteWithoutNamespaceIsFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testGroupPrefixAndRoutePrefixAreProperlyHandled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testGroupGenerateNameForDuplicateRouteNamesThatEndWithDot SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testRouteBindingsAreProperlySaved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testMatchingSlashedRoutes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testMatchingUriWithQuery SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testMatchingRootUri SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testTrailingSlashIsTrimmedWhenMatchingCachedRoutes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CompiledRouteCollectionTest::testRouteWithSamePathAndSameMethodButDiffDomainNameWithOptionsMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FallbackRouteTest::testBasicFallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FallbackRouteTest::testFallbackWithPrefix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FallbackRouteTest::testFallbackWithWildcards SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FallbackRouteTest::testNoRoutes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FallbackRouteTest::testRespondWithNamedFallbackRoute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FallbackRouteTest::testNoFallbacks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FluentRoutingTest::testMiddlewareRunWhenRegisteredAsArrayOrParams SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FluentRoutingTest::testEmptyMiddlewareGroupAreHandledGracefully SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HasMiddlewareTest::test_has_middleware_is_respected SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ImplicitBackedEnumRouteBindingTest::testWithRouteCachingEnabled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ImplicitBackedEnumRouteBindingTest::testWithoutRouteCachingEnabled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ImplicitModelRouteBindingTest::testWithRouteCachingEnabled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ImplicitModelRouteBindingTest::testWithoutRouteCachingEnabled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ImplicitModelRouteBindingTest::testSoftDeletedModelsAreNotRetrieved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ImplicitModelRouteBindingTest::testSoftDeletedModelsCanBeRetrievedUsingWithTrashedMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ImplicitModelRouteBindingTest::testEnforceScopingImplicitRouteBindings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ImplicitModelRouteBindingTest::testEnforceScopingImplicitRouteBindingsWithTrashedAndChildWithNoSoftDeleteTrait SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ImplicitModelRouteBindingTest::testEnforceScopingImplicitRouteBindingsWithRouteCachingEnabled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ImplicitModelRouteBindingTest::testWithoutEnforceScopingImplicitRouteBindings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ImplicitModelRouteBindingTest::testImplicitRouteBindingChildHasUuids SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ImplicitModelRouteBindingTest::testImplicitRouteBindingChildHasUlids SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItDoesntInvokeControllerMethodByDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItDoesntInvokeCallableControllerByDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItCanCheckPrecognitiveStateOnTheRequest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItReturnsTheEmptyResponseWhenNotBailing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItCanBailDuringPrecognitionRequest SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: PrecognitionTest::testItCanExcludeValidationRulesWhenPrecognitiveWithFormRequest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItRunsExcludedRulesWhenNotPrecognitiveForFormRequest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testClientCanSpecifyInputToValidate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testClientCanSpecifyNoInputsToValidate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItAppliesHeadersWhenExceptionThrownInPrecognition SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItAppliesHeadersWhenFlowControlExceptionIsThrown SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItCanReturnValuesFromPrecognitionClosure SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: PrecognitionTest::testItCanBailWithResponseDuringNormalRequest SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: PrecognitionTest::testArbitraryBailResponseIsParsedToResponse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testClientCanSpecifyInputsToValidateWhenUsingControllerValidate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testClientCanSpecifyInputsToValidateWhenUsingControllerValidateWithBag SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testClientCanSpecifyInputsToValidateWhenUsingRequestValidate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testClientCanSpecifyInputsToValidateWhenUsingRequestValidateWithBag SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testClientCanSpecifyInputsToValidateWhenUsingControllerValidateWithPassingArrayOfRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItAppendsAnAdditionalVaryHeaderInsteadOfReplacingAnyExistingVaryHeaders SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testSpacesAreImportantInValidationFilterLogicForJsonRequests SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testVaryHeaderIsAppliedToNonPrecognitionResponses SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: PrecognitionTest::testItStopsExecutionAfterSuccessfulValidationWithValidationFilteringAndFormRequest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItStopsExecutionAfterFailedValidationWithNestedValidationFilteringUsingFormRequest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItStopsExecutionAfterFailedValidationWithNestedValidationFilteringUsingRequestValidate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItStopsExecutionAfterFailedValidationWithNestedValidationFilteringUsingControllerValidate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItStopsExecutionAfterFailedValidationWithNestedValidationFilteringUsingControllerValidateWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItCanPassValidationForEscapedDotsAfterFilteringWithPrecognition SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItCanFilterRulesWithEscapedDotsUsingFormRequest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItCanFilterRulesWithEscapedDotsWhenUsingRequestValidate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItCanFilterRulesWithEscapedDotsWhenUsingControllerValidate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItCanFilterRulesWithEscapedDotsWhenUsingControllerValidateWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItContinuesExecutionAfterSuccessfulValidationWithoutValidationFilteringAndFormRequest SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: PrecognitionTest::testItStopsExecutionAfterSuccessfulValidationWithValidationFilteringAndControllerValidate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItContinuesExecutionAfterSuccessfulValidationWithoutValidationFilteringAndControllerValidate SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: PrecognitionTest::testItStopsExecutionAfterSuccessfulValidationWithValidationFilteringAndControllerValidateWithBag SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItContinuesExecutionAfterSuccessfulValidationWithoutValidationFilteringAndControllerValidateWithBag SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: PrecognitionTest::testItStopsExecutionAfterSuccessfulValidationWithValidationFilteringAndControllerValidateWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItContinuesExecutionAfterSuccessfulValidationWithoutValidationFilteringAndControllerValidateWithXXXX SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: PrecognitionTest::testItStopsExecutionAfterSuccessfulValidationWithValidationFilteringAndControllerValidateWithPassingValidator SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItContinuesExecutionAfterSuccessfulValidationWithoutValidationFilteringAndControllerValidateWithPassingValidator SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: PrecognitionTest::testItStopsExecutionAfterSuccessfulValidationWithValidationFilteringAndRequestValidate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PrecognitionTest::testItContinuesExecutionAfterSuccessfulValidationWithoutValidationFilteringAndRequestValidate SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: PrecognitionTest::testItDoesNotSetLastUrl SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: PrecognitionTest::testItAppendsVaryHeaderToSymfonyResponse SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: PrecognitionTest::testItAppendsPrecognitionHeaderToSymfonyResponse SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: PrecognitionTest::testItCanNoContentWhileAlsoNotBeingPrecognitive SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PreviousUrlTest::testPreviousUrlWithoutSession SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ResponsableTest::testResponsableObjectsAreRendered SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteApiResourceTest::testApiResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteApiResourceTest::testApiResourceWithOnly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteApiResourceTest::testApiResources SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCachingTest::testWildcardCatchAllRoutes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCachingTest::testRedirectRoutes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCanBackedEnumTest::testSimpleRouteWithStringBackedEnumCanAbilityGuestForbiddenThroughTheFramework SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCanBackedEnumTest::testSimpleRouteWithStringBackedEnumCanAbilityGuestAllowedThroughTheFramework SAFETY: PASS QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: RouteRedirectTest::testRouteRedirect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteRedirectTest::testRouteRedirectWithExplicitRouteModelBinding SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteRedirectTest::testToActionHelper SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteRedirectTest::testToRouteHelper SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testSingletonDefaults SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testCreatableSingleton SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testCreatableSingletonOnly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testCreatableSingletonExcept SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testDestroyableSingleton SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testDestroyableSingletonOnly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testDestroyableSingletonExcept SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testCreatableDestroyableSingletonOnlyExceptTest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testApiSingleton SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testCreatableApiSingleton SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testCreatableApiSingletonOnly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testCreatableApiSingletonExcept SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testDestroyableApiSingleton SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testDestroyableApiSingletonOnly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testDestroyableApiSingletonExcept SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testCreatableDestroyableApiSingletonOnlyExceptTest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testSingletonOnly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testSingletonExcept SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testSingletonName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testSingletonNames SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testNestedSingleton SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testCreatableNestedSingleton SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testDestroyableNestedSingleton SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testNestedSingletonParameter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testNestedSingletonParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testNestedSingletonWhere SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSingletonTest::testPrefixedSingleton SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteViewTest::testRouteView SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteViewTest::testRouteViewWithParams SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteViewTest::testRouteViewWithStatus SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteViewTest::testRouteViewWithHeaders SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteViewTest::testRouteViewOverloadingStatusWithHeaders SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingServiceProviderTest::testResolvingPsrRequest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingServiceProviderTest::testResolvingPsrResponse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SerializableClosureV1CacheRouteTest::testItCanUseCachedRouteFromSerializableClosureV1 SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SimpleRouteTest::testSimpleRouteThroughTheFramework SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SimpleRouteTest::testSimpleRouteWitStringBackedEnumRouteNameThroughTheFramework SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testSigningUrl SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testSigningUrlWithCustomRouteSlug SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testTemporarySignedUrls SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testTemporarySignedUrlsWithExpiresParameter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testSignedUrlWithUrlWithoutSignatureParameter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testSignedUrlWithNullParameter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testSignedUrlWithEmptyStringParameter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testSignedUrlWithMultipleParameters SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testSignedUrlWithSignatureTextInKeyOrValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testSignedUrlWithAppendedNullParameterInvalid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testSignedUrlParametersParsedCorrectly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testExceptedParametersCanBeAddedInAnyOrder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testUnusualExceptedParametersWorksAsExpected SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testExceptedParameterCanBeAPrefixOrSuffixOfAnotherParameter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testSignedMiddleware SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testSignedMiddlewareWithInvalidUrl SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testSignedMiddlewareWithRoutableParameter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testSignedMiddlewareWithRelativePath SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testSignedMiddlewareIgnoringParameter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testSignedMiddlewareIgnoringParameterViaArgumentsWithRelative SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testSignedMiddlewareCanGloballyIgnoreParameters SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testSignedMiddlewareIgnoringParameterViaArgumentsWithoutRelative SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testSignedMiddlewareIgnoringParameterViaClassAndArguments SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testItCanGenerateMiddlewareDefinitionViaStaticMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: UrlSigningTest::testUrlsSignedByPreviousAppKeysAreValidWhenAddedAsPreviousKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CookieSessionHandlerTest::testCookieSessionDriverCookiesCanExpireOnClose SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CookieSessionHandlerTest::testCookieSessionInheritsRequestSecureState SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSessionHandlerTest::test_basic_read_write_functionality SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSessionHandlerTest::test_garbage_collector SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSessionHandlerTest::test_destroy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseSessionHandlerTest::test_it_can_work_without_container SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SessionPersistenceTest::testSessionIsPersistedEvenIfExceptionIsThrownFromRoute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AuthFacadeTest::testItFailsIfTheUiPackageIsMissing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testFakeAssertReported SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testFakeAssertReportedCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testFakeAssertReportedCountMayFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testFakeAssertReportedWithFakedExceptions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testFakeAssertReportedAsStringMayFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testFakeAssertReportedAsClosureMayFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testFakeAssertReportedWithFakedExceptionsMayFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testFakeAssertNotReported SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testFakeAssertNotReportedWithFakedExceptions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testFakeAssertNotReportedMayFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testFakeAssertNotReportedAsClosureMayFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testResolvesExceptionHandler SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testFakeAssertNothingReported SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testFakeAssertNothingReportedWithFakedExceptions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testFakeAssertNothingReportedMayFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testFakeMethodReturnsExceptionHandlerFake SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testReportedExceptionsAreNotThrownByDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testReportedExceptionsAreNotThrownByDefaultWithExceptionHandling SAFETY: FAIL QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: ExceptionsFacadeTest::testReportedExceptionsAreNotThrownByDefaultWithoutExceptionHandling SAFETY: FAIL QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: ExceptionsFacadeTest::testThrowOnReport SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testThrowOnReportDoesNotThrowExceptionsThatShouldNotBeReported SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testThrowOnReportWithExceptionHandling SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testThrowOnReportWithoutExceptionHandling SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testThrowOnReportRegardlessOfTheCallingOrderOfWithoutExceptionHandling SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testThrowOnReportRegardlessOfTheCallingOrderOfWithExceptionHandling SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testThrowOnReportWithFakedExceptions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testThrowOnReportWithFakedExceptionsFromFacade SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testThrowOnReporEvenWhenAppReportablesReturnFalse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testAppReportablesAreNotCalledIfExceptionIsNotFaked SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testThrowOnReportLeaveAppReportablesUntouched SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testThrowReportedExceptions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testThrowReportedExceptionsWithFakedExceptions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testThrowReportedExceptionsWhenThereIsNone SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testFakingExceptionsThatShouldNotBeReportedWithExceptionHandling SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testFakingExceptionsThatShouldNotBeReportedWithRescueAndWithoutExceptionHandling SAFETY: FAIL QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: ExceptionsFacadeTest::testRescue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testRescueWithoutReport SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testFlowBetweenFakeAndTestExceptionHandling SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testFlowBetweenTestExceptionHandlingAndFake SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ExceptionsFacadeTest::testWithDeprecationHandling SAFETY: FAIL QUALITY: FAIL KB_ELIGIBLE: NO QUALITY_SCORE: 8.0 REASONS: - ambiguous_success_no_identity_anchor TEST: ExceptionsFacadeTest::testWithoutDeprecationHandler SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FacadesTest::testFacadeResolvedCanResolveCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FacadesTest::testFacadeResolvedCanResolveCallbackAfterAccessRootHasBeenResolved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FacadesTest::testDefaultAliases SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ManagerTest::testDefaultDriverCannotBeNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MultipleInstanceManagerTest::test_configurable_instances_can_be_resolved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MultipleInstanceManagerTest::test_unresolvable_instances_throw_errors SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceHelperTest::testItCanCacheStaticMethodWithoutParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceHelperTest::testItCanCacheStaticMethodWithParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PluralizerPortugueseTest::testBasicSingular SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PluralizerPortugueseTest::testIrregulars SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PluralizerPortugueseTest::testBasicPlural SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PluralizerPortugueseTest::testCaseSensitiveSingularUsage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PluralizerPortugueseTest::testCaseSensitiveSingularPlural SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PluralizerPortugueseTest::testPluralAppliedForStringEndingWithNumericCharacter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PluralizerPortugueseTest::testPluralSupportsArrays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PluralizerPortugueseTest::testPluralSupportsCollections SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PluralizerPortugueseTest::testPluralStudlySupportsArrays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PluralizerPortugueseTest::testPluralStudlySupportsCollections SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_passes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_fails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_passes_with_output SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_passes_with_repeating_output SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_fails_from_unexpected_output SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_fails_from_unexpected_output_substring SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_fails_from_missing_output SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_fails_from_exit_code_mismatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_fails_from_unordered_output SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_passes_if_the_output_contains SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_passes_if_outputs_something SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_passes_if_outputs_is_something_and_is_the_expected_output SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_fail_if_doesnt_output_something SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_fail_if_doesnt_output_something_and_is_not_the_expected_output SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_passes_if_does_not_output_anything SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_passes_if_does_not_output_anything_and_is_not_the_expected_output SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_passes_if_expects_output_and_there_is_interactions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_fails_if_doesnt_expect_output_but__there_is_interactions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_fails_if_doesnt_expect_output_but_outputs_something SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_fails_if_doesnt_expect_output_and_does_expect_output SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_console_command_that_fails_if_the_output_does_not_contain SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArtisanCommandTest::test_pending_command_can_be_tapped SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TestCaseTest::test_without_vite_clear_facade_resolved_instance SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestWithoutDatabaseParallelTest::testRunningParallelTestWithoutDatabaseShouldNotCrashOnDefaultConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TranslatorTest::testItCanGetFromLocaleForJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslatorTest::testItCanCheckLanguageExistsHasFromLocaleForJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslatorTest::testItCanCheckKeyExistsWithoutTriggeringHandleMissingKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslatorTest::testItCanHandleMissingKeysUsingCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslatorTest::testItCanHandleMissingKeysNoReturn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslatorTest::testItReturnsCorrectLocaleForMissingKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslatorTest::testItCanHandleChoice SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslatorTest::testItCanHandleChoiceWithChoiceSeparatorInReplaceString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RequestValidationTest::testValidateMacro SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RequestValidationTest::testValidateMacroWhenItFails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RequestValidationTest::testValidateWithBagMacro SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RequestValidationTest::testValidateWithBagMacroWhenItFails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DateFormatValidationTest::test_it_can_validate_regardless_of_timezone SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EmailValidationTest::test_it_can_validate_attribute_as_array SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: EmailValidationTest::test_it_can_validate_attribute_as_array_when_validation_should_fails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileValidationTest::test_it_can_validate_attribute_as_array SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FileValidationTest::test_it_can_validate_attribute_as_array_when_validation_should_fails SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FileValidationTest::test_file_custom_validation_messages SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PasswordValidationTest::test_it_can_validate_attribute_as_array SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PasswordValidationTest::test_it_can_validate_attribute_as_array_when_validation_should_fails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatorTest::testExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidatorTest::testUnique SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidatorTest::testUniqueWithCustomModelKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidatorTest::testImplicitAttributeFormatting SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BladeAnonymousComponentTest::test_anonymous_components_with_custom_paths_can_be_rendered SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeAnonymousComponentTest::test_anonymous_components_with_custom_paths_cant_be_rendered_as_normal_views SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeAnonymousComponentTest::test_anonymous_components_with_custom_paths_cant_be_rendered_as_normal_views_even_with_no_prefix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeTest::test_rendering_blade_string SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeTest::test_rendering_blade_long_maxpathlen_string SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeTest::test_rendering_blade_long_maxpathlen_string_with_exact_length SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeTest::test_rendering_blade_component_instance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeTest::test_basic_blade_rendering SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeTest::test_rendering_a_component SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeTest::test_rendering_a_dynamic_component SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeTest::test_rendering_the_same_dynamic_component_with_different_attributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeTest::test_inline_link_type_attributes_dont_add_extra_spacing_at_end SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeTest::test_appendable_attributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeTest::tested_nested_anonymous_attribute_proxying_works_correctly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeTest::test_consume_defaults SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeTest::test_consume_with_props SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeTest::test_name_attribute_can_be_used_if_using_short_slot_names SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeTest::test_name_attribute_cant_be_used_if_not_using_short_slot_names SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeTest::test_bound_name_attribute_can_be_used_if_using_short_slot_names SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeTest::test_bound_name_attribute_can_be_used_if_using_short_slot_names_and_not_first_attribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeTest::test_no_name_passed_to_slot_uses_default_name SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeTest::testViewCacheCommandHandlesConfiguredBladeExtensions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RenderableViewExceptionTest::testRenderMethodOfExceptionThrownInViewGetsHandled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArrayTypeTest::test_it_may_set_min_items SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArrayTypeTest::test_it_may_set_max_items SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArrayTypeTest::test_it_may_set_items_type SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArrayTypeTest::test_it_may_set_default_value SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArrayTypeTest::test_it_may_set_enum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BooleanTypeTest::test_serializes_as_boolean_with_metadata SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BooleanTypeTest::test_may_set_default_true_via_default SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BooleanTypeTest::test_may_set_default_false_via_default SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BooleanTypeTest::test_may_set_enum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: IntegerTypeTest::test_it_may_set_min_value SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: IntegerTypeTest::test_it_may_set_max_value SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: IntegerTypeTest::test_it_may_set_default_value SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: IntegerTypeTest::test_it_may_set_enum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NumberTypeTest::test_it_may_set_min_value_as_float SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NumberTypeTest::test_it_may_set_min_value_as_int SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NumberTypeTest::test_it_may_set_max_value_as_float SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NumberTypeTest::test_it_may_set_max_value_as_int SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NumberTypeTest::test_it_may_set_default_value SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NumberTypeTest::test_it_may_set_enum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ObjectTypeTest::test_it_may_not_have_properties SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ObjectTypeTest::test_it_may_be_initialized_with_a_closure_but_without_properties SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ObjectTypeTest::test_it_may_have_properties SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ObjectTypeTest::test_it_may_be_initialized_with_a_closure_but_may_have_properties SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ObjectTypeTest::test_it_may_disable_additional_properties SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ObjectTypeTest::test_it_may_set_enum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SerializerTest::test_it_does_not_know_how_to_serialize_unknown_types SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: StringTypeTest::test_it_sets_min_length SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: StringTypeTest::test_it_sets_max_length SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: StringTypeTest::test_it_sets_pattern SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: StringTypeTest::test_it_sets_format SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: StringTypeTest::test_it_sets_enum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TypeTest::test_as_a_array_representation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TypeTest::test_does_have_a_string_representation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TypeTest::test_does_have_a_stringable_representation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TypeTest::test_produces_valid_json_schemas SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TypeTest::test_produces_invalid_json_schemas SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TypeTest::test_types_in_object_schema SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TypeTest::test_throws_with_invalid_enum_string SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: must::test_throws_with_not_an_enum_class SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: must::test_throws_with_unit_enum_class SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_set_values SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_add_values_when_not_already_present SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_listen_to_the_hydrating_event SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_listen_to_the_dehydrated_event SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_modify_context_while_dehydrating_without_impacting_global_instance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_dehydrate_returns_null_when_empty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_hydrating_null_triggers_hydrating_event SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_serialize_values SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_push_to_list SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_throws_when_pushing_to_non_array SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_throws_when_pushing_to_non_list_array SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_pop_from_list SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_throws_when_popping_from_empty_list SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_throws_when_popping_from_non_list_array SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_pop_from_hidden_list SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_throws_when_popping_from_empty_hidden_list SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_throws_when_popping_from_hidden_non_list_array SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_check_if_context_has_been_set SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_check_if_context_is_missing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_check_if_value_is_in_context_stack SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_check_if_value_is_in_context_stack_with_closures SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_check_if_value_is_in_hidden_context_stack SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_check_if_value_is_in_hidden_context_stack_with_closures SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_cannot_check_if_hidden_value_is_in_non_hidden_context_stack SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_get_all_values SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_silently_ignores_unset_values SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_is_simple_key_value_system SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_retrieve_subset_of_context SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_exclude_subset_of_context SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_exclude_subset_of_hidden_context SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_adds_context_to_logging SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_doesnt_override_log_instance_context SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_doesnt_allow_context_to_be_used_as_parameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_does_not_add_hidden_context_to_logging SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_add_hidden SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_can_pull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_adds_context_to_logged_exceptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_scope_sets_keys_and_restores SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_uses_closure_for_context_processor SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_can_rebind_to_separate_class SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_increments_a_counter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_custom_increments_a_counter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_decrements_a_counter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_custom_decrements_a_counter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_remembers_a_value SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ContextTest::test_it_remembers_a_hidden_value SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LogLoggerTest::testMethodsPassErrorAdditionsToMonolog SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LogLoggerTest::testContextIsAddedToAllSubsequentLogs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LogLoggerTest::testContextIsFlushed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LogLoggerTest::testContextKeysCanBeRemovedForSubsequentLogs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LogLoggerTest::testLoggerFiresEventsDispatcher SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LogLoggerTest::testListenShortcutFailsWithNoDispatcher SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LogLoggerTest::testListenShortcut SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LogLoggerTest::testComplexContextManipulation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LogManagerTest::testLogManagerCachesLoggerInstances SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testLogManagerGetDefaultDriver SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testStackChannel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testParsingStackChannels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testLogManagerCreatesConfiguredMonologHandler SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testLogManagerCreatesMonologHandlerWithConfiguredFormatter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testLogManagerCreatesMonologHandlerWithProperFormatter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testLogManagerCreatesMonologHandlerWithProcessors SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testItUtilisesTheNullDriverDuringTestsWhenNullDriverUsed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testLogManagerCreateSingleDriverWithConfiguredFormatter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testLogManagerCreateDailyDriverWithConfiguredFormatter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testLogManagerCreateSyslogDriverWithConfiguredFormatter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testLogManagerPurgeResolvedChannels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testLogManagerCanBuildOnDemandChannel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testLogManagerCanUseOnDemandChannelInOnDemandStack SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testWrappingHandlerInFingersCrossedWhenActionLevelIsUsed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testFingersCrossedHandlerStopsRecordBufferingAfterFirstFlushByDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testFingersCrossedHandlerCanBeConfiguredToResumeBufferingAfterFlushing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testItSharesContextWithAlreadyResolvedChannels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testItSharesContextWithFreshlyResolvedChannels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testContextCanBePubliclyAccessedByOtherLoggingSystems SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testItSharesContextWithStacksWhenTheyAreResolved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testItMergesSharedContextRatherThanReplacing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testFlushSharedContext SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testLogManagerCreateCustomFormatterWithTap SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: LogManagerTest::testDriverUsersPsrLoggerManagerReturnsLogger SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AttachableTest::testItCanHaveMacroConstructors SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AttachableTest::testItCanUtiliseExistingApisOnNonMailBasedResourcesWithPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AttachableTest::testItCanUtiliseExistingApisOnNonMailBasedResourcesWithArgs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AttachableTest::testFromUrlMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testFromUploadedFileMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailableAlternativeSyntaxTest::testBasicMailableInspection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailableAlternativeSyntaxTest::testEnvelopesCanReceiveAdditionalRecipients SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailableQueuedTest::testQueuedMailableSent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailableQueuedTest::testQueuedMailableWithAttachmentSent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailableQueuedTest::testQueuedMailableWithAttachmentFromDiskSent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailableQueuedTest::testQueuedMailableForwardsMessageGroupFromMethodToQueueJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailableQueuedTest::testQueuedMailableForwardsMessageGroupFromPropertyOverridingMethodToQueueJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailableQueuedTest::testQueuedMailableForwardsDeduplicatorToQueueJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailableQueuedTest::testQueuedMailableForwardsDeduplicationIdMethodToQueueJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailFailoverTransportTest::testGetFailoverTransportWithConfiguredTransports SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailFailoverTransportTest::testGetFailoverTransportWithLaravel6StyleMailConfiguration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailLogTransportTest::testGetLogTransportWithConfiguredChannel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailLogTransportTest::testItDecodesTheMessageBeforeLogging SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailLogTransportTest::testItOnlyDecodesQuotedPrintablePartsOfTheMessageBeforeLogging SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailLogTransportTest::testGetLogTransportWithPsrLogger SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertSeeInTextPassesWhenPresent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertSeeInTextFailsWhenAbsent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertDontSeeInTextPassesWhenAbsent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertDontSeeInTextFailsWhenPresent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertSeeInHtmlPassesWhenPresent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertSeeInHtmlFailsWhenAbsent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertDontSeeInHtmlPassesWhenAbsent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertDontSeeInHtmlEscapedFailsWhenPresent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertDontSeeInHtmlUnescapedFailsWhenPresent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertSeeInOrderTextPassesWhenPresentInOrder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertSeeInOrderTextFailsWhenAbsentInOrder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertInOrderHtmlPassesWhenPresentInOrder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertInOrderHtmlFailsWhenAbsentInOrder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertSeeInTextWithApostrophePassesWhenPresent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertSeeInTextWithApostropheFailsWhenAbsent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertDontSeeInTextWithApostrophePassesWhenAbsent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertDontSeeInTextWithApostropheFailsWhenPresent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertSeeInHtmlWithApostropheFailsWhenAbsent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertDontSeeInHtmlWithApostrophePassesWhenAbsent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertDontSeeInHtmlWithApostropheFailsWhenPresent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertSeeInOrderInHtmlWithApostrophePassesWhenPresentInOrder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableAssertionsTest::testMailableAssertSeeInOrderInHtmlWithApostropheFailsWhenAbsentInOrder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableDataTest::testMailableDataIsNotLost SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testMailableSetsRecipientsCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testMailableSetsCcRecipientsCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testMailableSetsBccRecipientsCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testMailableSetsReplyToCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testMailableSetsFromCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testMailableSetsSubjectCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testItIgnoresDuplicatedRawAttachments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testItIgnoresDuplicateStorageAttachments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testMailableBuildsViewData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testMailerMayBeSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testMailablePriorityGetsSent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testMailableMetadataGetsSent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testMailableMergeMetadata SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testMailableTagGetsSent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testItCanAttachMultipleFiles SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testItAttachesFilesViaAttachableContractFromPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testItAttachesFilesViaAttachableContractFromData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testItCanJitNameAttachments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testHasAttachmentWithJitNamedAttachment SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailableTest::testHasAttachmentWithEnvelopeAttachments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItCanCheckForPathBasedAttachments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItCanCheckForAttachmentBasedAttachments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItCanCheckForAttachableBasedAttachments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItCanCheckForDataBasedAttachments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItCanCheckForStorageBasedAttachments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAssertHasAttachment SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAssertHasAttachedData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAssertHasAttachmentFromStorage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAssertHasSubject SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testMailableHeadersGetSent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testMailableAttributesInBuild SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testMailablesCanBeTapped SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMailerTest::testMailerSendSendsMessageWithProperViewContent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailMailerTest::testMailerSendSendsMessageWithCcAndBccRecipients SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailMailerTest::testMailerSendSendsMessageWithProperViewContentUsingHtmlStrings SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailMailerTest::testMailerSendSendsMessageWithProperViewContentUsingStringCallbacks SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailMailerTest::testMailerSendSendsMessageWithProperViewContentUsingHtmlMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailMailerTest::testMailerSendSendsMessageWithProperPlainViewContent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailMailerTest::testMailerSendSendsMessageWithProperPlainViewContentWhenExplicit SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailMailerTest::testToAllowsEmailAndName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailMailerTest::testGlobalFromIsRespectedOnAllMessages SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailMailerTest::testGlobalReplyToIsRespectedOnAllMessages SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailMailerTest::testGlobalToIsRespectedOnAllMessages SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailMailerTest::testGlobalReturnPathIsRespectedOnAllMessages SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailMailerTest::testEventsAreDispatched SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailMailerTest::testMacroable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailManagerTest::testEmptyTransportConfig SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailManagerTest::testMailUrlConfig SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailManagerTest::testMailUrlConfigWithAutoTls SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailManagerTest::testMailUrlConfigWithAutoTlsDisabled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailManagerTest::testBuild SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMarkdownTest::testRenderFunctionReturnsHtml SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMarkdownTest::testRenderFunctionReturnsHtmlWithCustomTheme SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMarkdownTest::testRenderFunctionReturnsHtmlWithCustomThemeWithMailPrefix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMarkdownTest::testRenderTextReturnsText SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMarkdownTest::testParseReturnsParsedMarkdown SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMessageTest::testFromMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMessageTest::testSenderMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMessageTest::testReturnPathMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMessageTest::testToMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMessageTest::testToMethodWithOverride SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMessageTest::testCcMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMessageTest::testBccMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMessageTest::testReplyToMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMessageTest::testSubjectMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMessageTest::testPriorityMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMessageTest::testBasicAttachment SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMessageTest::testDataAttachment SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMessageTest::testItAttachesFilesViaAttachableContractFromPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMessageTest::testItAttachesFilesViaAttachableContractFromData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMessageTest::testEmbedPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMessageTest::testDataEmbed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMessageTest::testItEmbedsFilesViaAttachableContractFromPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailMessageTest::testItGeneratesARandomNameWhenAttachableHasNone SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailRoundRobinTransportTest::testGetRoundRobinTransportWithConfiguredTransports SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailRoundRobinTransportTest::testGetRoundRobinTransportWithLaravel6StyleMailConfiguration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: MailSesTransportTest::testGetTransport SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailSesTransportTest::testSend SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailSesTransportTest::testSendError SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailSesTransportTest::testSesLocalConfiguration SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailSesV2TransportTest::testGetTransport SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailSesV2TransportTest::testSend SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailSesV2TransportTest::testSendError SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: MailSesV2TransportTest::testSesV2LocalConfiguration SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: NotificationActionTest::testActionIsCreatedProperly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationBroadcastChannelTest::testDatabaseChannelCreatesDatabaseRecordWithProperData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationBroadcastChannelTest::testNotificationIsBroadcastedOnCustomChannels SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationBroadcastChannelTest::testNotificationIsBroadcastedWithCustomEventName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationBroadcastChannelTest::testNotificationIsBroadcastedWithCustomDataType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationBroadcastChannelTest::testNotificationIsBroadcastedNow SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationBroadcastChannelTest::testNotificationIsBroadcastedWithCustomAdditionalPayload SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationChannelManagerTest::testNotificationCanBeDispatchedToDriver SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationChannelManagerTest::testNotificationNotSentOnHalt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationChannelManagerTest::testNotificationNotSentWhenCancelled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationChannelManagerTest::testNotificationSentWhenNotCancelled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationChannelManagerTest::testNotificationNotSentWhenFailed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationChannelManagerTest::testNotificationFailedDispatchedOnlyOnceWhenFailed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationChannelManagerTest::testNotificationCanBeQueued SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationChannelManagerTest::testSendQueuedNotificationsCanBeOverrideViaContainer SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationChannelManagerTest::testQueuedNotificationForwardsMessageGroupFromMethodToQueueJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationChannelManagerTest::testQueuedNotificationForwardsMessageGroupFromPropertyOverridingMethodToQueueJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationChannelManagerTest::testQueuedNotificationForwardsMessageGroupSetToQueueJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationChannelManagerTest::testQueuedNotificationForwardsMessageGroupSetFromClassToQueueJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationChannelManagerTest::testQueuedNotificationForwardsDeduplicatorToQueueJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationChannelManagerTest::testQueuedNotificationForwardsDeduplicatorSetToQueueJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationChannelManagerTest::testQueuedNotificationForwardsDeduplicatorSetFromClassToQueueJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationChannelManagerTest::testQueuedNotificationForwardsDeduplicationIdMethodToQueueJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationDatabaseChannelTest::testDatabaseChannelCreatesDatabaseRecordWithProperData SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: NotificationDatabaseChannelTest::testCorrectPayloadIsSentToDatabase SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: NotificationDatabaseChannelTest::testCustomizeTypeIsSentToDatabase SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: NotificationMailMessageTest::testTemplate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMailMessageTest::testHtmlAndPlainView SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMailMessageTest::testHtmlView SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMailMessageTest::testPlainView SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMailMessageTest::testCcIsSetCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMailMessageTest::testBccIsSetCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMailMessageTest::testReplyToIsSetCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMailMessageTest::testMetadataIsSetCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMailMessageTest::testTagIsSetCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMailMessageTest::testCallbackIsSetCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMailMessageTest::testWhenCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMailMessageTest::testWhenCallbackWithReturn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMailMessageTest::testWhenCallbackWithDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMailMessageTest::testUnlessCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMailMessageTest::testUnlessCallbackWithReturn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMailMessageTest::testUnlessCallbackWithDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMailMessageTest::testItAttachesFilesViaAttachableContractFromPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMailMessageTest::testItAttachesFilesViaAttachableContractFromData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMailMessageTest::testItAttachesManyFiles SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMessageTest::testLevelCanBeRetrieved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationMessageTest::testMessageFormatsMultiLineText SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationRoutesNotificationsTest::testNotificationCanBeDispatched SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationRoutesNotificationsTest::testNotificationCanBeSentNow SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationRoutesNotificationsTest::testNotificationOptionRouting SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationRoutesNotificationsTest::testOnDemandNotificationsCannotUseDatabaseChannel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationSenderTest::testItCanSendQueuedNotificationsWithAStringVia SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: NotificationSenderTest::testItCanSendQueuedNotificationsWithAnArrayVia SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: NotificationSenderTest::testItCanSendNotificationsWithAnEmptyStringVia SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: NotificationSenderTest::testItCannotSendNotificationsViaDatabaseForAnonymousNotifiables SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: NotificationSenderTest::testItCanSendQueuedNotificationsThroughMiddleware SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: NotificationSenderTest::testItCanSendQueuedMultiChannelNotificationsThroughDifferentMiddleware SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: NotificationSenderTest::testItCanSendQueuedWithViaConnectionsNotifications SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: NotificationSenderTest::testItCanSendQueuedWithViaQueuesNotifications SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: NotificationSenderTest::testNotificationFailedSentWithoutHttpTransportException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: NotificationSendQueuedNotificationTest::testNotificationsCanBeSent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationSendQueuedNotificationTest::testSerializationOfNotifiableModel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationSendQueuedNotificationTest::testSerializationOfNormalNotifiable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: NotificationSendQueuedNotificationTest::testNotificationCanSetMaxExceptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CursorPaginatorLoadMorphCountTest::testCollectionLoadMorphCountCanChainOnThePaginator SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CursorPaginatorLoadMorphTest::testCollectionLoadMorphCanChainOnThePaginator SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CursorPaginatorTest::testReturnsRelevantContextInformation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CursorPaginatorTest::testPaginatorRemovesTrailingSlashes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CursorPaginatorTest::testPaginatorGeneratesUrlsWithoutTrailingSlash SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CursorPaginatorTest::testItRetrievesThePaginatorOptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CursorPaginatorTest::testPaginatorReturnsPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CursorPaginatorTest::testCanTransformPaginatorItems SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CursorPaginatorTest::testCursorPaginatorOnFirstAndLastPage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CursorPaginatorTest::testReturnEmptyCursorWhenItemsAreEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CursorPaginatorTest::testCursorPaginatorToJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CursorPaginatorTest::testCursorPaginatorToPrettyJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CursorResourceTest::testItCanTransformToExplicitResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CursorResourceTest::testItThrowsExceptionWhenResourceCannotBeFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: for::testItCanGuessResourceWhenNotProvided SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CursorTest::testCanEncodeAndDecodeSuccessfully SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CursorTest::testCanGetParams SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CursorTest::testCanGetParam SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LengthAwarePaginatorTest::testLengthAwarePaginatorGetAndSetPageName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LengthAwarePaginatorTest::testLengthAwarePaginatorCanGiveMeRelevantPageInformation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LengthAwarePaginatorTest::testLengthAwarePaginatorSetCorrectInformationWithNoItems SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LengthAwarePaginatorTest::testLengthAwarePaginatorOnFirstAndLastPage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LengthAwarePaginatorTest::testLengthAwarePaginatorCanGenerateUrls SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LengthAwarePaginatorTest::testLengthAwarePaginatorCanGenerateUrlsWithQuery SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LengthAwarePaginatorTest::testLengthAwarePaginatorCanGenerateUrlsWithoutTrailingSlashes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LengthAwarePaginatorTest::testLengthAwarePaginatorCorrectlyGenerateUrlsWithQueryAndSpaces SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LengthAwarePaginatorTest::testItRetrievesThePaginatorOptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PaginatorLoadMorphCountTest::testCollectionLoadMorphCountCanChainOnThePaginator SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PaginatorLoadMorphTest::testCollectionLoadMorphCanChainOnThePaginator SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PaginatorResourceTest::testItCanTransformToExplicitResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PaginatorResourceTest::testItThrowsExceptionWhenResourceCannotBeFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: for::testItCanGuessResourceWhenNotProvided SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PaginatorTest::testSimplePaginatorReturnsRelevantContextInformation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PaginatorTest::testPaginatorRemovesTrailingSlashes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PaginatorTest::testPaginatorGeneratesUrlsWithoutTrailingSlash SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PaginatorTest::testItRetrievesThePaginatorOptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PaginatorTest::testPaginatorReturnsPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PaginatorTest::testCanTransformPaginatorItems SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PaginatorTest::testPaginatorToJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PaginatorTest::testPaginatorToPrettyJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: UrlWindowTest::testPresenterCanDetermineIfThereAreAnyPagesToShow SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: UrlWindowTest::testPresenterCanGetAUrlRangeForASmallNumberOfUrls SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: UrlWindowTest::testPresenterCanGetAUrlRangeForAWindowOfLinks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: UrlWindowTest::testCustomUrlRangeForAWindowOfLinks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PipelineTest::testPipelineBasicUsage SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTest::testPipelineUsageWithObjects SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTest::testPipelineUsageWithInvokableObjects SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTest::testPipelineUsageWithCallable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTest::testPipelineUsageWithPipe SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTest::testPipelineThroughMethodOverwritesPreviouslySetAndAppendedPipes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTest::testPipelineUsageWithInvokableClass SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTest::testThenMethodIsNotCalledIfThePipeReturns SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTest::testThenMethodInputValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTest::testPipelineUsageWithParameters SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTest::testPipelineViaChangesTheMethodBeingCalledOnThePipes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTest::testPipelineThrowsExceptionOnResolveWithoutContainer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTest::testPipelineThrowsExceptionWhenUsingTransactionsWithoutContainer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTest::testPipelineThenReturnMethodRunsPipelineThenReturnsPassable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTest::testPipelineConditionable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTest::testPipelineFinally SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTest::testPipelineFinallyMethodWhenChainIsStopped SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTest::testPipelineFinallyOrder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTest::testPipelineFinallyWhenExceptionOccurs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTransactionTest::testPipelineTransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTransactionTest::testConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PipelineTransactionTest::testExceptionThrownRollsBackTransaction SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testSuccessfulProcess SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testProcessPool SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testProcessPoolFailed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testInvokedProcessPoolCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testProcessPoolCanReceiveOutputForEachProcessViaStartMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testProcessPoolResultsCanBeEvaluatedByName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testOutputCanBeRetrievedViaStartCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testOutputCanBeRetrievedViaWaitCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testBasicProcessFake SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testBasicProcessFakeWithMultiLineCommand SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testProcessFakeWithMultiLineCommand SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testProcessFakeExitCodes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testProcessFakeExitCodeShorthand SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testBasicProcessFakeWithCustomOutput SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testProcessFakeWithErrorOutput SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testCustomizedFakesPerCommand SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testProcessFakeSequences SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testProcessFakeSequencesCanReturnEmptyResultsWhenSequenceIsEmpty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testProcessFakeSequencesCanThrowWhenSequenceIsEmpty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testStrayProcessesCanBePreventedWithStringCommand SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testStrayProcessesCanBePreventedWithArrayCommand SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testStrayProcessesActuallyRunByDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testProcessFakeThrowShorthand SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testFakeProcessesCanThrow SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testFakeProcessesThrowIfTrue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testFakeProcessesDontThrowIfFalse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testRealProcessesCanHaveErrorOutput SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testFakeProcessesCanThrowWithoutOutput SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testRealProcessesCanThrowWithoutOutput SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testFakeProcessesCanThrowWithErrorOutput SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testRealProcessesCanThrowWithErrorOutput SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testFakeProcessesCanThrowWithOutput SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testRealProcessesCanThrowWithOutput SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testRealProcessesCanTimeout SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testRealProcessesCanThrowIfTrue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testRealProcessesDoesntThrowIfFalse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testRealProcessesCanUseStandardInput SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testProcessPipe SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testProcessPipeFailed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testProcessSimplePipe SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testProcessSimplePipeFailed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testFakeInvokedProcessOutputWithLatestOutput SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testFakeInvokedProcessWaitUntil SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testFakeInvokedProcessWaitUntilWithNoCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testFakeInvokedProcessWaitUntilWithErrorOutput SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testFakeInvokedProcessWaitUntilCalledTwice SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testFakeInvokedProcessWaitUntilThatNeverMatches SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testFakeInvokedProcessWaitUntilFollowedByWait SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testFakeInvokedProcessWaitCalledTwice SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testFakeInvokedProcessWaitFollowedByWaitUntil SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testBasicFakeAssertions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testAssertingThatNothingRan SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ProcessTest::testProcessWithMultipleEnvironmentVariablesAndSequences SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: BeforeCommitContractTest::testJobWithoutContractRespectsBeforeCommit SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BeforeCommitContractTest::testJobWithoutContractRespectsAfterCommit SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BeforeCommitContractTest::testJobWithContractDefaultsToAfterCommit SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testJobWithContractAndAfterCommitFalseRespectsBeforeCommit SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testJobWithContractAndExplicitAfterCommitTrueStillSchedulesAfterCommit SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DatabaseFailedJobProviderTest::testCanGetAllFailedJobIds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseFailedJobProviderTest::testCanGetAllFailedJobs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseFailedJobProviderTest::testCanRetrieveFailedJobsById SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseFailedJobProviderTest::testCanRemoveFailedJobsById SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseFailedJobProviderTest::testCanPruneFailedJobs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseFailedJobProviderTest::testCanPruneFailedJobsWithRelativeHoursAndMinutes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseFailedJobProviderTest::testCanFlushFailedJobs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseFailedJobProviderTest::testCanProperlyLogFailedJob SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseFailedJobProviderTest::testJobsCanBeCounted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseFailedJobProviderTest::testJobsCanBeCountedByConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseFailedJobProviderTest::testJobsCanBeCountedByQueue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseFailedJobProviderTest::testJobsCanBeCountedByQueueAndConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseUuidFailedJobProviderTest::testGettingIdsOfAllFailedJobs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseUuidFailedJobProviderTest::testGettingAllFailedJobs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseUuidFailedJobProviderTest::testFindingFailedJobsById SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseUuidFailedJobProviderTest::testRemovingJobsById SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseUuidFailedJobProviderTest::testRemovingAllFailedJobs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseUuidFailedJobProviderTest::testPruningFailedJobs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseUuidFailedJobProviderTest::testPruningFailedJobsWithRelativeHoursAndMinutes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseUuidFailedJobProviderTest::testJobsCanBeCounted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseUuidFailedJobProviderTest::testJobsCanBeCountedByConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseUuidFailedJobProviderTest::testJobsCanBeCountedByQueue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DatabaseUuidFailedJobProviderTest::testJobsCanBeCountedByQueueAndConnection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: DynamoDbFailedJobProviderTest::testCanProperlyLogFailedJob SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DynamoDbFailedJobProviderTest::testCanRetrieveAllFailedJobs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DynamoDbFailedJobProviderTest::testASingleJobCanBeFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DynamoDbFailedJobProviderTest::testNullIsReturnedIfJobNotFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DynamoDbFailedJobProviderTest::testJobsCanBeDeleted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FailOnExceptionMiddlewareTest::test_middleware SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FailOnExceptionMiddlewareTest::test_can_test_against_job_properties SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FailoverQueueTest::test_push_fails_over_on_exception SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FileFailedJobProviderTest::testCanLogFailedJobs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileFailedJobProviderTest::testCanRetrieveAllFailedJobs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileFailedJobProviderTest::testCanFindFailedJobs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileFailedJobProviderTest::testNullIsReturnedIfJobNotFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileFailedJobProviderTest::testCanForgetFailedJobs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileFailedJobProviderTest::testCanFlushFailedJobs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileFailedJobProviderTest::testCanPruneFailedJobs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileFailedJobProviderTest::testCanPruneFailedJobsWithRelativeHours SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileFailedJobProviderTest::testEmptyFailedJobsByDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileFailedJobProviderTest::testJobsCanBeCounted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileFailedJobProviderTest::testJobsCanBeCountedByConnection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileFailedJobProviderTest::testJobsCanBeCountedByQueue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: FileFailedJobProviderTest::testJobsCanBeCountedByQueueAndConnection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: InteractsWithQueueTest::testCreatesAnExceptionFromString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PruneBatchesCommandTest::testAllowPruningAllUnfinishedBatches SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: PruneBatchesCommandTest::testAllowPruningAllCancelledBatches SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueBeanstalkdJobTest::testFireProperlyCallsTheJobHandler SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueBeanstalkdJobTest::testFailProperlyCallsTheJobHandler SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueBeanstalkdJobTest::testDeleteRemovesTheJobFromBeanstalkd SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueBeanstalkdJobTest::testReleaseProperlyReleasesJobOntoBeanstalkd SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueBeanstalkdJobTest::testBuryProperlyBuryTheJobFromBeanstalkd SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueBeanstalkdQueueTest::testPushProperlyPushesJobOntoBeanstalkd SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueBeanstalkdQueueTest::testDelayedPushProperlyPushesJobOntoBeanstalkd SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueBeanstalkdQueueTest::testPopProperlyPopsJobOffOfBeanstalkd SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueBeanstalkdQueueTest::testBlockingPopProperlyPopsJobOffOfBeanstalkd SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueBeanstalkdQueueTest::testDeleteProperlyRemoveJobsOffBeanstalkd SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueDatabaseQueueIntegrationTest::testAvailableAndUnReservedJobsArePopped SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueDatabaseQueueIntegrationTest::testPoppedJobsIncrementAttempts SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueDatabaseQueueIntegrationTest::testThatQueueCanBeCleared SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueDatabaseQueueIntegrationTest::testUnavailableJobsAreNotPopped SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueDatabaseQueueIntegrationTest::testThatReservedAndExpiredJobsArePopped SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueDatabaseQueueIntegrationTest::testThatReservedJobsAreNotPopped SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueDatabaseQueueIntegrationTest::testJobPayloadIsAvailableOnEvents SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueDatabaseQueueUnitTest::testPushProperlyPushesJobOntoDatabase SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueDatabaseQueueUnitTest::testDelayedPushProperlyPushesJobOntoDatabase SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueDatabaseQueueUnitTest::testFailureToCreatePayloadFromObject SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueDatabaseQueueUnitTest::testFailureToCreatePayloadFromArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueDatabaseQueueUnitTest::testBulkBatchPushesOntoDatabase SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueDatabaseQueueUnitTest::testBuildDatabaseRecordWithPayloadAtTheEnd SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueDelayTest::test_queue_delay SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueDelayTest::test_queue_without_delay SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueDelayTest::test_pending_dispatch_without_delay SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueExceptionTest::test_it_can_create_timeout_exception_for_job SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueExceptionTest::test_it_can_create_max_attempts_exception_for_job SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueListenerTest::testRunProcessCallsProcess SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueListenerTest::testListenerStopsWhenMemoryIsExceeded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueListenerTest::testMakeProcessCorrectlyFormatsCommandLine SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueListenerTest::testMakeProcessCorrectlyFormatsCommandLineWithAnEnvironmentSpecified SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueListenerTest::testMakeProcessCorrectlyFormatsCommandLineWhenTheConnectionIsNotSpecified SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueManagerTest::testDefaultConnectionCanBeResolved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueManagerTest::testOtherConnectionCanBeResolved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueManagerTest::testNullConnectionCanBeResolved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueuePauseResumeTest::testPauseQueueWithConnection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueuePauseResumeTest::testPauseQueueWithTTL SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueuePauseResumeTest::testPauseQueueIndefinitely SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueuePauseResumeTest::testResumeQueue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueuePauseResumeTest::testPausingQueueOnOneConnectionDoesNotAffectAnother SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueuePauseResumeTest::testPausingDifferentQueuesOnSameConnection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueuePauseResumeTest::testResumingOnlyAffectsSpecificQueue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueuePauseResumeTest::testPauseDispatchesQueuePausedEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueuePauseResumeTest::testPauseForDispatchesQueuePausedEventWithTTL SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueuePauseResumeTest::testResumeDispatchesQueueResumedEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueuePauseResumeTest::testParsingQueueString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueRedisJobTest::testFireProperlyCallsTheJobHandler SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueRedisJobTest::testDeleteRemovesTheJobFromRedis SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueRedisJobTest::testReleaseProperlyReleasesJobOntoRedis SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueRedisQueueTest::testPushProperlyPushesJobOntoRedis SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueRedisQueueTest::testPushProperlyPushesJobOntoRedisWithCustomPayloadHook SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueRedisQueueTest::testPushProperlyPushesJobOntoRedisWithTwoCustomPayloadHook SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueRedisQueueTest::testDelayedPushProperlyPushesJobOntoRedis SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueRedisQueueTest::testDelayedPushWithDateTimeProperlyPushesJobOntoRedis SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueSizeTest::test_queue_size SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueSqsJobTest::testFireProperlyCallsTheJobHandler SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueSqsJobTest::testDeleteRemovesTheJobFromSqs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueSqsJobTest::testReleaseProperlyReleasesTheJobOntoSqs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testPopProperlyPopsJobOffOfSqs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testPopProperlyHandlesEmptyMessage SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testDelayedPushWithDateTimeProperlyPushesJobOntoSqs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testDelayedPushProperlyPushesJobOntoSqs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testPushProperlyPushesJobOntoSqs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testSizeProperlyReadsSqsQueueSize SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testGetQueueProperlyResolvesUrlWithPrefix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testGetQueueProperlyResolvesFifoUrlWithPrefix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testGetQueueProperlyResolvesUrlWithoutPrefix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testGetQueueProperlyResolvesFifoUrlWithoutPrefix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testGetQueueProperlyResolvesUrlWithSuffix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testGetQueueProperlyResolvesFifoUrlWithSuffix SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testGetQueueEnsuresTheQueueIsOnlySuffixedOnce SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testGetFifoQueueEnsuresTheQueueIsOnlySuffixedOnce SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testPushProperlyPushesJobObjectOntoSqs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testPendingDispatchProperlyPushesJobObjectOntoSqs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testPushProperlyPushesJobObjectOntoSqsFairQueue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testPendingDispatchProperlyPushesJobObjectOntoSqsFairQueue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testPushProperlyPushesJobStringOntoSqsFifoQueue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testPushProperlyPushesJobObjectOntoSqsFifoQueue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testPushProperlyPushesJobObjectOntoSqsFifoQueueWithMessageGroupMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testPushProperlyPushesJobObjectOntoSqsFifoQueueWithMessageGroupPropertyOverridingMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testPushProperlyPushesJobObjectOntoSqsFifoQueueWithDeduplicationId SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testPushProperlyPushesJobObjectOntoSqsFifoQueueWithDeduplicator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testPendingDispatchProperlyPushesJobObjectOntoSqsFifoQueue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testPendingDispatchProperlyPushesJobObjectOntoSqsFifoQueueWithDeduplicationId SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testPendingDispatchProperlyPushesJobObjectOntoSqsFifoQueueWithDeduplicator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testJobObjectCanBeSerializedOntoSqsFifoQueueWithDeduplicator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testDelayedPushProperlyPushesJobStringOntoSqsFifoQueueWithoutDelay SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testDelayedPushProperlyPushesJobObjectOntoSqsFifoQueueWithoutDelay SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSqsQueueTest::testDelayedPendingDispatchProperlyPushesJobObjectOntoSqsFifoQueueWithoutDelay SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: QueueSyncQueueTest::testPushShouldFireJobInstantly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueSyncQueueTest::testFailedJobGetsHandledWhenAnExceptionIsThrown SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueSyncQueueTest::testFailedJobHasAccessToJobInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueSyncQueueTest::testCreatesPayloadObject SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueSyncQueueTest::testItAddsATransactionCallbackForAfterCommitJobs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueSyncQueueTest::testItAddsATransactionCallbackForInterfaceBasedAfterCommitJobs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueSyncQueueTest::testItAddsATransactionCallbackForAfterCommitUniqueJobs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueSyncQueueTest::testItAddsATransactionCallbackForInterfaceBasedAfterCommitUniqueJobs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testJobCanBeFired SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testWorkerCanWorkUntilQueueIsEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testWorkerStopsWhenMemoryExceeded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testWorkerMemoryExceededWhenMemoryIsZero SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testWorkerMemoryExceededWhenMemoryGreaterThanZero SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testWorkerMemoryExceededWhenMemoryIsNegative SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testJobCanBeFiredBasedOnPriority SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testExceptionIsReportedIfConnectionThrowsExceptionOnJobPop SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testWorkerSleepsWhenQueueIsEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testJobIsReleasedOnException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testJobIsNotReleasedIfItHasExceededMaxAttempts SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testJobIsNotReleasedIfItHasExpired SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testJobIsFailedIfItHasAlreadyExceededMaxAttempts SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testJobIsFailedIfItHasAlreadyExpired SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testJobBasedMaxRetries SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testJobBasedFailedDelay SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testJobRunsIfAppIsNotInMaintenanceMode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testJobDoesNotFireIfDeleted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testWorkerPicksJobUsingCustomCallbacks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: QueueWorkerTest::testWorkerStartingIsDispatched SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConcurrentLimiterTest::testItLocksTasksWhenNoSlotAvailable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConcurrentLimiterTest::testItReleasesLockAfterTaskFinishes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConcurrentLimiterTest::testItReleasesLockIfTaskTookTooLong SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConcurrentLimiterTest::testItFailsImmediatelyOrRetriesForAWhileBasedOnAGivenTimeout SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConcurrentLimiterTest::testItFailsAfterRetryTimeout SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConcurrentLimiterTest::testItReleasesIfErrorIsThrown SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PhpRedisClusterConnectionTest::testItScansUsingDefaultNode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PhpRedisClusterConnectionTest::testItOnlyFetchesDefaultNodeOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PhpRedisClusterConnectionTest::testItScansUsingOptionNode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: PhpRedisClusterConnectionTest::testItThrowsExceptionWithoutNodes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DurationLimiterTest::testItLocksTasksWhenNoSlotAvailable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DurationLimiterTest::testItFailsImmediatelyOrRetriesForAWhileBasedOnAGivenTimeout SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DurationLimiterTest::testItReturnsTheCallbackResult SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DurationLimiterTest::testAcquireSetsDecaysAtAndRemaining SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DurationLimiterTest::testTooManyAttemptsReportsCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DurationLimiterTest::testClearResetsLimiter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DurationLimiterTest::testBlockReturnsTrueWithoutCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DurationLimiterTest::testAcquireResetsAfterDecay SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItSetsValuesWithExpiry SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItDeletesKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItChecksForExistence SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItExpiresKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItRenamesKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItAddsMembersToSortedSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItCountsMembersInSortedSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItIncrementsScoreOfSortedSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItSetsKeyIfNotExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItSetsHashFieldIfNotExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItCalculatesIntersectionOfSortedSetsAndStores SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItCalculatesUnionOfSortedSetsAndStores SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItReturnsRangeInSortedSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItReturnsRevRangeInSortedSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItReturnsRangeByScoreInSortedSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItReturnsRevRangeByScoreInSortedSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItReturnsRankInSortedSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItReturnsScoreInSortedSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItRemovesMembersInSortedSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItRemovesMembersByScoreInSortedSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItRemovesMembersByRankInSortedSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItSetsMultipleHashFields SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItGetsMultipleHashFields SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItGetsMultipleKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItFlushes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItFlushesAsynchronous SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItRunsEval SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItRunsPipes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItRunsTransactions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItRunsRawCommand SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItDispatchesQueryEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItPersistsConnection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItScansForKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItZscansForKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItHscansForKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItSscansForKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testItSPopsForKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testPhpRedisScanOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectionTest::testMacroable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectorTest::testDefaultConfiguration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectorTest::testUrl SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectorTest::testUrlWithScheme SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectorTest::testScheme SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectorTest::testPredisConfigurationWithUsername SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectorTest::testPredisConfigurationWithSentinel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisConnectorTest::testPrefixOverrideBehaviour SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisManagerExtensionTest::testUsingCustomRedisConnectorWithSingleRedisInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisManagerExtensionTest::testUsingCustomRedisConnectorWithRedisClusterInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RedisManagerExtensionTest::testParseConnectionConfigurationForCluster SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ImplicitRouteBindingTest::test_it_can_resolve_the_implicit_backed_enum_route_bindings_for_the_given_route SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ImplicitRouteBindingTest::test_it_can_resolve_the_implicit_backed_enum_route_bindings_for_the_given_route_with_optional_parameter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ImplicitRouteBindingTest::test_it_handles_optional_implicit_backed_enum_route_bindings_for_the_given_route_with_optional_parameter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ImplicitRouteBindingTest::test_it_does_not_resolve_implicit_non_backed_enum_route_bindings_for_the_given_route SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ImplicitRouteBindingTest::test_implicit_backed_enum_internal_exception SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ImplicitRouteBindingTest::test_it_can_resolve_the_implicit_model_route_bindings_for_the_given_route SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: RouteActionTest::test_it_can_detect_a_serialized_closure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteBindingTest::test_it_can_resolve_the_explicit_model_for_the_given_route SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteBindingTest::test_it_cannot_resolve_the_explicit_soft_deleted_model_for_the_given_route SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteBindingTest::test_it_can_resolve_the_explicit_soft_deleted_model_for_the_given_route_with_trashed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testRouteCollectionCanAddRoute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testRouteCollectionAddReturnsTheRoute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testRouteCollectionCanRetrieveByName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testRouteCollectionCanRetrieveByAction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testRouteCollectionCanRetrieveByMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testRouteCollectionCanGetIterator SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testRouteCollectionCanGetIteratorWhenEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testRouteCollectionCanGetIteratorWhenRouteAreAdded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testRouteCollectionCanHandleSameRoute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testRouteCollectionCanRefreshNameLookups SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testRouteCollectionCanGetAllRoutes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testRouteCollectionCanGetRoutesByName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testRouteCollectionCanGetRoutesByMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testRouteCollectionCleansUpOverwrittenRoutes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testCannotCacheDuplicateRouteNames SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testRouteCollectionDontMatchNonMatchingDoubleSlashes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testRouteCollectionRequestMethodNotAllowed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testHasNameRouteMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testToSymfonyRouteCollection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteCollectionTest::testOverlappingRoutesMatchesFirstRoute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteRegistrarTest::testMiddlewareFluentRegistration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteRegistrarTest::testNullNamespaceIsRespected SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteRegistrarTest::testMiddlewareAsStringableObject SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testMiddlewareAsStringableObjectOnRouteInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testMiddlewareAsArrayWithStringables SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testMiddlewareAsNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testWithoutMiddlewareRegistration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testGetRouteWithTrashed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testResourceWithTrashed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testFallbackRoute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testSetFallbackRoute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterGetRouteWithClosureAction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterPostRouteWithClosureAction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterAnyRouteWithClosureAction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterMatchRouteWithClosureAction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterRouteWithArrayAndClosureAction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterRouteWithArrayAndClosureUsesAction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterRouteWithControllerAction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterRouteWithControllerActionArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterNamespacedGroupRouteWithControllerActionArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterRouteWithArrayAndControllerAction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterGroupWithMiddleware SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterGroupWithoutMiddleware SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterGroupWithStringableMiddleware SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterGroupWithNamespace SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterGroupWithPrefix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterGroupWithPrefixAndWhere SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterGroupWithNamePrefix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterGroupWithDomain SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterGroupWithDomainAndNamePrefix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterGroupWithController SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanOverrideGroupControllerWithStringSyntax SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanOverrideGroupControllerWithClosureSyntax SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanOverrideGroupControllerWithInvokableControllerSyntax SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testWillUseTheLatestGroupController SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanOverrideGroupControllerWithArraySyntax SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testRouteGroupingWithoutPrefix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testRouteGroupChaining SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testRegisteringNonApprovedAttributesThrows SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanSetWithoutScopedBindings SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanSetWithoutScopedBindingsOnGroup SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanSetScopeBindings SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanSetScopeBindingsOnGroup SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterResourcesWithExceptOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterResourcesWithOnlyOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterResourcesWithoutOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterResourceWithMissingOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanAccessRegisteredResourceRoutesAsRouteCollection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanLimitMethodsOnRegisteredResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanExcludeMethodsOnRegisteredResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanLimitAndExcludeMethodsOnRegisteredResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanSetShallowOptionOnRegisteredResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanSetScopedOptionOnRegisteredResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanExcludeMethodsOnRegisteredApiResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterApiResourcesWithExceptOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterApiResourcesWithOnlyOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterApiResourcesWithoutOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testUserCanRegisterApiResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testUserCanRegisterApiResourceWithExceptOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testUserCanRegisterApiResourceWithOnlyOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanNameRoutesOnRegisteredResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanOverrideParametersOnRegisteredResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanSetMiddlewareOnRegisteredResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanSetMiddlewareCanOnGroups SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanSetMiddlewareCanWithModelsOnGroups SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanSetMiddlewareCanNestedOnGroups SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanSetMiddlewareForSpecifiedMethodsOnRegisteredResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testResourceWithoutMiddlewareRegistration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanSetExcludedMiddlewareForSpecifiedMethodsOnRegisteredResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testResourceWithMiddlewareAsStringable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testResourceWheres SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testWhereNumberRegistration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testWhereAlphaRegistration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testWhereAlphaNumericRegistration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testWhereInRegistration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testWhereInEnumRegistration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testGroupWhereNumberRegistrationOnRouteRegistrar SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testGroupWhereAlphaRegistrationOnRouteRegistrar SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testGroupWhereAlphaNumericRegistrationOnRouteRegistrar SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testGroupWhereInRegistrationOnRouteRegistrar SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testGroupWhereNumberRegistrationOnRouter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testGroupWhereAlphaRegistrationOnRouter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testGroupWhereAlphaNumericRegistrationOnRouter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testGroupWhereInRegistrationOnRouter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanSetRouteName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanSetRouteNameUsingNameAlias SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanSetRouteNameUsingStringBackedEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCannotSetRouteNameUsingIntegerBackedEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanSetRouteDomainUsingStringBackedEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCannotSetRouteDomainUsingIntegerBackedEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testPushMiddlewareToGroup SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testPushMiddlewareToGroupUnregisteredGroup SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testPushMiddlewareToGroupDuplicatedMiddleware SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRemoveMiddlewareFromGroup SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRemoveMiddlewareFromGroupNotUnregisteredMiddleware SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRemoveMiddlewareFromGroupUnregisteredGroup SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterSingleton SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterApiSingleton SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterCreatableSingleton SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRegisterCreatableApiSingleton SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testSingletonCreatableNotDestroyable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testApiSingletonCreatableNotDestroyable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testSingletonCanBeDestroyable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testApiSingletonCanBeDestroyable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testSingletonCanBeOnlyCreatable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testApiSingletonCanBeOnlyCreatable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testSingletonDoesntAllowIncludingUnsupportedMethods SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testApiSingletonCanIncludeAnySingletonMethods SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanSetMiddlewareForSpecifiedMethodsOnRegisteredSingletonResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanSetExcludedMiddlewareForSpecifiedMethodsOnRegisteredSingletonResource SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteSignatureParametersTest::test_it_can_extract_the_route_action_signature_parameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteUriTest::testRouteUrisAreProperlyParsed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRedirectorTest::testBasicRedirectTo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRedirectorTest::testComplexRedirectTo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRedirectorTest::testGuestPutCurrentUrlInSession SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRedirectorTest::testGuestPutPreviousUrlInSession SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRedirectorTest::testIntendedRedirectToIntendedUrlInSession SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRedirectorTest::testIntendedWithoutIntendedUrlInSession SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRedirectorTest::testRefreshRedirectToCurrentUrl SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRedirectorTest::testBackRedirectToHttpReferer SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRedirectorTest::testAwayDoesntValidateTheUrl SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRedirectorTest::testSecureRedirectToHttpsUrl SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRedirectorTest::testAction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRedirectorTest::testRoute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRedirectorTest::testSignedRoute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRedirectorTest::testTemporarySignedRoute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRedirectorTest::testItSetsAndGetsValidIntendedUrl SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testBasicDispatchingOfRoutes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testNotModifiedResponseIsProperlyReturned SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testClosureMiddleware SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testMiddlewareCanBeSkipped SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testMiddlewareCanBeSkippedFromResources SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testMiddlewareWorksIfControllerThrowsHttpResponseException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testReturnsResponseWhenMiddlewareReturnsResponsable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testDefinedClosureMiddleware SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testControllerClosureMiddleware SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testFluentRouting SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testFluentRoutingWithControllerAction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testMiddlewareGroups SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testMiddlewareGroupsCanReferenceOtherGroups SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testFluentRouteNamingWithinAGroup SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteGetAction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteGetControllerClass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testResolvingBindingParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testMacro SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteMacro SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testClassesCanBeInjectedIntoRoutes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testNullValuesCanBeInjectedIntoRoutes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testOptionsResponsesAreGeneratedByDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testHeadDispatcher SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testNonGreedyMatches SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testHasParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testForgetParameter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testParameterNames SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testParametersWithoutNulls SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteParametersDefaultValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testControllerCallActionMethodParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testLeadingParamDoesntReceiveForwardSlashOnEmptyPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRoutesDontMatchNonMatchingPathsWithLeadingOptionals SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRoutesDontMatchNonMatchingDomain SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteDomainRegistration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testMatchesMethodAgainstRequests SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testWherePatternsProperlyFilter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRoutePrefixParameterParsing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testDotDoesNotMatchEverything SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteBinding SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteClassBinding SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteClassMethodBinding SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testMiddlewarePrioritySorting SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testModelBinding SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testModelBindingWithNullReturn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testModelBindingWithCustomNullReturn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testModelBindingWithBindingClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testModelBindingWithCompoundParameterName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testModelBindingWithCompoundParameterNameAndRouteBinding SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testModelBindingThroughIOC SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteDependenciesCanBeResolvedThroughAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testAfterResolvingAttributeCallbackIsCalledOnRouteDependenciesResolution SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testGroupMerging SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteGrouping SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteGroupingOutsideOfInheritedNamespace SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testCurrentRouteUses SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteGroupingFromFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteGroupingWithAs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testNestedRouteGroupingWithAs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testNestedRouteGroupingPrefixing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteMiddlewareMergeWithMiddlewareAttributesAsStrings SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRoutePrefixing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRoutePreservingOriginalParametersState SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testMergingControllerUses SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testInvalidActionException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testShallowResourceRouting SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testResourceRouting SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testResourceRoutingParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testResourceRouteNaming SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouterFiresRoutedEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouterFiresRouteMatchingEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouterPatternSetting SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testControllerRouting SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testControllerRoutingArrayCallable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testCallableControllerRouting SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testControllerMiddlewareGroups SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testImplicitBindings SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testImplicitBindingsWithClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testImplicitBindingsWhereScopedBindingsArePrevented SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testParentChildImplicitBindings SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testParentChildImplicitBindingsWhereOnlySomeParametersAreScoped SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testApiResourceScopingWhenChildDoesNotBelongToParent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testParentChildImplicitBindingsProperlyCamelCased SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testImplicitBindingsWithOptionalParameterWithExistingKeyInUri SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testOptionalBackedEnumsReturnNullWhenMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testImplicitBindingsWithMissingModelHandledByMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testImplicitBindingsWithMissingModelHandledByMissingOnGroupLevel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testImplicitBindingsWithOptionalParameterWithNoKeyInUri SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testImplicitBindingsWithOptionalParameterUsingEnumIsAlwaysCastedToEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testImplicitBindingsWithOptionalParameterWithNonExistingKeyInUri SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testImplicitBindingThroughIOC SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testDispatchingCallableActionClasses SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testResponseIsReturned SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testJsonResponseIsReturned SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteFlushController SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteRedirect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteRedirectRetainsExistingStartingForwardSlash SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteRedirectStripsMissingStartingForwardSlash SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteRedirectExceptionWhenMissingExpectedParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteRedirectWithCustomStatus SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRoutePermanentRedirect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testRouteCanMiddlewareCanBeAssigned SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingRouteTest::testItDispatchesEventsWhilePreparingRequest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingTestUserModel::testTeams SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingSortedMiddlewareTest::testMiddlewareCanBeSortedByPriority SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingSortedMiddlewareTest::testItDoesNotMoveNonStringValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingSortedMiddlewareTest::testItSortsUsingParentsAndContracts SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testBasicGeneration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testQueryGeneration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testAssetGeneration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testBasicGenerationWithHostFormatting SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testBasicGenerationWithRequestBaseUrlWithSubfolder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testBasicGenerationWithRequestBaseUrlWithSubfolderAndFileSuffix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testBasicGenerationWithRequestBaseUrlWithFileSuffix SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testBasicGenerationWithPathFormatting SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testUrlFormattersShouldReceiveTargetRoute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testBasicRouteGeneration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testFluentRouteNameDefinitions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testControllerRoutesWithADefaultNamespace SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testControllerRoutesOutsideOfDefaultNamespace SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testRoutableInterfaceRouting SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testRoutableInterfaceRoutingWithCustomBindingField SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testRoutableInterfaceRoutingAsQueryString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testRoutableInterfaceRoutingWithSeparateBindingFieldOnlyForSecondParameter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testRoutableInterfaceRoutingWithSingleParameter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testRoutesMaintainRequestScheme SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testHttpOnlyRoutes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testRoutesWithDomains SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testRoutesWithDomainsAndPorts SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testRoutesWithDomainsStripsProtocols SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testHttpsRoutesWithDomains SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testRoutesWithDomainsThroughProxy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testUrlGenerationForControllersRequiresPassingOfRequiredParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testUrlGenerationThrowsExceptionForMissingParametersWithMeaningfulMessage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testSetAssetUrl SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testUseRootUrl SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testForceHttps SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testPrevious SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testPreviousPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testRouteNotDefinedException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testSignedUrl SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testSignedUrlImplicitModelBinding SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testSignedRelativeUrl SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testSignedUrlParameterCannotBeNamedSignature SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testSignedUrlParameterCannotBeNamedExpires SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testRouteGenerationWithBackedEnums SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testRouteGenerationWithNestedBackedEnums SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testSignedUrlWithKeyResolver SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testMissingNamedRouteResolution SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testPassedParametersHavePrecedenceOverDefaults SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testComplexRouteGenerationWithDefaultsAndBindingFields SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testComplexRouteGenerationWithDefaultsAndMixedParameterSyntax SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testDefaultsCanBeCombinedWithExtraQueryParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RoutingUrlGeneratorTest::testUrlGenerationWithOptionalParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArraySessionHandlerTest::test_it_implements_the_session_handler_interface SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArraySessionHandlerTest::test_it_initializes_the_session SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArraySessionHandlerTest::test_it_closes_the_session SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArraySessionHandlerTest::test_it_reads_data_from_the_session SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArraySessionHandlerTest::test_it_reads_data_from_an_almost_expired_session SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArraySessionHandlerTest::test_it_reads_data_from_an_expired_session SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArraySessionHandlerTest::test_it_reads_data_from_a_non_existing_session SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArraySessionHandlerTest::test_it_writes_session_data SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArraySessionHandlerTest::test_it_destroys_a_session SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ArraySessionHandlerTest::test_it_cleans_up_old_sessions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: CacheBasedSessionHandlerTest::test_open SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheBasedSessionHandlerTest::test_close SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheBasedSessionHandlerTest::test_read_returns_data_from_cache SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheBasedSessionHandlerTest::test_read_returns_empty_string_if_no_data SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheBasedSessionHandlerTest::test_write_stores_data_in_cache SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheBasedSessionHandlerTest::test_destroy_removes_data_from_cache SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheBasedSessionHandlerTest::test_gc_returns_zero SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: CacheBasedSessionHandlerTest::test_get_cache_returns_cache_instance SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: EncryptedSessionStoreTest::testSessionIsProperlyEncrypted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FileSessionHandlerTest::test_open SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FileSessionHandlerTest::test_close SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FileSessionHandlerTest::test_read_returns_data_when_file_exists_and_is_valid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FileSessionHandlerTest::test_read_returns_data_when_file_exists_but_expired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FileSessionHandlerTest::test_read_returns_empty_string_when_file_does_not_exist SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FileSessionHandlerTest::test_write_stores_data SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FileSessionHandlerTest::test_destroy_deletes_session_file SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: FileSessionHandlerTest::test_gc_deletes_old_session_files SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthenticateSessionTest::test_handle_without_session SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthenticateSessionTest::test_handle_with_session_without_request_user SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthenticateSessionTest::test_handle_with_session_without_auth_password SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthenticateSessionTest::test_handle_with_session_with_user_auth_password_on_request_via_remember_false SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthenticateSessionTest::test_handle_with_invalid_password_hash SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthenticateSessionTest::test_handle_with_invalid_incookie_password_hash_via_remember_true SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthenticateSessionTest::test_handle_with_valid_incookie_invalid_insession_hash_via_remember_true SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: AuthenticateSessionTest::test_handle_with_valid_password_in_session_cookie_is_empty_guard_has_user SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testSessionIsLoadedFromHandler SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testSessionMigration SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testSessionRegeneration SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testCantSetInvalidId SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testSessionInvalidate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testBrandNewSessionIsProperlySaved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testSessionIsProperlyUpdated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testSessionIsReSavedWhenNothingHasChanged SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testSessionIsReSavedWhenNothingHasChangedExceptSessionId SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testOldInputFlashing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testDataFlashing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testDataFlashingNow SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testDataMergeNewFlashes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testReflash SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testReflashWithNow SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testOnly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testExcept SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testReplace SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testRemove SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testClear SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testIncrement SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testDecrement SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testHasOldInputWithoutKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testHandlerNeedsRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testToken SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testRegenerateToken SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testForget SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testSetPreviousUrl SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testPasswordConfirmed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testKeyPush SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testKeyPull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testKeyHas SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testKeyHasAny SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testKeyExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testKeyMissing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testRememberMethodCallsPutAndReturnsDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testRememberMethodReturnsPreviousValueIfItAlreadySets SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testValidationErrorsCanBeSerializedAsJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testValidationErrorsCanBeReadAsJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SessionStoreTest::testItIsMacroable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConfigurationUrlParserTest::testDatabaseUrlsAreParsed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConfigurationUrlParserTest::testDriversAliases SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DateFacadeTest::testUseClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DateFacadeTest::testUseClassName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DateFacadeTest::testCarbonImmutable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DateFacadeTest::testUseInvalidHandler SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: DateFacadeTest::testMacro SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ForwardsCallsTest::testForwardsCalls SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ForwardsCallsTest::testNestedForwardCalls SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ForwardsCallsTest::testMissingForwardedCallThrowsCorrectError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ForwardsCallsTest::testMissingAlphanumericForwardedCallThrowsCorrectError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ForwardsCallsTest::testNonForwardedErrorIsNotTamperedWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ForwardsCallsTest::testThrowBadMethodCallException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HigherOrderProxyTest::test_get_proxies_property_access_to_items SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HigherOrderProxyTest::test_call_proxies_method_call_to_items SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: HigherOrderProxyTest::test_call_forwards_and_returns_target SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LotteryTest::testItCanWin SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LotteryTest::testItCanLose SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LotteryTest::testItCanReturnValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LotteryTest::testItCanChooseSeveralTimes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LotteryTest::testItCanBePassedAsCallable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LotteryTest::testWithoutSpecifiedClosuresBooleansAreReturned SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LotteryTest::testItCanForceWinningResultInTests SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LotteryTest::testItCanForceLosingResultInTests SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LotteryTest::testItCanForceTheResultViaSequence SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LotteryTest::testItCanHandleMissingSequenceItems SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LotteryTest::testItThrowsForFloatsOverOne SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LotteryTest::testItThrowsForOutOfLessThanOne SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LotteryTest::testItCanWinWithFloat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: LotteryTest::testItCanLoseWithFloat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testResultMemoization SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testCallableIsCalledOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testFlush SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testNotMemoizedWhenObjectIsGarbageCollected SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testIsNotMemoizedWhenCallableUsesChanges SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testUsageOfThis SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testInvokables SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testFirstClassCallableSyntax SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testFirstClassCallableSyntaxWithArraySyntax SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testStaticMemoization SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testMemoizationWhenOnceIsWithinClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testMemoizationOnGlobalFunctions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testDisable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testTemporaryDisable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testMemoizationWithinEvals SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testMemoizationOnSameLine SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testResultIsDifferentWhenCalledFromDifferentClosures SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testResultIsMemoizedWhenCalledFromMethodsWithSameName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testRecursiveOnceCalls SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testGlobalClosures SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testMemoizationNullValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: OnceTest::testExtendedStaticClassOnceCalls SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SleepTest::testItSleepsForSeconds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testCallbacksMayBeExecutedUsingThen SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testSleepRespectsWhile SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItSleepsForSecondsWithMilliseconds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanFakeSleeping SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanSpecifyMinutes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanSpecifyMinute SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanSpecifySeconds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanSpecifySecond SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanSpecifyMilliseconds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanSpecifyMillisecond SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanSpecifyMicroseconds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanSpecifyMicrosecond SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanChainDurations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanUseDateInterval SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItThrowsForUnknownTimeUnit SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanAssertSequence SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItFailsSequenceAssertion SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanUseSleep SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanUseUSleep SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanSleepTillGivenTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanSleepTillGivenTimestamp SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanSleepTillGivenTimestampAsString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanSleepTillGivenTimestampAsStringWithMilliseconds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItSleepsForZeroTimeWithNegativeDateTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testSleepingForZeroTime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItFailsWhenSequenceContainsTooManySleeps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testSilentlySetsDurationToZeroForNegativeValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItDoesntCaptureAssertionInstances SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testAssertNeverSlept SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testAssertNeverAgainstZeroSecondSleep SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanAssertNoSleepingOccurred SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanAssertSleepCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testAssertSlept SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanCreateMacrosViaMacroable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanReplacePreviouslyDefinedDurations SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanSleepConditionallyWhen SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanRegisterCallbacksToRunInTests SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItDoesntRunCallbacksWhenNotFaking SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItDoesNotSyncCarbon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testItCanSyncCarbon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testFakeCanSetSyncWithCarbon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SleepTest::testFakeDoesNotNeedToSyncWithCarbon SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: StorageFacadeTest::testFake_whenDiskNotConfigured_doesNotThrowExceptionOnError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: StorageFacadeTest::testFake_whenThrowSetToDisk_throwsExceptionOnError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: StorageFacadeTest::testFake_whenThrowOverwritten_usesOverwrite SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: StorageFacadeTest::testPersistentFake_whenDiskNotConfigured_doesNotThrowExceptionOnError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: StorageFacadeTest::testPersistentFake_whenThrowSetToDisk_throwsExceptionOnError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: StorageFacadeTest::testPersistentFake_whenThrowOverwritten_usesOverwrite SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testAccessible SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testArrayable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testAdd SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testPush SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testCollapse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testCrossJoin SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testDivide SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testDot SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testUndot SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testExcept SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testWhereNotNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testFirst SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testFirstWorksWithArrayObject SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testJoin SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testLast SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testFlatten SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testFlattenWithDepth SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testGet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testItGetsAString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testItGetsAnInteger SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testItGetsAFloat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testItGetsABoolean SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testItGetsAnArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testHas SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testHasAllMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testHasAnyMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testEvery SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testSome SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testIsAssoc SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testIsList SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testOnly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testPluck SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testPluckWithArrayValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testPluckWithKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testPluckWithCarbonKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testArrayPluckWithArrayAndObjectValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testArrayPluckWithNestedKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testArrayPluckWithNestedArrays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testMap SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testMapWithEmptyArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testMapNullValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testMapWithKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testMapByReference SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testMapSpread SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testPrepend SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testPull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testQuery SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testRandom SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testRandomNotIncrementingKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testRandomOnEmptyArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testRandomThrowsAnErrorWhenRequestingMoreItemsThanAreAvailable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testShuffleProducesDifferentShuffles SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testShuffleActuallyShuffles SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testShuffleKeepsSameValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testSoleReturnsFirstItemInCollectionIfOnlyOneExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testSoleThrowsExceptionIfNoItemsExist SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testSoleThrowsExceptionIfMoreThanOneItemExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testEmptyShuffle SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testSort SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testSortDesc SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testSortRecursive SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testSortRecursiveDesc SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testToCssClasses SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testToCssStyles SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testWhere SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testWhereKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testForget SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testFrom SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testWrap SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testSortByMany SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testKeyBy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testPrependKeysWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testTake SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testSelect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testReject SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportArrTest::testPartition SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportBenchmarkTest::testMeasure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportBenchmarkTest::testValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportBenchmarkTest::testMacroable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportCapsuleManagerTraitTest::testSetupContainerForCapsule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportCapsuleManagerTraitTest::testSetupContainerForCapsuleWhenConfigIsBound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportCarbonTest::testInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportCarbonTest::testCarbonIsMacroableWhenNotCalledStatically SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportCarbonTest::testCarbonIsMacroableWhenCalledStatically SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportCarbonTest::testCarbonRaisesExceptionWhenStaticMacroIsNotFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportCarbonTest::testCarbonRaisesExceptionWhenMacroIsNotFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportCarbonTest::testCarbonAllowsCustomSerializer SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportCarbonTest::testCarbonCanSerializeToJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportCarbonTest::testSetStateReturnsCorrectType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportCarbonTest::testDeserializationOccursCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportCarbonTest::testSetTestNowWillPersistBetweenImmutableAndMutableInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportCarbonTest::testCarbonIsConditionable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportCarbonTest::testCreateFromUid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testFirstReturnsFirstItemInCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testFirstWithCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testFirstWithCallbackAndDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testFirstWithDefaultAndWithoutCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSoleReturnsFirstItemInCollectionIfOnlyOneExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSoleThrowsExceptionIfNoItemsExist SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSoleThrowsExceptionIfMoreThanOneItemExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSoleReturnsFirstItemInCollectionIfOnlyOneExistsWithCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSoleThrowsExceptionIfNoItemsExistWithCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSoleThrowsExceptionIfMoreThanOneItemExistsWithCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testFirstOrFailReturnsFirstItemInCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testFirstOrFailThrowsExceptionIfNoItemsExist SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testFirstOrFailDoesntThrowExceptionIfMoreThanOneItemExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testFirstOrFailReturnsFirstItemInCollectionIfOnlyOneExistsWithCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testFirstOrFailThrowsExceptionIfNoItemsExistWithCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testFirstOrFailDoesntThrowExceptionIfMoreThanOneItemExistsWithCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testFirstOrFailStopsIteratingAtFirstMatch SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testFirstWhere SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testFirstWhereUsingEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testLastReturnsLastItemInCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testLastWithCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testLastWithCallbackAndDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testLastWithDefaultAndWithoutCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testPopReturnsAndRemovesLastItemInCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testPopReturnsAndRemovesLastXItemsInCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testShiftReturnsAndRemovesFirstItemInCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testShiftReturnsAndRemovesFirstXItemsInCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testShiftReturnsNullOnEmptyCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSliding SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testEmptyCollectionIsEmpty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testEmptyCollectionIsNotEmpty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testCollectionIsConstructed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSkipMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSkipUntil SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSkipWhile SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testGetArrayableItems SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testToArrayCallsToArrayOnEachItemInCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testLazyReturnsLazyCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testJsonSerializeCallsToArrayOrJsonSerializeOnEachItemInCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testToJsonEncodesTheJsonSerializeResult SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testToPrettyJsonEncodesTheJsonSerializeResult SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testCastingToStringJsonEncodesTheToArrayResult SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testOffsetAccess SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testArrayAccessOffsetExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testBehavesLikeAnArrayWithArrayAccess SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testArrayAccessOffsetGet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testArrayAccessOffsetSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testArrayAccessOffsetUnset SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testForgetSingleKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testForgetArrayOfKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testForgetCollectionOfKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testCountable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testCountByStandalone SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testCountByWithKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testCountableByWithCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testAdd SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testContainsOneItem SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testIterable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testCachingIterator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testFilter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testHigherOrderKeyBy SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testHigherOrderUnique SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testHigherOrderFilter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testWhere SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testWhereStrict SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testWhereInstanceOf SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testWhereIn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testWhereInStrict SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testWhereNotIn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testWhereNotInStrict SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testValuesResetKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testValueUsingEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testValueWithNegativeValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testValueWithObjects SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testBetween SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testWhereNotBetween SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testFlatten SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testFlattenWithDepth SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testFlattenIgnoresKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testMergeNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testMergeArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testMergeCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testMergeRecursiveNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testMergeRecursiveArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testMergeRecursiveCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testMultiplyCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testReplaceNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testReplaceArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testReplaceCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testReplaceRecursiveNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testReplaceRecursiveArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testReplaceRecursiveCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testUnionNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testUnionArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testUnionCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testDiffCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testDiffUsingWithCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testDiffUsingWithNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testDiffNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testDiffKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testDiffKeysUsing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testDiffAssoc SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testDiffAssocUsing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testDuplicates SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testDuplicatesWithKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testDuplicatesWithCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testDuplicatesWithStrict SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testEach SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testEachSpread SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testIntersectNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testIntersectCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testIntersectUsingWithNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testIntersectUsingCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testIntersectAssocWithNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testIntersectAssocCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testIntersectAssocUsingWithNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testIntersectAssocUsingCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testIntersectByKeysNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testIntersectByKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testUnique SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testUniqueWithCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testUniqueStrict SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testCollapse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testCollapseWithNestedCollections SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testCollapseWithKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testCollapseWithKeysOnNestedCollections SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testJoin SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testCrossJoin SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSort SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSortDesc SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSortWithCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSortBy SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSortByString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSortByCallableString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSortByCallableStringDesc SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSortByAlwaysReturnsAssoc SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSortByMany SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testNaturalSortByManyWithNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSortKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSortKeysDesc SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSortKeysUsing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testReverse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testFlip SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testChunk SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testChunkWhenGivenZeroAsSize SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testChunkWhenGivenLessThanZero SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testChunkPreservingKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testSplitIn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testChunkWhileOnEqualElements SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testChunkWhileOnContiguouslyIncreasingIntegers SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testChunkWhilePreservingStringKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testEvery SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testExcept SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testExceptSelf SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testPluckWithArrayAndObjectValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testPluckWithArrayAccessValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testPluckWithDotNotation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testPluckWithClosure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testPluckDuplicateKeysExist SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testHas SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testHasAny SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testImplode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportCollectionTest::testImplodeModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testTake SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGetOrPut SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGetOrPutWithNoKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPut SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPutWithNoKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testRandom SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testRandomOnEmptyCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testTakeLast SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testTakeUntilUsingValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testTakeUntilUsingCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testTakeUntilReturnsAllItemsForUnmetValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testTakeUntilCanBeProxied SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testTakeWhileUsingValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testTakeWhileUsingCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testTakeWhileReturnsNoItemsForUnmetValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testTakeWhileCanBeProxied SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMacroable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testCanAddMethodsToProxy SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMakeMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMakeMethodFromNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMakeMethodFromCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMakeMethodFromArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWrapWithScalar SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWrapWithArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWrapWithArrayable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWrapWithJsonable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWrapWithJsonSerialize SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWrapWithCollectionClass SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWrapWithCollectionSubclass SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testUnwrapCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testUnwrapCollectionWithArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testUnwrapCollectionWithScalar SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testEmptyMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testTimesMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testRangeMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testFromJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testFromJsonWithDepth SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testFromJsonWithFlags SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testConstructMakeFromObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testConstructMethod SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testConstructMethodFromNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testConstructMethodFromCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testConstructMethodFromArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testConstructMethodFromObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testConstructMethodFromWeakMap SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSplice SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGetPluckValueWithAccessors SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMap SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMapSpread SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testFlatMap SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMapToDictionary SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMapToDictionaryWithNumericKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMapToGroups SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMapToGroupsWithNumericKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMapWithKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMapWithKeysIntegerKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMapWithKeysMultipleRows SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMapWithKeysCallbackKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMapInto SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMapIntoWithIntBackedEnums SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMapIntoWithStringBackedEnums SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testNth SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMapWithKeysOverwritingKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testTransform SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGroupByAttribute SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGroupByAttributeWithStringableKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGroupByAttributeWithEnumKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGroupByCallable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGroupByAttributeWithBackedEnumKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGroupByAttributePreservingKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGroupByClosureWhereItemsHaveSingleGroup SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGroupByClosureWhereItemsHaveSingleGroupPreservingKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGroupByClosureWhereItemsHaveMultipleGroups SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGroupByClosureWhereItemsHaveMultipleGroupsPreservingKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGroupByMultiLevelAndClosurePreservingKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testKeyByAttribute SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testKeyByClosure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testKeyByObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testContains SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDoesntContain SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDoesntContainStrict SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSome SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testContainsStrict SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testContainsWithOperator SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGettingSumFromCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testCanSumValuesWithoutACallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGettingSumFromEmptyCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testValueRetrieverAcceptsDotNotation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPullRetrievesItemFromCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPullRemovesItemFromCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPullRemovesItemFromNestedCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPullReturnsDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testRejectRemovesElementsPassingTruthTest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testRejectWithoutAnArgumentRemovesTruthyValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSearchReturnsIndexOfFirstFoundItem SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSearchInStrictMode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSearchReturnsFalseWhenItemIsNotFound SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testBeforeReturnsItemBeforeTheGivenItem SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testBeforeInStrictMode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testBeforeReturnsNullWhenItemIsNotFound SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testBeforeReturnsNullWhenItemOnTheFirstitem SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testAfterReturnsItemAfterTheGivenItem SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testAfterInStrictMode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testAfterReturnsNullWhenItemIsNotFound SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testAfterReturnsNullWhenItemOnTheLastItem SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPaginate SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPrepend SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPushWithOneItem SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPushWithMultipleItems SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testUnshiftWithOneItem SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testUnshiftWithMultipleItems SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testZip SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPadPadsArrayWithValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGettingMaxItemsFromCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGettingMinItemsFromCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testOnly SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSelectWithArrays SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSelectWithArrayAccess SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSelectWithObjects SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGettingAvgItemsFromCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testJsonSerialize SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testCombineWithArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testCombineWithCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testConcatWithArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testConcatWithCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDump SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testReduce SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testReduceSpread SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testReduceSpreadThrowsAnExceptionIfReducerDoesNotReturnAnArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testRandomThrowsAnExceptionUsingAmountBiggerThanCollectionSize SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPipe SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPipeInto SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPipeThrough SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMedianValueWithArrayCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMedianValueByKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMedianOnCollectionWithNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testEvenMedianCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMedianOutOfOrderCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMedianOnEmptyCollectionReturnsNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testModeOnNullCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testMode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testModeValueByKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWithMultipleModeValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSliceOffset SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSliceNegativeOffset SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSliceOffsetAndLength SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSliceOffsetAndNegativeLength SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSliceNegativeOffsetAndLength SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSliceNegativeOffsetAndNegativeLength SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testCollectionFromTraversable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testCollectionFromTraversableWithKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testCollectionFromEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testCollectionFromBackedEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSplitCollectionWithADivisibleCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSplitCollectionWithAnUndivisableCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSplitCollectionWithCountLessThenDivisor SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSplitCollectionIntoThreeWithCountOfFour SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSplitCollectionIntoThreeWithCountOfFive SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSplitCollectionIntoSixWithCountOfTen SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testSplitEmptyCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testHigherOrderCollectionGroupBy SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testHigherOrderCollectionMap SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testHigherOrderCollectionMapFromArrays SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testHigherOrderCollectionStaticCall SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPartition SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPartitionCallbackWithKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPartitionByKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPartitionWithOperators SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPartitionPreservesKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPartitionEmptyCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testHigherOrderPartition SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testTap SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWhen SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWhenDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWhenEmpty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWhenEmptyDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWhenNotEmpty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWhenNotEmptyDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testHigherOrderWhenAndUnless SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testHigherOrderWhenAndUnlessWithProxy SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testUnless SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testUnlessDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testUnlessEmpty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testUnlessEmptyDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testUnlessNotEmpty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testUnlessNotEmptyDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testHasReturnsValidResults SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPutAddsItemToCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testItThrowsExceptionWhenTryingToAccessNoProxyProperty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGetWithNullReturnsNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGetWithDefaultValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGetWithCallbackAsDefaultValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWhereNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWhereNullWithoutKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWhereNotNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWhereNotNullWithoutKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testCollect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testUndot SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDot SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testEnsureForScalar SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testEnsureForObjects SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testEnsureForInheritance SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testEnsureForMultipleTypes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPercentageWithFlatCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPercentageWithNestedCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testHighOrderPercentage SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPercentageReturnsNullForEmptyCollections SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportComposerTest::testDumpAutoloadRunsTheCorrectCommand SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportComposerTest::testDumpAutoloadRunsTheCorrectCommandWhenCustomComposerPharIsPresent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportComposerTest::testDumpAutoloadRunsTheCorrectCommandWithExtraArguments SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportComposerTest::testDumpOptimizedTheCorrectCommand SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportComposerTest::testRequirePackagesRunsTheCorrectCommand SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportComposerTest::testRemovePackagesRunsTheCorrectCommand SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportConditionableTest::testWhenConditionCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportConditionableTest::testWhenDefaultCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportConditionableTest::testUnlessConditionCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportConditionableTest::testUnlessDefaultCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportConditionableTest::testWhenProxy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportConditionableTest::testUnlessProxy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportEnumValueFunctionTest::test_it_can_handle_enum_value SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportEnumValueFunctionTest::test_it_can_fallback_to_use_default_if_value_is_null SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFacadesEventTest::testFakeFor SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFacadesEventTest::testFakeForSwapsDispatchers SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFacadesEventTest::testFakeSwapsDispatchersInResolvedCacheRepositories SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFacadesEventTest::testCacheFlushDispatchesEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFacadesHttpTest::testFacadeRootIsNotSharedByDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFacadesHttpTest::testFacadeRootIsSharedWhenFaked SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFacadesHttpTest::testFacadeRootIsSharedWhenFakedWithSequence SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFacadesHttpTest::testFacadeRootIsSharedWhenStubbingUrls SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFacadesHttpTest::testFacadeRootIsSharedWhenEnforcingFaking SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFacadesHttpTest::testFacadeRootIsSharedWhenEnforcingFakingWithAllowedUrls SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFacadesHttpTest::test_can_set_prevents_to_prevents_stray_requests SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFacadesQueueTest::testFakeFor SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportFacadesQueueTest::testFakeForSwapsQueueManager SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportFacadesQueueTest::testFakeExcept SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportFacadesQueueTest::testFakeExceptFor SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportFacadesQueueTest::testFakeExceptForSwapsQueueManager SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportFacadesQueueTest::testFakeExceptForReturnValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportFacadesQueueTest::testFakeForReturnValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportFacadeTest::testFacadeCallsUnderlyingApplication SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFacadeTest::testShouldReceiveReturnsAMockeryMock SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFacadeTest::testSpyReturnsAMockerySpy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFacadeTest::testShouldReceiveCanBeCalledTwice SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFacadeTest::testCanBeMockedWithoutUnderlyingInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFacadeTest::testExpectsReturnsAMockeryMockWithExpectationRequired SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFacadeTest::testFacadeResolvesAgainAfterClearingSpecific SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFacadeTest::testFacadeResolvesAgainAfterClearingAll SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testAttributesAreSetByConstructor SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testAttributesAreSetByConstructorGivenstdClass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testAttributesAreSetByConstructorGivenArrayIterator SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testGetMethodReturnsAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testSetMethodSetsAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testArrayAccessToAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testMagicMethodsCanBeUsedToSetAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testIssetMagicMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testToArrayReturnsAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testToJsonEncodesTheToArrayResult SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testToPrettyJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testScope SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testToCollection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testStringMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testBooleanMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testIntegerMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testFloatMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testArrayMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testCollectMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testDateMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testDateMethodExceptionWhenValueInvalid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testDateMethodExceptionWhenFormatInvalid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testEnumMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testEnumsMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testFill SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testMacroable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testFluentIsIterable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testFluentIsEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportFluentTest::testFluentIsNotEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportHelpersTest::testE SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportHelpersTest::testEWithInvalidCodePoints SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportHelpersTest::testEWithEnums SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportHelpersTest::testBlank SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportHelpersTest::testBlankDoesntJsonSerializeModels SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testClassBasename SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWhen SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testFilled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testObjectGet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testObjectGetDefaultValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testObjectGetWhenKeyIsNullOrEmpty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDataHas SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDataGet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDataGetWithNestedArrays SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDataGetWithDoubleNestedArraysCollapsesResult SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDataGetFirstLastDirectives SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDataGetFirstLastDirectivesOnArrayAccessIterable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDataGetFirstLastDirectivesOnKeyedArrays SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDataGetEscapedSegmentKeys SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDataGetStar SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDataGetNullKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDataFill SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDataFillWithStar SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDataFillWithDoubleStar SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDataSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDataSetWithStar SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDataSetWithDoubleStar SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDataRemove SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDataRemoveWithStar SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testDataRemoveWithDoubleStar SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testHead SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testLast SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testClassUsesRecursiveShouldReturnTraitsOnParentClasses SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testClassUsesRecursiveAcceptsObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testClassUsesRecursiveReturnParentTraitsFirst SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testTraitUsesRecursive SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testStr SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testTap SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testThrow SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testThrowDefaultException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testThrowExceptionWithMessage SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testThrowExceptionAsStringWithMessage SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testThrowClosureException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testThrowClosureWithParamsException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testThrowClosureStringWithParamsException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testThrowUnless SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testThrowUnlessDefaultException SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testThrowUnlessExceptionWithMessage SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testThrowUnlessExceptionAsStringWithMessage SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testThrowReturnIfNotThrown SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testThrowWithString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testOptional SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testOptionalWithCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testOptionalWithArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testOptionalReturnsObjectPropertyOrNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testOptionalDeterminesWhetherKeyIsSet SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testOptionalAllowsToSetKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testOptionalAllowToUnsetKey SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testOptionalIsMacroable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testRetry SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testRetryWithPassingSleepCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testRetryWithPassingWhenCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testRetryWithFailingWhenCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testRetryWithBackoff SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testRetryWithAThrowableBase SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testTransform SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testTransformDefaultWhenBlank SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWith SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testAppendConfig SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testEnv SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testEnvTrue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testEnvFalse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testEnvEmpty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testEnvNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testEnvDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testEnvEscapedString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWriteArrayOfEnvVariablesToFile SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWriteArrayOfEnvVariablesToFileAndOverwrite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWillNotOverwriteArrayOfVariables SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWriteVariableToFile SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWillNotOverwriteVariable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWriteVariableToFileAndOverwrite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testWillThrowAnExceptionIfFileIsMissingWhenTryingToWriteVariables SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testGetFromSERVERFirst SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testRequiredEnvVariableThrowsAnExceptionWhenNotFound SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testRequiredEnvReturnsValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testLiteral SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testPregReplaceArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testLazy SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testLazyCanAcceptShortClosure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testLazyThrowsExceptionWhenConstructorIsNotCalled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testLazyCanAcceptHashForProperties SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testLazyCanAcceptListForProperties SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testLazyCanAcceptSingleValueForConstructor SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testLazySupportsPositionAndNamedArguments SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testLazyThrowsWhenPositionalArgumentsComeAfterNamedArguments SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testLazyCanReturnInitializedObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testLazyMustInitilizeObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testLazyCanEagerlySetProperties SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testClosureOnlyLazy SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testClosureOnlyLazyCanAcceptShortClosure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testClosureOnlyLazyThrowsExceptionWhenConstructorIsNotCalled SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testClosureOnlyLazyThrowsWhenNotClassSpecifiedInClosure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testClosureOnlyLazyCanAcceptHashForProperties SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testClosureOnlyLazyCanAcceptListForProperties SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testClousureOnlyLazyCanAcceptSingleValueForConstructor SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testClosureOnlyLazySupportsPositionAndNamedArguments SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testClosureOnlyLazyThrowsWhenPositionalArgumentsComeAfterNamedArguments SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testClosureOnlyLazyCanReturnInitializedObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testClosureOnlyLazyMustInitilizeObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testProxy SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testProxyCanEagerlySetProperties SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testProxyCanEagerlySetPropertiesAndThenAlsoSetThemOnActualObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testProxyCanAcceptShortClosure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: extends::testProxyThrowsExceptionWhenObjectIsNotReturned SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: compatible::testProxyMustNotInitilizeProxy SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: compatible::testClosureOnlyProxy SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: compatible::testClosureOnlyProxyCanAcceptShortClosure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: compatible::testClosureOnlyProxyThrowsExceptionWhenObjectIsNotReturned SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: compatible::testClosureOnlyProxyThrowsWhenNotClassSpecifiedInClosure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: compatible::testClosureOnlyProxyMustNotInitilizeProxy SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: compatible::testProxyCanUseClosureReturnTypeForClassDetection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportHtmlStringTest::testToHtml SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportHtmlStringTest::testToString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportHtmlStringTest::testIsEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportHtmlStringTest::testIsNotEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportJsTest::testScalars SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportJsTest::testArrays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportJsTest::testObjects SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportJsTest::testJsonSerializable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportJsTest::testJsonable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportJsTest::testArrayable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportJsTest::testHtmlable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testBackedEnums SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testMakeWithClosureIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testMakeWithLazyCollectionIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testEagerEnumeratesOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testChunkIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testChunkWhileIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testCollapseIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testCombineIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testConcatIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testMultiplyIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testContainsIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testDoesntContainIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testContainsStrictIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testCountEnumeratesOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testCountByIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testCrossJoinIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testDiffIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testDiffAssocIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testDiffAssocUsingIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testDiffKeysIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testDiffKeysUsingIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testDiffUsingIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testDuplicatesIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testDuplicatesStrictIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testEachIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testEachSpreadIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testEveryIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testExceptIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testFilterIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testFirstIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testFirstWhereIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testFlatMapIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testFlattenIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testFlipIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testForPageIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testGetIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testGroupByIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testHasIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testHasAnyIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testImplodeEnumeratesOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testIntersectIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testIntersectUsingIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testIntersectAssocIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testIntersectAssocUsingIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testIntersectByKeysIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testIsEmptyIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testIsNotEmptyIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testContainsOneItemIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testJoinIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testJsonSerializeEnumeratesOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testKeyByIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testKeysIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testLastEnumeratesOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testMapIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testMapIntoIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testMapSpreadIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testMapToDictionaryIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testMapToGroupsIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testMapWithKeysIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testMaxEnumeratesOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testMedianEnumeratesOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testAvgEnumeratesOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testMergeIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testMergeRecursiveIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testMinEnumeratesOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testModeEnumeratesOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testNthIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testOnlyIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testPadIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testPartitionEnumeratesOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testPipeDoesNotEnumerate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testPluckIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testRandomEnumeratesOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testRangeIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testReduceIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testReduceSpreadIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testRejectIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testRememberIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testReplaceIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testReplaceRecursiveIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testReverseIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testSearchIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testShuffleIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testSlidingIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testSkipIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testSkipUntilIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testSkipWhileIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testSliceIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testFindFirstOrFailIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testSomeIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testSoleIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testSortIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testSortDescIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testSortByIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testSortByDescIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testSortKeysIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testSortKeysDescIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testSplitIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testSumEnumeratesOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testTakeIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testTakeUntilIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testTakeUntilTimeoutIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testTakeWhileIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testTapDoesNotEnumerate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testTapEachIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testThrottleIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testTimesIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testToArrayEnumeratesOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testToJsonEnumeratesOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testUnionIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testUniqueIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testUniqueStrictIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testUnlessDoesNotEnumerate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testUnlessEmptyIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testUnlessNotEmptyIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testUnwrapEnumeratesOne SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testValuesIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testWhenDoesNotEnumerate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testWhenEmptyIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testWhenNotEmptyIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testWhereIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testWhereBetweenIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testWhereInIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testWhereInstanceOfIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testWhereInStrictIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testWhereNotBetweenIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testWhereNotInIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testWhereNotInStrictIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testWhereNotNullIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testWhereNullIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testWhereStrictIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testWithHeartbeatIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testWrapIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionIsLazyTest::testZipIsLazy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testCanCreateEmptyCollection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testCanCreateCollectionFromArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testCanCreateCollectionFromArrayable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testCanCreateCollectionFromGeneratorFunction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testCanCreateCollectionFromNonGeneratorFunction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testDoesNotCreateCollectionFromGenerator SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testEager SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testRemember SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testRememberWithTwoRunners SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testRememberWithDuplicateKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testTakeUntilTimeout SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testTapEach SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testThrottle SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testThrottleAccountsForTimePassed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testUniqueDoubleEnumeration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testAfter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testBefore SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testShuffle SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testCollapseWithKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testContainsOneItem SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testDoesntContain SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testDot SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportLazyCollectionTest::testWithHeartbeat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMacroableTest::testRegisterMacro SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMacroableTest::testHasMacro SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMacroableTest::testRegisterMacroAndCallWithoutStatic SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMacroableTest::testWhenCallingMacroClosureIsBoundToObject SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMacroableTest::testClassBasedMacros SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMacroableTest::testClassBasedMacrosNoReplace SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMacroableTest::testFlushMacros SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMacroableTest::testFlushMacrosStatic SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMacroableTest::testMacroWithArguments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMacroableTest::testMacroWithDefaultArguments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMacroableTest::testCallingUndefinedMacroThrowsException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMacroableTest::testMethodConflictDoesNotThrowException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMailTest::testItRegisterAndCallMacros SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportMailTest::testItRegisterAndCallMacrosWhenFaked SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportMailTest::testEmailSent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportMaintenanceModeTest::testExtends SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testUniqueness SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testMessagesAreAdded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testMessagesMayBeMerged SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testMessageBagsCanBeMerged SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testMessageBagsCanConvertToArrays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testGetReturnsArrayOfMessagesByKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testGetReturnsArrayOfMessagesByImplicitKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testFirstReturnsSingleMessage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testFirstReturnsEmptyStringIfNoMessagesFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testFirstReturnsSingleMessageFromDotKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testHasIndicatesExistence SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testMissingIndicatesNonExistence SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testAddIf SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testForget SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testHasWithKeyNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testHasAnyIndicatesExistence SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testHasAnyWithKeyNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testHasIndicatesExistenceOfAllKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testHasIndicatesNoneExistence SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testAllReturnsAllMessages SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testFormatIsRespected SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testUnique SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testMessageBagReturnsCorrectArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testMessageBagReturnsExpectedJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testMessageBagReturnsExpectedPrettyJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testCountReturnsCorrectValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testCountable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testConstructor SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testFirstFindsMessageForWildcardKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testIsEmptyTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testIsEmptyFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testIsNotEmptyTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testIsNotEmptyFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testToString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testGetFormat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportMessageBagTest::testConstructorUniquenessConsistency SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNamespacedItemResolverTest::testResolution SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNamespacedItemResolverTest::testParsedItemsAreCached SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNamespacedItemResolverTest::testParsedItemsMayBeFlushed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testDefaultLocale SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testDefaultCurrency SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testFormat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testFormatWithDifferentLocale SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testFormatWithAppLocale SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testSpellout SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testSpelloutWithLocale SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testSpelloutWithThreshold SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testOrdinal SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testSpellOrdinal SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testToPercent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testToCurrency SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testToCurrencyWithDifferentLocale SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testBytesToHuman SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testClamp SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testToHuman SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testSummarize SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testPairs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testTrim SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testParse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testParseInt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportNumberTest::testParseFloat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportOptionalTest::testGetExistItemOnObject SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportOptionalTest::testGetNotExistItemOnObject SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportOptionalTest::testIssetExistItemOnObject SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportOptionalTest::testIssetNotExistItemOnObject SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportOptionalTest::testGetExistItemOnArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportOptionalTest::testGetNotExistItemOnArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportOptionalTest::testIssetExistItemOnArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportOptionalTest::testIssetNotExistItemOnArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportOptionalTest::testIssetExistItemOnNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportPluralizerTest::testBasicSingular SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportPluralizerTest::testBasicPlural SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportPluralizerTest::testCaseSensitiveSingularUsage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportPluralizerTest::testCaseSensitiveSingularPlural SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportPluralizerTest::testIfEndOfWordPlural SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportPluralizerTest::testPluralWithNegativeCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportPluralizerTest::testPluralStudly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportPluralizerTest::testPluralStudlyWithCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportPluralizerTest::testPluralNotAppliedForStringEndingWithNonAlphanumericCharacter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportPluralizerTest::testPluralAppliedForStringEndingWithNumericCharacter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportPluralizerTest::testPluralSupportsArrays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportPluralizerTest::testPluralSupportsCollections SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportPluralizerTest::testPluralStudlySupportsArrays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportPluralizerTest::testPluralStudlySupportsCollections SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportReflectorTest::testGetClassName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportReflectorTest::testEmptyClassName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportReflectorTest::testStringTypeName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportReflectorTest::testSelfClassName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportReflectorTest::testParentClassName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportReflectorTest::testParameterSubclassOfInterface SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportReflectorTest::testUnionTypeName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportReflectorTest::testIsCallable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportReflectorTest::testGetClassAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportReflectorTest::testGetClassAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportReflectsClosuresTest::testReflectsClosures SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportReflectsClosuresTest::testItReturnsTheFirstParameterType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportReflectsClosuresTest::testItThrowsWhenNoParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportReflectsClosuresTest::testItThrowsWhenNoFirstParameterType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportReflectsClosuresTest::testItWorksWithUnionTypes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportReflectsClosuresTest::testItWorksWithUnionTypesWithNoTypeHints SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportReflectsClosuresTest::testItWorksWithUnionTypesWithNoArguments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportServiceProviderTest::testPublishableServiceProviders SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportServiceProviderTest::testPublishableGroups SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportServiceProviderTest::testSimpleAssetsArePublishedCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportServiceProviderTest::testMultipleAssetsArePublishedCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportServiceProviderTest::testSimpleTaggedAssetsArePublishedCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportServiceProviderTest::testMultipleTaggedAssetsArePublishedCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportServiceProviderTest::testMultipleTaggedAssetsAreMergedCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportServiceProviderTest::testPublishesMigrations SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportServiceProviderTest::testLoadTranslationsFromWithoutNamespace SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportServiceProviderTest::testLoadTranslationsFromWithNamespace SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportServiceProviderTest::test_can_remove_provider SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testClassBasename SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testIsAscii SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testIsUrl SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testIsUuid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testIsUlid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testIsJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testIsMatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testIsEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testIsNotEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testPluralStudly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testPluralPascal SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testMatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testTake SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testTest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testTrim SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testLtrim SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testRtrim SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testCanBeLimitedByWords SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testUcwords SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testUnless SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testWhenContains SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testWhenContainsAll SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testDedup SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testDirname SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testUcsplitOnStringable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testWhenEndsWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testWhenDoesntEndWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testWhenExactly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testWhenNotExactly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testWhenIs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testWhenIsAscii SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testWhenIsUuid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testWhenIsUlid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testWhenTest SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testWhenStartsWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testWhenDoesntStartWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testWhenEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testWhenNotEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testWhenFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testWhenTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testUnlessTruthy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testUnlessFalsy SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testTrimmedOnlyWhereNecessary SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testTitle SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testWithoutWordsDoesntProduceError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testAscii SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testTransliterate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testNewLine SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testAsciiWithSpecificLocale SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testStartsWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testDoesntStartWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testEndsWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testDoesntEndWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testExcerpt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testBefore SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testBeforeLast SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testBetween SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testBetweenFirst SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testAfter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testAfterLast SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testContains SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testContainsAll SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testDoesntContain SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testParseCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testSlug SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testSquish SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testStart SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testFinish SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testIs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testIsWithMultilineStrings SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testKebab SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testLower SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testUpper SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testLimit SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testLength SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testReplace SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testReplaceArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testReplaceFirst SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testReplaceStart SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testReplaceLast SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testReplaceEnd SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testRemove SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testReverse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testSnake SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testStudly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testPascal SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testCamel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testCharAt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testSubstr SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testSwap SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testSubstrCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testPosition SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testSubstrReplace SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testPadBoth SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testPadLeft SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testPadRight SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testExplode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testChunk SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testJsonSerialize SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testTap SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testPipe SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStringableTest::testMarkdown SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testInlineMarkdown SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testMask SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testRepeat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testWordCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testWrap SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testUnwrap SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testToHtmlString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testStripTags SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testReplaceMatches SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testScan SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testGet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testExactly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testToInteger SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testToFloat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testBooleanMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testNumbers SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testToDate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testToDateThrowsException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testToUri SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testArrayAccess SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testToBase64 SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testFromBase64 SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testHash SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testEncryptAndDecrypt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStringCanBeLimitedByWords SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStringCanBeLimitedByWordsNonAscii SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStringTrimmedOnlyWhereNecessary SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStringTitle SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStringHeadline SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStringApa SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStringWithoutWordsDoesntProduceError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStringAscii SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStringAsciiWithSpecificLocale SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStartsWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testDoesntStartWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testEndsWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testDoesntEndWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStrExcerpt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStrBefore SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStrBeforeLast SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStrBetween SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStrBetweenFirst SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStrAfter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStrAfterLast SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStrContains SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStrContainsAll SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStrDoesntContain SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testConvertCase SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testDedup SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testParseCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testSlug SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStrStart SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testFlushCache SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testFinish SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testWrap SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testWrapEdgeCases SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testUnwrap SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testIs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testIsWithMultilineStrings SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testIsUrl SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testIsUuidWithValidUuid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testIsUuidWithInvalidUuid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testIsUuidWithVersion SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testIsJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testIsMatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testKebab SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testLower SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testUpper SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testLimit SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testLength SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testNumbers SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testRandom SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testWhetherTheNumberOfGeneratedCharactersIsEquallyDistributed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testRandomStringFactoryCanBeSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testItCanSpecifyASequenceOfRandomStringsToUtilise SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testItCanSpecifyAFallbackForARandomStringSequence SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testReplace SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testReplaceArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testReplaceFirst SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testReplaceStart SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testReplaceLast SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testReplaceEnd SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testRemove SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testReverse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testSnake SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testTrim SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testLtrim SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testRtrim SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testSquish SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testStudly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testPascal SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testMask SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testMatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testCamel SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testCharAt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testSubstr SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testSubstrCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testPosition SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testSubstrReplace SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testSubstrReplaceWithMultibyte SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testTake SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testLcfirst SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testUcfirst SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testUcwords SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testUcsplit SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testUuid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testAsciiNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testPadBoth SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testPadLeft SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testPadRight SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testSwapKeywords SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testWordCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testWordWrap SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testMarkdown SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testInlineMarkdown SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testRepeat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testRepeatWhenTimesIsNegative SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testTransliterate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testTransliterateOverrideUnknown SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testTransliterateStrict SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testItCanFreezeUuids SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testItCanFreezeUuidsInAClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testItCreatesUuidsNormallyAfterFailureWithinFreezeMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testItCanSpecifyASequenceOfUuidsToUtilise SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testItCanSpecifyAFallbackForASequence SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testItCanFreezeUlids SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testItCanFreezeUlidsInAClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testItCreatesUlidsNormallyAfterFailureWithinFreezeMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testItCanSpecifyASequenceOfUlidsToUtilise SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testItCanSpecifyAFallbackForAUlidSequence SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testPasswordCreation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testToBase64 SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testFromBase64 SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testChopStart SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testChopEnd SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testReplaceMatches SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testPlural SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportStrTest::testPluralPascal SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTappableTest::testTappableClassWithCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTappableTest::testTappableClassWithInvokableClass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTappableTest::testTappableClassWithNoneInvokableClass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTappableTest::testTappableClassWithoutCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testItUsesCustomBusRepository SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatched SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedWithClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedAfterResponse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedAfterResponseClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedSync SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedSyncClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedNow SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedWithCallbackInt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedAfterResponseWithCallbackInt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedSyncWithCallbackInt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedWithCallbackFunction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedAfterResponseWithCallbackFunction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedAfterResponseTimesWithCallbackFunction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedSyncWithCallbackFunction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedTimes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedTimesWithCallbackFunction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedAfterResponseTimes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedSyncTimes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedSyncTimesWithCallbackFunction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertNotDispatched SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertNotDispatchedWithClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertNotDispatchedAfterResponse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertNotDispatchedAfterResponseClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertNotDispatchedSync SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertNotDispatchedSyncClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertNothingDispatched SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertChained SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertNothingChained SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertNothingChainedFails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedWithIgnoreClass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testDispatchedFakingOnlyGivenJobs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertDispatchedWithIgnoreCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertNothingBatched SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertNothingPlacedPasses SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertNothingPlacedWhenJobBatched SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertNothingPlacedWhenJobDispatched SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertNothingPlacedWhenJobChained SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testAssertNothingPlacedWhenJobDispatchedNow SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testFindBatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testBatchesCanBeCancelled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testDispatchFakeBatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testIncrementFailedJobsInFakeBatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testDecrementPendingJobsInFakeBatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testCanSerializeAndRestoreCommands SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingBusFakeTest::testCanSerializeAndRestoreCommandsInBatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingEventFakeTest::testAssertDispatched SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingEventFakeTest::testAssertDispatchedWithClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingEventFakeTest::testAssertListening SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingEventFakeTest::testAssertDispatchedWithCallbackInt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingEventFakeTest::testAssertDispatchedOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingEventFakeTest::testAssertDispatchedTimes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingEventFakeTest::testAssertNotDispatched SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingEventFakeTest::testAssertNotDispatchedWithClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingEventFakeTest::testAssertDispatchedWithIgnore SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingEventFakeTest::testAssertNothingDispatched SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertSent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertSentTo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertSentToMultiple SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertSentWhenRecipientHasPreferredLocale SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertTo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertCc SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertBcc SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertNotSent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertNotSentWithClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertNotSentWithString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertNotSentWithArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertSentTimes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertSentCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertQueued SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertQueuedTo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertQueuedToMultiple SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertQueuedTimes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertNotQueuedWithString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertNotQueuedWithArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertQueuedCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testSendQueuesAMailableThatShouldBeQueued SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertNothingSent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertNothingQueued SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertOutgoingCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertQueuedWithClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertSentWithClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testMissingMethodsAreForwarded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingMailFakeTest::testAssertMailer SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingNotificationFakeTest::testAssertSentTo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingNotificationFakeTest::testAssertSentToClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingNotificationFakeTest::testAssertSentOnDemand SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingNotificationFakeTest::testAssertSentOnDemandClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingNotificationFakeTest::testAssertNotSentTo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingNotificationFakeTest::testAssertNotSentToClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingNotificationFakeTest::testAssertNothingSent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingNotificationFakeTest::testAssertNothingSentTo SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingNotificationFakeTest::testAssertSentToFailsForEmptyArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingNotificationFakeTest::testAssertSentToFailsForEmptyCollection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingNotificationFakeTest::testResettingNotificationId SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingNotificationFakeTest::testAssertSentTimes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingNotificationFakeTest::testAssertSentToTimes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingNotificationFakeTest::testAssertSentOnDemandTimes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingNotificationFakeTest::testAssertSentToWhenNotifiableHasPreferredLocale SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingNotificationFakeTest::testAssertSentToWhenNotifiableHasFalsyShouldSend SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingNotificationFakeTest::testAssertItCanSerializeAndRestoreNotifications SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertPushed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testItCanAssertAgainstDataWithPush SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertPushedWithIgnore SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertPushedWithClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testQueueSize SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertNotPushed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertNotPushedWithClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertPushedOn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertPushedOnWithClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertPushedTimes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertNothingPushed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertPushedUsingBulk SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertPushedWithChainUsingClassesOrObjectsArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertPushedWithoutChain SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertPushedWithChainSameJobDifferentChains SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertPushedWithChainUsingCallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertPushedWithChainErrorHandling SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testCallUndefinedMethodErrorHandling SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertClosurePushed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertClosurePushedWithTimes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertClosureNotPushed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testItDoesntFakeJobsPassedViaExcept SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testItCanSerializeAndRestoreJobs SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testItCanFakePushedJobsWithClassAndPayload SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertChainUsingClassesOrObjectsArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertNoChain SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testAssertChainErrorHandling SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testGetRawPushes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTestingQueueFakeTest::testPushedRaw SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportTimeboxTest::testMakeExecutesCallback SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportTimeboxTest::testMakeWaitsForMicroseconds SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportTimeboxTest::testMakeShouldNotSleepWhenEarlyReturnHasBeenFlagged SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportTimeboxTest::testMakeShouldSleepWhenDontEarlyReturnHasBeenFlagged SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportTimeboxTest::testMakeWaitsForMicrosecondsWhenExceptionIsThrown SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportTimeboxTest::testMakeShouldNotSleepWhenEarlyReturnHasBeenFlaggedAndExceptionIsThrown SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: SupportUriTest::test_can_build_special_urls SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportUriTest::test_basic_uri_interactions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportUriTest::test_complicated_query_string_parsing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportUriTest::test_uri_building SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportUriTest::test_complicated_query_string_manipulation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportUriTest::test_query_strings_with_dots_can_be_replaced_or_merged_consistently SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportUriTest::test_decoding_the_entire_uri SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportUriTest::test_with_query_if_missing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportUriTest::test_with_query_prevents_empty_query_string SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportUriTest::test_path_segments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportUriTest::test_macroable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportViewErrorBagTest::testHasBagTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportViewErrorBagTest::testHasBagFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportViewErrorBagTest::testGet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportViewErrorBagTest::testGetBagWithNew SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportViewErrorBagTest::testGetBags SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportViewErrorBagTest::testPut SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportViewErrorBagTest::testAnyTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportViewErrorBagTest::testAnyFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportViewErrorBagTest::testAnyFalseWithEmptyErrorBag SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportViewErrorBagTest::testCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportViewErrorBagTest::testCountWithNoMessagesInMessageBag SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportViewErrorBagTest::testCountWithNoMessageBags SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportViewErrorBagTest::testDynamicCallToDefaultMessageBag SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportViewErrorBagTest::testDynamicallyGetBag SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportViewErrorBagTest::testDynamicallyPutBag SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: SupportViewErrorBagTest::testToString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_can_access_input SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_can_merge_items SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_input_existence SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_exists_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_has_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_has_any_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_when_has_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_filled_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_is_not_filled_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_any_filled_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_when_filled_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_missing_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_when_missing_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_keys_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_all_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_input_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_str_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_string_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_boolean_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_integer_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_float_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_date_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_enum_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_enums_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_collect_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_only_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatedInputTest::test_except_method SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertRedirectToActionTest::testAssertRedirectToActionWithoutParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertRedirectToActionTest::testAssertRedirectToActionWithParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertRedirectToRouteTest::testAssertRedirectToRouteWithRouteName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertRedirectToRouteTest::testAssertRedirectToRouteWithRouteNameAndParams SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertRedirectToRouteTest::testAssertRedirectToRouteWithRouteNameAndParamsWhenRouteUriIsEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertRedirectToSignedRouteTest::testAssertRedirectToSignedRouteWithoutRouteName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertRedirectToSignedRouteTest::testAssertRedirectToSignedRouteWithRouteName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertRedirectToSignedRouteTest::testAssertRedirectToSignedRouteWithRouteNameAndParams SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertRedirectToSignedRouteTest::testAssertRedirectToSignedRouteWithRouteNameToTemporarySignedRoute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testArraySubset SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testArraySubsetMayFail SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testArraySubsetWithStrict SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testArraySubsetWithStrictMayFail SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testArraySubsetMayFailIfArrayIsNotArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testArraySubsetMayFailIfSubsetIsNotArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: InteractsWithDatabaseTest::testCastToJsonSqlite SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: InteractsWithDatabaseTest::testCastToJsonPostgres SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: InteractsWithDatabaseTest::testCastToJsonSqlServer SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: InteractsWithDatabaseTest::testCastToJsonMySql SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: InteractsWithDatabaseTest::testCastToJsonMariaDb SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: InteractsWithDeprecationHandlingTest::testWithDeprecationHandling SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: InteractsWithDeprecationHandlingTest::testWithoutDeprecationHandling SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TestDatabasesTest::testSwitchToDatabaseWithoutUrl SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestDatabasesTest::testSwitchToDatabaseWithUrl SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ConfigShowCommandTest::testDisplayConfig SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConfigShowCommandTest::testDisplayNestedConfigItems SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConfigShowCommandTest::testDisplaySingleValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ConfigShowCommandTest::testDisplayErrorIfConfigDoesNotExist SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteListCommandTest::testDisplayRoutesForCli SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteListCommandTest::testDisplayRoutesForCliInVerboseMode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteListCommandTest::testRouteCanBeFilteredByName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteListCommandTest::testRouteCanBeFilteredByAction SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: RouteListCommandTest::testDisplayRoutesExceptVendor SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertHas SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertHasFailsWhenPropMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertHasNestedProp SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertHasFailsWhenNestedPropMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertHasCountItemsInProp SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertHasCountFailsWhenAmountOfItemsDoesNotMatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertHasCountFailsWhenPropMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertHasFailsWhenSecondArgumentUnsupportedType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertHasOnlyCounts SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertHasOnlyCountFails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertHasOnlyCountFailsScoped SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertHasWithWhereNotDoesNotFail SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertHasWithWhereNotFails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertHasWithWhereNotDoesNotFailClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertHasWithWhereNotFailsClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertCountFails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertCountFailsScoped SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertBetween SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertBetweenFails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertBetweenLowestValueFails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertBetweenFailsScoped SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertMissingFailsWhenPropExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertMissingAll SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertMissingAllFailsWhenAtLeastOnePropExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertMissingAllAcceptsMultipleArgumentsInsteadOfArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereMatchesValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereFailsWhenDoesNotMatchValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereFailsWhenMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereFailsWhenMatchingLoosely SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereUsingClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereFailsWhenDoesNotMatchValueUsingClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereClosureArrayValuesAreAutomaticallyCastedToCollections SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereMatchesValueUsingArrayable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereMatchesValueUsingArrayableWhenSortedDifferently SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereFailsWhenDoesNotMatchValueUsingArrayable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereUsingBackedEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereFailsUsingBackedEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereNullMatchesValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereNullFailsWhenNotNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereNullFailsWhenMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereNotNullMatchesValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereNotNullFailsWhenNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereNotNullFailsWhenMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereContainsFailsWithEmptyValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereContainsFailsWithMissingValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereContainsFailsWithMissingNestedValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereContainsFailsWhenDoesNotMatchType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereContainsFailsWhenDoesNotSatisfyClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereContainsFailsWhenHavingExpectedValueButDoesNotSatisfyClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereContainsFailsWhenSatisfiesClosureButDoesNotHaveExpectedValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereContainsWithNestedValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereContainsWithMatchingType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereContainsWithNullValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereContainsWithOutOfOrderMatchingType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereContainsWithOutOfOrderNestedMatchingType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereContainsWithClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereContainsWithNestedClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereContainsWithMultipleClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereContainsWithNullExpectation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereContainsUsingBackedEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereContainsFailsUsingBackedEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertNestedWhereMatchesValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertNestedWhereFailsWhenDoesNotMatchValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertNestedWhereUsingBackedEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertNestedWhereFailsUsingBackedEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereDoesNotMatchValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereNotFailsWhenMatchingValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereNotFailsWhenNotMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereNotUsingClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereNotFailsWhenMatchesValueUsingClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereNotUsingBackedEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereNotFailsUsingBackedEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testScope SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testScopeFailsWhenPropMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testScopeFailsWhenPropSingleValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testScopeShorthand SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testScopeShorthandWithoutCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testScopeShorthandFailsWhenAssertingZeroItems SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testScopeShorthandFailsWhenAmountOfItemsDoesNotMatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testScopeShorthandFailsWhenAssertingEmptyArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testScopeShorthandFailsWhenAssertingEmptyArrayWithoutCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testScopeShorthandFailsWhenSecondArgumentUnsupportedType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testFirstScope SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testFirstScopeFailsWhenNoProps SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testFirstNestedScopeFailsWhenNoProps SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testFirstScopeFailsWhenPropSingleValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testEachScope SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testEachScopeFailsWhenNoProps SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testEachNestedScopeFailsWhenNoProps SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testEachScopeFailsWhenPropSingleValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testFailsWhenNotInteractingWithAllPropsInScope SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testDisableInteractionCheckForCurrentScope SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testCannotDisableInteractionCheckForDifferentScopes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testTopLevelPropInteractionDisabledByDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testTopLevelInteractionEnabledWhenInteractedFlagSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereAllMatchesValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereAllFailsWhenAtLeastOnePropDoesNotMatchValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereTypeString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereTypeInteger SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereTypeBoolean SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereTypeDouble SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereTypeArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereTypeNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereAllType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereTypeWhenWrongTypeIsGiven SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereTypeWithUnionTypes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereTypeWhenWrongUnionTypeIsGiven SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereTypeWithPipeInUnionType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertWhereTypeWithPipeInWrongUnionType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertHasAll SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertHasAllFailsWhenAtLeastOnePropMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertHasAllAcceptsMultipleArgumentsInsteadOfArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertCountMultipleProps SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testAssertCountMultiplePropsFailsWhenPropMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testMacroable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: AssertTest::testTappable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ParallelConsoleOutputTest::testWrite SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ParallelTestingTest::testCallbacks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ParallelTestingTest::testOptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ParallelTestingTest::testToken SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertViewIs SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertViewHas SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertViewHasModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertViewHasWithClosure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertViewHasWithValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertViewHasNested SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertViewHasWithNestedValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertViewHasEloquentCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertViewHasEloquentCollectionRespectsOrder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertViewHasEloquentCollectionRespectsType SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertViewHasEloquentCollectionRespectsSize SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertViewHasWithArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertViewHasAll SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertViewMissing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertViewMissingNested SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertContent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertStreamedAndAssertNotStreamed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertStreamedContent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertStreamedJsonContent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testJsonAssertionsOnStreamedJsonContent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSee SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSeeCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSeeEscaped SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSeeEscapedCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSeeHtml SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSeeHtmlCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSeeInOrder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSeeInOrderCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSeeInOrderCanFail2 SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSeeHtmlInOrder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSeeHtmlInOrderCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSeeHtmlInOrderCanFail2 SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSeeText SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSeeTextCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSeeTextEscaped SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSeeTextEscapedCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSeeTextInOrder SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSeeTextInOrderEscaped SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSeeTextInOrderCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSeeTextInOrderCanFail2 SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertDontSee SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertDontSeeCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertDontSeeEscaped SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertDontSeeEscapedCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertDontSeeHtml SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertDontSeeHtmlCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertDontSeeText SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertDontSeeTextCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertDontSeeTextEscaped SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertDontSeeTextEscapedCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertOk SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertCreated SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertNotFound SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertMethodNotAllowed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertNotAcceptable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertForbidden SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertUnauthorized SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertBadRequest SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertRequestTimeout SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertPaymentRequired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertMovedPermanently SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertFound SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertNotModified SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertTemporaryRedirect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertPermanentRedirect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertConflict SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertGone SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertTooManyRequests SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertAccepted SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertUnprocessable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertFailedDependency SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertClientError SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertServerError SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertInternalServerError SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertServiceUnavailable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertNoContentAsserts204StatusCodeByDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertNoContentAssertsExpectedStatusCode SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertNoContentAssertsEmptyContent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertStatus SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertHeader SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertHeaderMissing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertPrecognitionSuccessfulWithMissingHeader SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertPrecognitionSuccessfulWithIncorrectValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonWithArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonWithNull SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonWithFluent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonWithFluentFailsWhenNotInteractingWithAllProps SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonWithFluentSkipsInteractionWhenTopLevelKeysNonAssociative SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonWithFluentHasAnyThrows SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonWithFluentHasAnyPasses SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSimilarJsonWithMixed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertExactJsonWithMixedWhenDataIsExactlySame SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertExactJsonWithMixedWhenDataIsSimilar SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonPath SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonPathCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonPathWithClosure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonPathWithClosureCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonPathWithEnum SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonPathWithEnumCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonPathCanonicalizing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonPathCanonicalizingCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonFragment SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonFragments SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonFragmentCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonFragmentUnicodeCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonStructure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertExactJsonStructure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonCount SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonMissing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonMissingExact SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonMissingExactCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonMissingExactCanFail2 SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonMissingPath SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonMissingPathCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonMissingPathCanFail2 SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonMissingPathCanFail3 SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonValidationErrors SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertOnlyJsonValidationErrors SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonValidationErrorsUsingAssertOnlyInvalid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSessionOnlyValidationErrorsUsingAssertOnlyInvalid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonValidationErrorsUsingAssertInvalid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSessionValidationErrorsUsingAssertInvalid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSessionValidationErrorsUsingAssertValid SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertingKeyIsInvalidErrorMessage SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testInvalidWithListOfErrors SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonValidationErrorsCustomErrorsName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonValidationErrorsCustomNestedErrorsName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonValidationErrorsCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonValidationErrorsCanFailWhenThereAreNoErrors SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonValidationErrorsFailsWhenGivenAnEmptyArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonValidationErrorsWithArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonValidationErrorMessages SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonValidationErrorContainsMessages SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonValidationErrorMessagesCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonValidationErrorMessageKeyCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonValidationErrorMessagesMultipleMessages SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonValidationErrorMessagesMultipleMessagesCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonValidationErrorMessagesMixed SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonValidationErrorMessagesMixedCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonValidationErrorMessagesMultipleErrors SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonValidationErrorMessagesMultipleErrorsCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonMissingValidationErrors SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonMissingValidationErrorsCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonMissingValidationErrorsCanFail2 SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonMissingValidationErrorsCanFail3 SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonMissingValidationErrorsWithoutArgument SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonMissingValidationErrorsWithoutArgumentWhenErrorsIsEmpty SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonMissingValidationErrorsWithoutArgumentCanFail SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonMissingValidationErrorsOnInvalidJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonMissingValidationErrorsCustomErrorsName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonMissingValidationErrorsNestedCustomErrorsName1 SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonMissingValidationErrorsNestedCustomErrorsName2 SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonIsArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonIsNotArray SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonIsObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonIsNotObject SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertDownloadOffered SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertDownloadOfferedWithAFileName SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertDownloadOfferedWorksWithBinaryFileResponse SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertDownloadOfferedFailsWithInlineContentDisposition SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertDownloadOfferedWithAFileNameWithSpacesInIt SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testMacroable SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testCanBeCreatedFromBinaryFileResponses SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testJsonHelper SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testResponseCanBeReturnedAsCollection SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testItCanBeTapped SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertPlainCookie SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertCookie SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertCookieExpired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSessionCookieExpiredDoesNotTriggerOnSessionCookies SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertCookieNotExpired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSessionCookieNotExpired SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertCookieMissing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertLocation SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertRedirectContains SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertHeaderContainsSuccess SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertHeaderContainsFailure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertRedirect SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertRedirectBack SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testGetDecryptedCookie SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSessionHasErrors SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertJsonSerializedSessionHasErrors SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSessionDoesntHaveErrors SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSessionHasNoErrors SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSessionHas SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSessionMissing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSessionMissingValueIsPresent SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSessionMissingValueIsPresentClosure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSessionMissingValueIsMissing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSessionMissingValueIsMissingClosure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testAssertSessionHasInput SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testGetEncryptedCookie SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testHandledExceptionIsIncludedInAssertionFailure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testValidationErrorsAreIncludedInAssertionFailure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testJsonErrorsAreIncludedInAssertionFailure SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testItHandlesFalseJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TestResponseTest::testItHandlesEncodedJson SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: TranslationFileLoaderTest::testLoadMethodLoadsTranslationsFromAddedPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationFileLoaderTest::testLoadMethodHandlesMissingAddedPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationFileLoaderTest::testLoadMethodOverwritesExistingKeysFromAddedPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationFileLoaderTest::testLoadMethodLoadsTranslationsFromMultipleAddedPaths SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationFileLoaderTest::testLoadMethodWithoutNamespacesProperlyCallsLoader SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationFileLoaderTest::testLoadMethodWithoutNamespacesProperlyCallsLoaderWithMultiplePaths SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationFileLoaderTest::testLoadMethodWithNamespacesProperlyCallsLoader SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationFileLoaderTest::testLoadMethodWithNamespacesProperlyCallsLoaderWithMultiplePaths SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationFileLoaderTest::testLoadMethodWithNamespacesProperlyCallsLoaderAndLoadsLocalOverrides SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationFileLoaderTest::testLoadMethodWithNamespacesProperlyCallsLoaderAndLoadsLocalOverridesWithMultiplePaths SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationFileLoaderTest::testLoadMethodWithNamespacesProperlyCallsLoaderAndLoadsLocalOverridesWithMultiplePathsWithMissingKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationFileLoaderTest::testEmptyArraysReturnedWhenFilesDontExist SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationFileLoaderTest::testEmptyArraysReturnedWhenFilesDontExistForNamespacedItems SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationFileLoaderTest::testLoadMethodForJSONProperlyCallsLoader SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationFileLoaderTest::testLoadMethodForJSONProperlyCallsLoaderForMultiplePaths SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationFileLoaderTest::testLoadMethodThrowExceptionWhenProvideInvalidJSON SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationFileLoaderTest::testAllRegisteredNamespaceReturnProperly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationFileLoaderTest::testAllAddedJsonPathsReturnProperly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationFileLoaderTest::testAllAddedPathsReturnProperly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationMessageSelectorTest::testChoose SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testHasMethodReturnsFalseWhenReturnedTranslationIsNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testGetMethodProperlyLoadsAndRetrievesItem SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testGetMethodProperlyLoadsAndRetrievesArrayItem SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testGetMethodForNonExistingReturnsSameKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testTransMethodProperlyLoadsAndRetrievesItemWithHTMLInTheMessage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testGetMethodProperlyLoadsAndRetrievesItemWithCapitalization SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testGetMethodProperlyLoadsAndRetrievesItemWithLongestReplacementsFirst SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testGetMethodProperlyLoadsAndRetrievesItemForFallback SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testGetMethodProperlyLoadsAndRetrievesItemForGlobalNamespace SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testChoiceMethodProperlyLoadsAndRetrievesItemForAnInt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testChoiceMethodProperlyLoadsAndRetrievesItemForAFloat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testChoiceMethodProperlyCountsCollectionsAndLoadsAndRetrievesItem SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testChoiceMethodProperlySelectsLocaleForChoose SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testChoiceMethodProperlyUsesCustomCountReplacement SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testGetJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testGetJsonReplaces SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testGetJsonHasAtomicReplacements SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testGetJsonReplacesForAssociativeInput SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testGetJsonPreservesOrder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testGetJsonForNonExistingJsonKeyLooksForRegularKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testGetJsonForNonExistingJsonKeyLooksForRegularKeysAndReplace SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testGetJsonForNonExistingReturnsSameKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testGetJsonForNonExistingReturnsSameKeyAndReplaces SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testEmptyFallbacks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testGetJsonReplacesWithStringable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testGetJsonReplacesWithEnums SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testTagReplacements SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testTagReplacementsHandleMultipleOfSameTag SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: TranslationTranslatorTest::testDetermineLocalesUsingMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationAddFailureTest::testAddFailureExists SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationAddFailureTest::testAddFailureIsFunctional SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationAnyOfRuleTest::testBasicValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationAnyOfRuleTest::testBasicStringValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationAnyOfRuleTest::testTaggedUnionObjects SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationAnyOfRuleTest::testNestedValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationAnyOfRuleTest::testStarRuleSimple SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationAnyOfRuleTest::testStarRuleNested SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationAnyOfRuleTest::testCustomMessageUsingDotNotationAndFqcnWorks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationArrayRuleTest::testItCorrectlyFormatsAStringVersionOfTheRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationArrayRuleTest::testArrayValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDatabasePresenceVerifierTest::testBasicCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDatabasePresenceVerifierTest::testBasicCountWithClosures SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDatabasePresenceVerifierTest::testGetCountWithValidExcludeId SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDateRuleTest::testDefaultDateRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDateRuleTest::testDateFormatRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDateRuleTest::testAfterTodayRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDateRuleTest::testBeforeTodayRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDateRuleTest::testAfterSpecificDateRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDateRuleTest::testBeforeSpecificDateRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDateRuleTest::testAfterOrEqualSpecificDateRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDateRuleTest::testBeforeOrEqualSpecificDateRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDateRuleTest::testBetweenDatesRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDateRuleTest::testBetweenOrEqualDatesRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDateRuleTest::testChainedRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDateRuleTest::testDateValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDimensionsRuleTest::testItCorrectlyFormatsAStringVersionOfTheRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDimensionsRuleTest::testItCorrectlyFormatsWithSpecialValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDimensionsRuleTest::testDimensionsRuleMaintainsCorrectOrder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDimensionsRuleTest::testOverridingValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDimensionsRuleTest::testRatioBetweenOverridesMinAndMaxRatio SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationDimensionsRuleTest::testGeneratesTheCorrectValidationMessages SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testBasic SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testRfcCompliantStrict SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testValidateMxRecord SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testPreventSpoofing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testWithNativeValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testWithNativeValidationAllowUnicode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testRfcCompliantNonStrict SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testEmailsThatPassOnRfcCompliantButFailOnStrict SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testEmailsThatPassOnBothRfcCompliantAndStrict SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testEmailsThatFailOnBothRfcCompliantAndStrict SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testEmailsThatPassOnBothRfcCompliantAndRfcCompliantStrict SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testEmailsThatFailWithNativeValidationAsciiPassUnicode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testEmailsThatFailOnBothWithNativeValidationAsciiAndUnicode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testEmailsThatPassBothWithNativeValidationAsciiAndUnicode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testEmailsThatFailWithNativeValidationAsciiPassRfcCompliant SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testEmailsThatPassWithNativeValidationAndRfcCompliant SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testEmailsThatFailWithNativeValidationAndRfcCompliant SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testNativeValidationVsRfcCompliant SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testEmailsThatPassNativeValidationFailRfcCompliantStrict SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testEmailsThatFailNativeValidationPassRfcCompliantStrict SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testEmailsThatPassBothNativeValidationAndRfcCompliantStrict SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testEmailsThatFailBothNativeValidationAndRfcCompliantStrict SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testCombiningRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testMacro SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testItCanSetDefaultUsing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEmailRuleTest::testValidationMessages SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEnumRuleTest::testValidationPassesWhenPassingCorrectEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEnumRuleTest::testValidationPassesWhenPassingInstanceOfEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEnumRuleTest::testValidationPassesWhenPassingInstanceOfPureEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEnumRuleTest::testValidationFailsWhenProvidingNoExistingCases SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEnumRuleTest::testValidationPassesForAllCasesUntilEitherOnlyOrExceptIsPassed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEnumRuleTest::testValidationPassesWhenOnlyCasesProvided SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEnumRuleTest::testValidationPassesWhenExceptCasesProvided SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEnumRuleTest::testOnlyHasHigherOrderThanExcept SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEnumRuleTest::testValidationFailsWhenProvidingDifferentType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEnumRuleTest::testValidationPassesWhenProvidingDifferentTypeThatIsCastableToTheEnumType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEnumRuleTest::testValidationFailsWhenProvidingNull SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEnumRuleTest::testValidationPassesWhenProvidingNullButTheFieldIsNullable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEnumRuleTest::testValidationFailsOnPureEnum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEnumRuleTest::testValidationFailsWhenProvidingStringToIntegerType SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEnumRuleTest::testValidationFailsWhenUsingDifferentCase SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationEnumRuleTest::testCustomMessageUsingDotNotationAndFqcnWorks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationExceptionTest::testExceptionSummarizesZeroErrors SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationExceptionTest::testExceptionSummarizesOneError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationExceptionTest::testExceptionSummarizesTwoErrors SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationExceptionTest::testExceptionSummarizesThreeOrMoreErrors SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationExceptionTest::testExceptionTranslatedSummarizesTwoErrors SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationExceptionTest::testExceptionTranslatedSummarizesThreeOrMoreErrors SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationExceptionTest::testExceptionTranslatedSummarizesFiveOrMoreErrors SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationExceptionTest::testExceptionErrorZeroErrors SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationExceptionTest::testExceptionErrorOneError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationExceptionTest::testExceptionStatusOneError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationExceptionTest::testExceptionErrorBagOneError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationExceptionTest::testExceptionRedirectToOneError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationExceptionTest::testExceptionGetResponseOneError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationExceptionTest::testGetExceptionClassFromValidator SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationExcludeIfTest::testItReturnsStringVersionOfRuleWhenCast SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationExcludeIfTest::testItValidatesCallableAndBooleanAreAcceptableArguments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationExcludeIfTest::testItThrowsExceptionIfRuleIsNotSerializable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationExcludeIfTest::testExcludeIfRuleValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationExistsRuleTest::testItCorrectlyFormatsAStringVersionOfTheRule SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationExistsRuleTest::testItChoosesValidRecordsUsingWhereInRule SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationExistsRuleTest::testItChoosesValidRecordsUsingWhereNotInRule SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationExistsRuleTest::testItChoosesValidRecordsUsingConditionalModifiers SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationExistsRuleTest::testItChoosesValidRecordsUsingWhereNotInAndWhereNotInRulesTogether SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationExistsRuleTest::testItChoosesValidRecordsUsingWhereNotRule SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationExistsRuleTest::testItIgnoresSoftDeletes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationExistsRuleTest::testItOnlyTrashedSoftDeletes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationExistsRuleTest::testItIsAPartOfListRules SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFactoryTest::testMakeMethodCreatesValidValidator SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationFactoryTest::testValidateCallsValidateOnTheValidator SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationFactoryTest::testCustomResolverIsCalled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationFactoryTest::testValidateMethodCanBeCalledPublicly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationFactoryTest::testExcludeAndIncludeUnvalidatedArrayKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationFactoryTest::testSetContainer SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testBasic SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testSingleMimetype SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testMultipleMimeTypes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testSingleMime SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testMultipleMimes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testMixOfMimetypesAndMimes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testSingleExtension SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testMultipleExtensions SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testImage SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testImageFailsOnSvgByDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testSize SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testBetween SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testMin SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testMinWithHumanReadableSize SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testMax SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testMaxWithHumanReadableSize SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testMaxWithHumanReadableSizeAndMultipleValue SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testEncoding SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testEncodingWithInvalidParameter SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testMacro SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testItUsesTheCorrectValidationMessageForFile SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testItCanSetDefaultUsing SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationFileRuleTest::testFileSizeConversionWithDifferentUnits SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationForEachTest::testForEachCallbacksCanProperlySegmentRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationForEachTest::testForEachCallbacksCanBeRecursivelyNested SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationForEachTest::testForEachCallbacksCanReturnMultipleValidationRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationForEachTest::testForEachCallbacksCanReturnArraysOfValidationRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationForEachTest::testForEachCallbacksCanReturnDifferentRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationForEachTest::testForEachCallbacksDoNotBreakRegexRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationForEachTest::testForEachCallbacksCanContainMultipleRegexRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationForEachTest::testConditionalRulesCanBeAddedToForEachWithAssociativeArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationForEachTest::testConditionalRulesCanBeAddedToForEachWithList SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationForEachTest::testConditionalRulesCanBeAddedToForEachWithObject SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationForEachTest::testForEachWithEmptyAndNullValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationImageFileRuleTest::testDimensions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationImageFileRuleTest::testDimensionsWithCustomImageSizeMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationImageFileRuleTest::testDimensionWithTheRatioMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationImageFileRuleTest::testDimensionWithTheMinRatioMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationImageFileRuleTest::testDimensionWithTheMaxRatioMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationImageFileRuleTest::testDimensionWithTheRatioBetweenMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInArrayKeysTest::testInArrayKeysValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInArrayKeysTest::testInArrayKeysValidationWithNestedArrays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInArrayKeysTest::testInArrayKeysValidationErrorMessage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInRuleTest::testItCorrectlyFormatsAStringVersionOfTheRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInRuleTest::testInRuleValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInvokableRuleTest::testItCanPass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInvokableRuleTest::testItCanFail SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInvokableRuleTest::testItCanReturnMultipleErrorMessages SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInvokableRuleTest::testItCanTranslateMessages SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInvokableRuleTest::testItPerformsReplacementsWhenTranslating SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInvokableRuleTest::testItLooksForLanguageFileCustomisations SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInvokableRuleTest::testItCanSpecifyLocaleWhenTranslating SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInvokableRuleTest::testItCanAccessDataDuringValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInvokableRuleTest::testItCanAccessValidatorDuringValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInvokableRuleTest::testItCanBeExplicit SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInvokableRuleTest::testItCanBeImplicit SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInvokableRuleTest::testItIsExplicitByDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInvokableRuleTest::testItCanSpecifyTheValidationErrorKeyForTheErrorMessage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInvokableRuleTest::testItCanTranslateWithChoices SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInvokableRuleTest::testExplicitRuleCanUseInlineValidationMessages SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInvokableRuleTest::testImplicitRuleCanUseInlineValidationMessages SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationInvokableRuleTest::testItCanReturnInvokableRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationMacroTest::testMacroable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationMacroTest::testMacroArguments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationMacroTest::testMacroDefaultArguments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNotInRuleTest::testItCorrectlyFormatsAStringVersionOfTheRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNotInRuleTest::testNotInRuleValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNotPwnedVerifierTest::testEmptyValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNotPwnedVerifierTest::testApiResponseGoesWrong SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNotPwnedVerifierTest::testApiGoesDown SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNotPwnedVerifierTest::testDnsDown SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testDefaultNumericRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testBetweenRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testDecimalRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testDifferentRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testDigitsRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testDigitsBetweenRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testGreaterThanRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testGreaterThanOrEqualRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testIntegerRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testLessThanRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testLessThanOrEqualRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testMaxRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testMaxDigitsRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testMinRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testMinDigitsRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testMultipleOfRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testSameRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testSizeRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testChainedRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testNumericValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationNumericRuleTest::testUniquenessValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationPasswordRuleTest::testString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationPasswordRuleTest::testMin SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationPasswordRuleTest::testMax SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationPasswordRuleTest::testConditional SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationPasswordRuleTest::testMixedCase SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationPasswordRuleTest::testLetters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationPasswordRuleTest::testNumbers SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationPasswordRuleTest::testDefaultRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationPasswordRuleTest::testSymbols SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationPasswordRuleTest::testUncompromised SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationPasswordRuleTest::testMessagesOrder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationPasswordRuleTest::testItCanUseDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationPasswordRuleTest::testItCanSetDefaultUsing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationPasswordRuleTest::testItCannotSetDefaultUsingGivenString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationPasswordRuleTest::testItPassesWithValidDataIfTheSameValidationRulesAreReused SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationPasswordRuleTest::testCustomMessages SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationPasswordRuleTest::testPassesWithCustomRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCanRetrieveAllRulesApplied SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testRequired SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testSometimes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testRequiredWithMissingValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testNullableWithEmptyString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testItCanReturnsAsUnpackedArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationProhibitedIfTest::testItReturnsStringVersionOfRuleWhenCast SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationProhibitedIfTest::testItValidatesCallableAndBooleanAreAcceptableArguments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationProhibitedIfTest::testItThrowsExceptionIfRuleIsNotSerializable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationProhibitedIfTest::testProhibitedIfRuleValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationRequiredIfTest::testItClosureReturnsFormatsAStringVersionOfTheRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationRequiredIfTest::testItOnlyCallableAndBooleanAreAcceptableArgumentsOfTheRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationRequiredIfTest::testItReturnedRuleIsNotSerializable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationRequiredIfTest::testRequiredIfRuleValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationRuleCanTest::testValidationFails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationRuleCanTest::testValidationPasses SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationRuleCanTest::testCustomMessageUsingDotNotationAndFqcnWorks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationRuleContainsTest::testItCorrectlyFormatsAStringVersionOfTheRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationRuleContainsTest::testContainsValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationRuleDoesntContainTest::testItCorrectlyFormatsAStringVersionOfTheRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationRuleDoesntContainTest::testDoesntContainValidation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testConditionalRulesAreProperlyExpandedAndFiltered SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testEmptyRulesArePreserved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testEmptyRulesCanBeExploded SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testConditionalRulesWithDefault SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testEmptyConditionalRulesArePreserved SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testExplodeFailsParsingSingleRegexRuleContainingPipe SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testExplodeProperlyParsesSingleRegexRuleNotContainingPipe SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testExplodeProperlyParsesRegexWithArrayOfRules SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testExplodeProperlyParsesRegexThatDoesNotContainPipe SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testExplodeFailsParsingRegexWithOtherRulesInSingleString SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testExplodeGeneratesNestedRules SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testExplodeGeneratesNestedRulesForNonNestedData SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testExplodeHandlesForwardSlashesInWildcardRule SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testExplodeHandlesArraysOfNestedRules SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testExplodeHandlesRecursivelyNestedRules SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testExplodeHandlesSegmentingNestedRules SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testExplodeHandlesStringDateRule SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testExplodeHandlesDateRule SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testExplodeHandlesDateRuleWithAdditionalRules SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testExplodeHandlesNumericStringRule SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testExplodeHandlesNumericRule SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationRuleParserTest::testExplodeHandlesNumericRuleWithAdditionalRules SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationUniqueRuleTest::testItCorrectlyFormatsAStringVersionOfTheRule SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationUniqueRuleTest::testItIgnoresSoftDeletes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationUniqueRuleTest::testItOnlyTrashedSoftDeletes SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationUniqueRuleTest::testItHandlesNullPrimaryKeyInIgnoreModel SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationUniqueRuleTest::testItHandlesWhereWithSpecialValues SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationUniqueRuleTest::testItValidatesUniqueRuleWithWhereInAndWhereNotIn SAFETY: FAIL QUALITY: PASS KB_ELIGIBLE: NO QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testNestedErrorMessagesAreRetrievedFromLocalArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testNestedArrayErrorMessagesAreRetrievedFromLocalArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testSometimesWorksOnNestedArrays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testAfterCallbacksAreCalledWithValidatorInstance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testSometimesWorksOnArrays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testValidateThrowsOnFail SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testValidateDoesntThrowOnPass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testValidatedThrowsOnFail SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testValidatedThrowsOnFailEvenAfterPassesCall SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testValidatedDoesntThrowOnPass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testHasFailedValidationRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testFailingOnce SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testHasNotFailedValidationRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testSometimesCanSkipRequiredRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testInValidatableRulesReturnsValid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testValidateUsingNestedValidationRulesPasses SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testValidateEmptyStringsAlwaysPasses SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testEmptyExistingAttributesAreValidated SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testNullable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testArrayNullableWithUnvalidatedArrayKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testNullableMakesNoDifferenceIfImplicitRuleExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testProperLanguageLineIsSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testCustomReplacersAreCalled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testClassBasedCustomReplacers SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testNestedAttributesAreReplacedInDimensions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testAttributeNamesAreReplaced SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testAttributeNamesAreReplacedInArrays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testInlineAttributeNamesAreReplacedInArraysFromNestedRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testTranslatedAttributeNamesAreReplacedInArraysFromNestedRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testTranslatedAttributesCanBeMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testInputIsReplaced SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testCapitalizedDisplayableValuesAreReplaced SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testInputIsReplacedByItsDisplayableValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testDisplayableValuesAreReplaced SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testDisplayableAttributesAreReplacedInCustomReplacers SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testIndexValuesAreReplaced SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testPositionValuesAreReplaced SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testOrdinalPositionValuesAreReplaced SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testCustomValidationLinesAreRespected SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testCustomValidationLinesForSizeRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testCustomValidationLinesAreRespectedWithAsterisks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testCustomException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testCustomExceptionMustExtendValidationException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testValidationDotCustomDotAnythingCanBeTranslated SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testInlineValidationMessagesAreRespected SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testCustomValidationIsAppendedToMessages SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testInlineValidationMessagesAreRespectedWithAsterisks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidationValidatorTest::testInlineValidationMessagesForRuleObjectsAreRespected SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testIfRulesAreSuccessfullyAdded SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateList SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateArrayKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateCurrentPassword SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateFilled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidationStopsAtFailedPresenceCheck SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidatePresent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidatePresentIf SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidatePresentUnless SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidatePresentWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidatePresentWithAll SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateRequired SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateRequiredWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testRequiredWithAll SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateRequiredWithout SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testRequiredWithoutMultiple SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testRequiredWithoutAll SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testRequiredIf SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testRequiredIfArrayToStringConversationErrorException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testRequiredUnless SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testProhibited SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testProhibitedIf SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateProhibitedAcceptedIf SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateProhibitedDeclinedIf SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testProhibitedUnless SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testProhibits SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testProhibitedRulesAreConsistent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testFailedFileUploads SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateInArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateHexColor SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateConfirmed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateSame SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateDifferent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testGreaterThan SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testLowercase SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testUppercase SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testLessThan SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testGreaterThanOrEqual SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testLessThanOrEqual SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateAccepted SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateRequiredAcceptedIf SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateAcceptedIf SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateRequiredIfDeclined SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateDeclined SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateMissingIf SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateMissingUnless SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateMissingWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateMissingWithAll SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateDeclinedIf SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateEndsWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateDoesntEndWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateStartsWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateDoesntStartWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateJson SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateBoolean SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateBooleanStrict SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateBool SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateBoolStrict SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateNumeric SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateNumericStrict SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateInteger SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateIntegerStrict SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateDecimal SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateInt SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateDigits SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateSize SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateBetween SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateMin SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateMax SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateMultipleOf SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testProperMessagesAreReturnedForSizes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateGtPlaceHolderIsReplacedProperly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateLtPlaceHolderIsReplacedProperly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateGtePlaceHolderIsReplacedProperly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateLtePlaceHolderIsReplacedProperly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateContains SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateIn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateNotIn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateDistinct SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateDistinctForTopLevelArrays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateUnique SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateUniqueAndExistsSendsCorrectFieldNameToDBWithArrays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidationExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidationExistsIsNotCalledUnnecessarily SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateGtMessagesAreCorrect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateGteMessagesAreCorrect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateLtMessagesAreCorrect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateLteMessagesAreCorrect SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateIp SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateMacAddress SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateEmail SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateEmailWithInternationalCharacters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateEmailWithStrictCheck SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateEmailWithFilterCheck SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateEmailWithFilterUnicodeCheck SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateEmailWithCustomClassCheck SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateUrlWithProtocols SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateUrlWithValidUrls SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateUrlWithInvalidUrls SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateActiveUrl SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateImage SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateImageDoesNotAllowPhpExtensionsOnImageMime SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateImageDimensions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateMimetypes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateMime SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateExtension SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateMimeEnforcesPhpCheck SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateFile SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testEmptyRulesSkipped SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testAlternativeFormat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testNumericKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testMergeRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateAlpha SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateAlphaNum SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateAlphaDash SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateAlphaWithAsciiOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateAlphaNumWithAsciiOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateAlphaDashWithAsciiOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateTimezone SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateTimezoneWithAfricaOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateTimezoneWithAmericaOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateTimezoneWithAntarcticaOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateTimezoneWithArcticOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateTimezoneWithAsiaOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateTimezoneWithAtlanticOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateTimezoneWithAustraliaOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateTimezoneWithEuropeOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateTimezoneWithIndianOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateTimezoneWithPacificOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateTimezoneWithUTCOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateTimezoneWithAllOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateTimezoneWithAllWithBCOption SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateTimezoneWithPerCountryOptionWithoutSpecifyingCountry SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateRegex SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateNotRegex SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateDateAndFormat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testDateEquals SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testDateEqualsRespectsCarbonTestNowWhenParameterIsRelative SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testBeforeAndAfter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testBeforeAndAfterWithFormat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testWeakBeforeAndAfter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testSometimesAddingRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testItemAwareSometimesAddingRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateSometimesImplicitEachWithAsterisksBeforeAndAfter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCustomValidators SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testClassBasedCustomValidators SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testClassBasedCustomValidatorsUsingConventionalMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCustomImplicitValidators SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCustomDependentValidators SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testExceptionThrownOnIncorrectParameterCount SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateImplicitEachWithAsterisks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testSometimesOnArraysInImplicitRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateImplicitEachWithAsterisksForRequiredNonExistingKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testParsingArrayKeysWithDot SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testParsingArrayKeysWithDotWhenTestingExistence SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testPassingSlashVulnerability SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testPlaceholdersAreReplaced SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testDotPlaceholdersInParametersAreReplacedIn SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCoveringEmptyKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testImplicitEachWithAsterisksWithArrayValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateNestedArrayWithCommonParentChildKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateNestedArrayWithNonNumericKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateImplicitEachWithAsterisksConfirmed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateImplicitEachWithAsterisksDifferent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateImplicitEachWithAsterisksSame SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateImplicitEachWithAsterisksRequired SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateImplicitEachWithAsterisksRequiredIf SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateImplicitEachWithAsterisksRequiredUnless SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateImplicitEachWithAsterisksRequiredWith SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateImplicitEachWithAsterisksRequiredWithAll SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateImplicitEachWithAsterisksRequiredWithout SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateImplicitEachWithAsterisksRequiredWithoutAll SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateImplicitEachWithAsterisksBeforeAndAfter SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testGetLeadingExplicitAttributePath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testExtractDataFromPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testParsingTablesFromModels SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testUsingSettersWithImplicitRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testInvalidMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testNestedInvalidMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testMultipleFileUploads SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testFileUploads SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCustomValidationObject SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testCustomValidationObjectWithDotKeysIsCorrectlyPassedValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testImplicitCustomValidationObjects SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateReturnsValidatedData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateReturnsValidatedDataNestedRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateReturnsValidatedDataNestedChildRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateReturnsValidatedDataNestedArrayRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateAndValidatedData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidatedNotValidateTwiceData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testMultiplePassesCalls SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateWithValidUuid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateWithInvalidUuid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateWithUuidWithVersionConstraint SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateWithValidAscii SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateWithInvalidAscii SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateWithValidUlid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateWithInvalidUlid SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testExcludeIf SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testExcludeIfWhenValidationFails SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testExclude SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testExcludeBeforeADependentRule SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testExcludingArrays SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testExcludeUnless SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testExcludeWithout SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testExcludeValuesAreReallyRemoved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testExcludeWithValuesAreReallyRemoved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testValidateFailsWithAsterisksAsDataKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testFailOnFirstError SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testArrayKeysValidationPassedWhenHasKeys SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testArrayKeysValidationPassedWithPartialMatch SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testArrayKeysValidationFailsWithMissingKey SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testArrayKeysValidationFailsWithNotAnArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testArrayKeysWithDotIntegerMin SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testItCanTranslateMessagesForClosureBasedRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testItCanSpecifyTheValidationErrorKeyForTheErrorMessageForClosureBasedRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testItTrimsSpaceFromParameters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testItLimitsLengthOfScientificNotationExponent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testItAllowsScientificNotationWithinRange SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: implements::testItCanConfigureAllowedExponentRange SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ValidatorAfterRuleTest::testAfterAcceptsArrayOfRules SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeAppendTest::testAppendSectionsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeBoolTest::testBool SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeBoolTest::testCompileBool SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeBreakStatementsTest::testBreakStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeBreakStatementsTest::testBreakStatementsWithExpressionAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeBreakStatementsTest::testBreakStatementsWithArgumentAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeBreakStatementsTest::testBreakStatementsWithSpacedArgumentAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeBreakStatementsTest::testBreakStatementsWithFaultyArgumentAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCananyStatementsTest::testCananyStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCannotStatementsTest::testCannotStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCanStatementsTest::testCanStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCheckedStatementsTest::testSelectedStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCheckedStatementsTest::testCheckedStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCheckedStatementsTest::testDisabledStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCheckedStatementsTest::testRequiredStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCheckedStatementsTest::testReadonlyStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeClassTest::testClassesAreConditionallyCompiledFromArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCommentsTest::testCommentsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCommentsTest::testBladeCodeInsideCommentsIsNotCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentFirstTest::testComponentFirstsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentsTest::testComponentsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentsTest::testClassComponentsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentsTest::testEndComponentsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentsTest::testEndComponentClassesAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentsTest::testSlotsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentsTest::testEndSlotsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentsTest::testPropsAreExtractedFromParentAttributesCorrectlyForClassComponents SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testSlotsCanBeCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testInlineSlotsCanBeCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testDynamicSlotsCanBeCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testDynamicSlotsCanBeCompiledWithKeyOfObjects SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testSlotsWithAttributesCanBeCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testInlineSlotsWithAttributesCanBeCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testSlotsWithDynamicAttributesCanBeCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testSlotsWithClassDirectiveCanBeCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testSlotsWithStyleDirectiveCanBeCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testBasicComponentParsing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testNestedDefaultComponentParsing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testCustomNamespaceNestedDefaultComponentParsing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testBasicComponentWithEmptyAttributesParsing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testDataCamelCasing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testColonData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testColonDataShortSyntax SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testColonDataWithStaticClassProperty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testColonDataWithStaticClassPropertyAndMultipleAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testSelfClosingComponentWithColonDataShortSyntax SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testSelfClosingComponentWithColonDataAndStaticClassPropertyShortSyntax SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testSelfClosingComponentWithColonDataMultipleAttributesAndStaticClassPropertyShortSyntax SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testEscapedColonAttribute SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testColonAttributesIsEscapedIfStrings SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testClassDirective SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testStyleDirective SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testColonNestedComponentParsing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testColonStartingNestedComponentParsing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testSelfClosingComponentsCanBeCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testClassesCanBeFoundByComponents SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testClassNamesCanBeGuessed SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testClassNamesCanBeGuessedWithNamespaces SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testComponentsCanBeCompiledWithHyphenAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testSelfClosingComponentsCanBeCompiledWithDataAndAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testComponentCanReceiveAttributeBag SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testSelfClosingComponentCanReceiveAttributeBag SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testComponentsCanHaveAttachedWord SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testSelfClosingComponentsCanHaveAttachedWord SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testSelfClosingComponentsCanBeCompiledWithBoundData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testPairedComponentTags SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testClasslessComponents SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testClasslessComponentsWithIndexView SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testClasslessComponentsWithComponentView SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testPackagesClasslessComponents SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testClasslessComponentsWithAnonymousComponentNamespace SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testClasslessComponentsWithAnonymousComponentNamespaceWithIndexView SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testClasslessComponentsWithAnonymousComponentNamespaceWithComponentView SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testClasslessComponentsWithAnonymousComponentPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testClasslessComponentsWithAnonymousComponentPathComponentName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testClasslessIndexComponentsWithAnonymousComponentPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeComponentTagCompilerTest::testAttributeSanitization SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItThrowsAnExceptionForNonExistingAliases SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testItThrowsAnExceptionForNonExistingClass SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAttributesTreatedAsPropsAreRemovedFromFinalAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testOriginalAttributesAreRestoredAfterRenderingChildComponentWithProps SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeContextTest::testContextsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeContinueStatementsTest::testContinueStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeContinueStatementsTest::testContinueStatementsWithExpressionAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeContinueStatementsTest::testContinueStatementsWithArgumentAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeContinueStatementsTest::testContinueStatementsWithSpacedArgumentAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeContinueStatementsTest::testContinueStatementsWithFaultyArgumentAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testCustomPhpCodeIsCorrectlyHandled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testMixingYieldAndEcho SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testCustomExtensionsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testCustomStatements SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testCustomShortStatements SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testValidCustomNames SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testInvalidCustomNames SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testInvalidCustomNames2 SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testCustomExtensionOverwritesCore SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testCustomConditions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testCustomIfElseConditions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testCustomUnlessConditions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testCustomConditionsAccepts0AsArgument SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testCustomComponents SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testCustomComponentsWithSlots SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testCustomComponentsWithExistingDirective SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testCustomIncludes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testCustomIncludesWithData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testCustomIncludesDefaultAlias SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testCustomIncludesWithExistingDirective SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeCustomTest::testUnescapedNonRegisteredDirective SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeEchoHandlerTest::testBladeHandlerCanInterceptRegularEchos SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeEchoHandlerTest::testBladeHandlerCanInterceptRawEchos SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeEchoHandlerTest::testBladeHandlerCanInterceptEscapedEchos SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeEchoHandlerTest::testWhitespaceIsPreservedCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeEchoHandlerTest::testHandlerLogicWorksCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeEchoHandlerTest::testHandlerWorksWithIterables SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeEchoHandlerTest::testHandlerWorksWithNonStringables SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeEchoTest::testEchosAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeEchoTest::testEscapedWithAtEchosAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeElseAuthStatementsTest::testElseAuthStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeElseAuthStatementsTest::testPlainElseAuthStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeElseGuestStatementsTest::testIfStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeElseIfStatementsTest::testElseIfStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeElseStatementsTest::testElseStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeElseStatementsTest::testElseIfStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeEndSectionsTest::testEndSectionsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeEnvironmentStatementsTest::testEnvStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeEnvironmentStatementsTest::testEnvStatementsWithMultipleStringParamsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeEnvironmentStatementsTest::testEnvStatementsWithArrayParamAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeEnvironmentStatementsTest::testProductionStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeErrorTest::testErrorsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeErrorTest::testErrorsWithBagsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeEscapedTest::testEscapedWithAtDirectivesAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeEscapedTest::testNestedEscapes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeExpressionTest::testExpressionsOnTheSameLine SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeExpressionTest::testExpressionWithinHTML SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeExtendsTest::testExtendsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeExtendsTest::testSequentialCompileStringCalls SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeExtendsTest::testExtendsFirstAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeForeachStatementsTest::testForeachStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeForeachStatementsTest::testForeachStatementsAreCompileWithUppercaseSyntax SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeForeachStatementsTest::testForeachStatementsAreCompileWithMultipleLine SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeForeachStatementsTest::testNestedForeachStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeForeachStatementsTest::testLoopContentHolderIsExtractedFromForeachStatements SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeForeachStatementsTest::testForeachStatementsThrowHumanizedMessageWhenInvalidStatement SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeForelseStatementsTest::testForelseStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeForelseStatementsTest::testForelseStatementsAreCompiledWithUppercaseSyntax SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeForelseStatementsTest::testForelseStatementsAreCompiledWithMultipleLine SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeForelseStatementsTest::testNestedForelseStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeForelseStatementsTest::testForelseStatementsThrowHumanizedMessageWhenInvalidStatement SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeForStatementsTest::testForStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeForStatementsTest::testNestedForStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeFragmentTest::testFragmentStartsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeFragmentTest::testEndFragmentsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeHasSectionTest::testHasSectionStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeHasStackTest::testHasStackStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeHelpersTest::testEchosAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeIfAuthStatementsTest::testIfStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeIfAuthStatementsTest::testPlainIfStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeIfEmptyStatementsTest::testIfStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeIfGuestStatementsTest::testIfStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeIfIssetStatementsTest::testIfStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeIfStatementsTest::testIfStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeIfStatementsTest::testSwitchstatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeIncludesTest::testEachsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeIncludesTest::testIncludesAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeIncludesTest::testIncludeIfsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeIncludesTest::testIncludeWhensAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeIncludesTest::testIncludeUnlessesAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeIncludesTest::testIncludeFirstsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeInjectTest::testDependenciesInjectedAsStringsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeInjectTest::testDependenciesInjectedAsStringsAreCompiledWhenInjectedWithDoubleQuotes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeInjectTest::testDependenciesAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeInjectTest::testDependenciesAreCompiledWithDoubleQuotes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeJsonTest::testStatementIsCompiledWithSafeDefaultEncodingOptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeJsonTest::testEncodingOptionsCanBeOverwritten SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeJsTest::testStatementIsCompiledWithoutAnyOptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeJsTest::testJsonFlagsCanBeSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeJsTest::testEncodingDepthCanBeSet SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeLangTest::testStatementThatContainsNonConsecutiveParenthesisAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeLangTest::testLanguageAndChoicesAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeOverwriteSectionTest::testOverwriteSectionsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePhpStatementsTest::testPhpStatementsWithExpressionAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePhpStatementsTest::testStringWithParenthesisWithEndPHP SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePhpStatementsTest::testPhpStatementsWithoutExpressionAreIgnored SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePhpStatementsTest::testPhpStatementsDontParseBladeCode SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePhpStatementsTest::testVerbatimAndPhpStatementsDontGetMixedUp SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePhpStatementsTest::testStringWithOpeningParenthesisCanBeCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePhpStatementsTest::testStringWithParenthesisCanBeCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePhpStatementsTest::testStringWithEmptyStringDataValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePhpStatementsTest::testStringWithEscapingDataValue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePhpStatementsTest::testUnclosedParenthesisForBladeTags SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePhpStatementsTest::testNestedTagCalls SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePhpStatementsTest::testItDoesNotCompileInvalidSyntax SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePrependTest::testPrependIsCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePrependTest::testPrependOnceIsCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePrependTest::testPrependOnceIsCompiledWhenIdIsMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePropsTest::testPropsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePropsTest::testPropsAreExtractedFromParentAttributesCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePushTest::testPushIsCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePushTest::testPushIsCompiledWithParenthesis SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePushTest::testPushOnceIsCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePushTest::testPushOnceIsCompiledWhenIdIsMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePushTest::testPushIfIsCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePushTest::testPushIfWithMoreThanOneCommaIsCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePushTest::testPushIfWithCommaInStringIsCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladePushTest::testPushIfElseIsCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeSectionMissingTest::testSectionMissingStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeSectionTest::testSectionStartsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeSessionTest::testSessionsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeShowTest::testShowsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeStackTest::testStackIsCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeStopSectionTest::testStopSectionsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeStyleTest::testStylesAreConditionallyCompiledFromArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeUnlessStatementsTest::testUnlessStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeUnsetStatementsTest::testUnsetStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeUseTest::testUseStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeUseTest::testUseStatementsWithoutAsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeUseTest::testUseStatementsWithBackslashAtBeginningAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeUseTest::testUseStatementsWithBackslashAtBeginningAndAliasedAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeUseTest::testUseStatementsWithBracesAreCompiledCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeUseTest::testUseStatementWithBracesAndBackslashAreCompiledCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeUseTest::testUseStatementsWithModifiersAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeUseTest::testUseStatementsWithModifiersWithoutAliasAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeUseTest::testUseStatementsWithModifiersAndBackslashAtBeginningAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeUseTest::testUseStatementsWithModifiersBackslashAtBeginningAndAliasedAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeUseTest::testUseStatementsWithModifiersWithBracesAreCompiledCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeUseTest::testUseFunctionStatementWithBracesAndBackslashAreCompiledCorrectly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeVerbatimTest::testVerbatimBlocksAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeVerbatimTest::testVerbatimBlocksWithMultipleLinesAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeVerbatimTest::testMultipleVerbatimBlocksAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeVerbatimTest::testRawBlocksAreRenderedInTheRightOrder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeVerbatimTest::testMultilineTemplatesWithRawBlocksAreRenderedInTheRightOrder SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeVerbatimTest::testRawBlocksDontGetMixedUpWhenSomeAreRemovedByBladeComments SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeVerbatimTest::testNewlinesAreInsertedCorrectlyAfterEcho SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeWhileStatementsTest::testWhileStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeWhileStatementsTest::testNestedWhileStatementsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: BladeYieldTest::testYieldsAreCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ComponentTest::testInlineViewsGetCreated SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ComponentTest::testRegularViewsGetReturnedUsingViewHelper SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ComponentTest::testRenderingStringClosureFromComponent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ComponentTest::testRegularViewsGetReturnedUsingViewMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ComponentTest::testRegularViewNamesGetReturned SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ComponentTest::testHtmlableGetReturned SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ComponentTest::testResolveWithUnresolvableDependency SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ComponentTest::testResolveDependenciesWithoutContainer SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testResolveDependenciesWithContainerIfNecessary SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testResolveComponentsUsing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: name::testBladeViewCacheWithRegularViewNameViewComponent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: name::testBladeViewCacheWithInlineViewComponent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: name::testBladeViewCacheWithInlineViewComponentWhereRenderDependsOnProps SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: name::testFactoryGetsSharedBetweenComponents SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: name::testComponentSlotIsEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: name::testComponentSlotSanitizedEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: name::testComponentSlotSanitizedNotEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: name::testComponentSlotIsNotEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ManagesStacksTest::testStackIsEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ManagesStacksTest::testStackIsNotEmptyWithPushedContent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ManagesStacksTest::testStackIsNotEmptyWithPrependedContent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testIsExpiredReturnsTrueIfCompiledFileDoesntExist SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testCannotConstructWithBadCachePath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testIsExpiredReturnsTrueWhenModificationTimesWarrant SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testIsExpiredReturnsFalseWhenUseCacheIsTrueAndNoFileModification SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testIsExpiredReturnsTrueWhenUseCacheIsFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testIsExpiredReturnsFalseWhenIgnoreCacheTimestampsIsTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testCompilePathIsProperlyCreated SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testCompileCompilesFileAndReturnsContents SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testCompileCompilesFileAndReturnsContentsCreatingDirectory SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testCompileUpdatesCacheIfChanged SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testCompileKeepsCacheIfUnchanged SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testCompileCompilesAndGetThePath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testCompileSetAndGetThePath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testCompileWithPathSetBefore SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testRawTagsCanBeSetToLegacyValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testIncludePathToTemplate SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testDontIncludeEmptyPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testDontIncludeNullPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testShouldStartFromStrictTypesDeclaration SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testComponentAliasesCanBeConventionallyDetermined SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewBladeCompilerTest::testAnonymousComponentNamespacesCanBeStored SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewCompilerEngineTest::testViewsMayBeRecompiledAndRendered SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewCompilerEngineTest::testViewsAreNotRecompiledIfTheyAreNotExpired SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewCompilerEngineTest::testRegularExceptionsAreReThrownAsViewExceptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewCompilerEngineTest::testHttpExceptionsAreNotReThrownAsViewExceptions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewCompilerEngineTest::testThatViewsAreNotAskTwiceIfTheyAreExpired SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewCompilerEngineTest::testViewsAreRecompiledWhenCompiledViewIsMissingViaFileNotFoundException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewCompilerEngineTest::testViewsAreRecompiledWhenCompiledViewIsMissingViaRequireException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewCompilerEngineTest::testViewsAreRecompiledJustOnceWhenCompiledViewIsMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewCompilerEngineTest::testViewsAreNotRecompiledOnRegularViewException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewCompilerEngineTest::testViewsAreNotRecompiledIfTheyWereJustCompiled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentAttributeBagTest::testAttributeRetrieval SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentAttributeBagTest::testAttributeRetrievalUsingDotNotation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentAttributeBagTest::testItMakesAnExceptionForAlpineXdata SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentAttributeBagTest::testItMakesAnExceptionForLivewireWireAttributes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentAttributeBagTest::testAttributeExistence SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentAttributeBagTest::testAttributeIsEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentAttributeBagTest::testAttributeIsNotEmpty SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentAttributeBagTest::testAttributeIsArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentAttributeBagTest::testFilled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentAttributeBagTest::testIsNotFilled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentAttributeBagTest::testAnyFilled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentAttributeBagTest::testWhenFilled SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentAttributeBagTest::testWhenHas SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentAttributeBagTest::testWhenMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentAttributeBagTest::testString SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentAttributeBagTest::testBoolean SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentAttributeBagTest::testInteger SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentAttributeBagTest::testFloat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentAttributeBagTest::testExists SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentTest::testDataExposure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewComponentTest::testIgnoredMethodsAreNotExposedToViewData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: extends::testAttributeParentInheritance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: attributes::testSlotAttributeParentInheritance SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: attributes::testPublicMethodsWithNoArgsAreConvertedToStringableCallablesInvokedAndNotCached SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: attributes::testItIgnoresExceptedMethodsAndProperties SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: attributes::testMethodsOverridePropertyValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewEngineResolverTest::testResolversMayBeResolved SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewEngineResolverTest::testResolverThrowsExceptionOnUnknownEngine SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testMakeCreatesNewViewInstanceWithProperPathAndEngine SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testExistsPassesAndFailsViews SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testRenderingOnceChecks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testFirstCreatesNewViewInstanceWithProperPath SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testFirstThrowsInvalidArgumentExceptionIfNoneFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testRenderEachCreatesViewForEachItemInArray SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testEmptyViewsCanBeReturnedFromRenderEach SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testRawStringsMayBeReturnedFromRenderEach SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testEnvironmentAddsExtensionWithCustomResolver SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testAddingExtensionPrependsNotAppends SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testPrependedExtensionOverridesExistingExtensions SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testCallCreatorsDoesDispatchEventsWhenIsNecessary SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testCallCreatorsDoesDispatchEventsWhenIsNecessaryUsingNamespacedWildcards SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testCallCreatorsDoesDispatchEventsWhenIsNecessaryUsingNamespacedNestedWildcards SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testCallCreatorsDoesDispatchEventsWhenIsNecessaryUsingWildcards SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testCallCreatorsDoesDispatchEventsWhenIsNecessaryUsingNormalizedNames SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testCallComposerDoesDispatchEventsWhenIsNecessary SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testCallComposerDoesDispatchEventsWhenIsNecessaryAndUsingTheArrayFormat SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testCallComposersDoesDispatchEventsWhenIsNecessaryUsingNamespacedWildcards SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testCallComposersDoesDispatchEventsWhenIsNecessaryUsingNamespacedNestedWildcards SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testCallComposersDoesDispatchEventsWhenIsNecessaryUsingWildcards SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testCallComposersDoesDispatchEventsWhenIsNecessaryUsingNormalizedNames SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testComposersAreProperlyRegistered SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testComposersCanBeMassRegistered SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testClassCallbacks SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testClassCallbacksWithMethods SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testCallComposerCallsProperEvent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testComposersAreRegisteredWithSlashAndDot SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testRenderCountHandling SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testYieldDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testYieldDefaultIsEscaped SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testYieldDefaultViewIsNotEscapedTwice SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testBasicFragmentHandling SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testBasicSectionHandling SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testBasicSectionDefault SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testBasicSectionDefaultIsEscaped SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testBasicSectionDefaultViewIsNotEscapedTwice SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testSectionExtending SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testSectionMultipleExtending SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testComponentHandling SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testComponentHandlingUsingViewObject SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testComponentHandlingUsingClosure SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testComponentHandlingUsingHtmlable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testTranslation SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testSingleStackPush SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testMultipleStackPush SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testSingleStackPrepend SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testMultipleStackPrepend SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testSessionAppending SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testYieldSectionStopsAndYields SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testInjectStartsSectionWithContent SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testEmptyStringIsReturnedForNonSections SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testSectionFlushing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testHasSection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testSectionMissing SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testGetSection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testMakeWithSlashAndDot SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testNamespacedViewNamesAreNormalizedProperly SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testExceptionIsThrownForUnknownExtension SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testExceptionsInSectionsAreThrown SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testExtraStopSectionCallThrowsException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testExtraAppendSectionCallThrowsException SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testAddingLoops SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testAddingLoopDoesNotCloseGenerator SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testAddingUncountableLoop SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testAddingLazyCollection SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testIncrementingLoopIndices SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testReachingEndOfLoop SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testIncrementingLoopIndicesOfUncountable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFactoryTest::testMacro SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFileViewFinderTest::testBasicViewFinding SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFileViewFinderTest::testCascadingFileLoading SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFileViewFinderTest::testDirectoryCascadingFileLoading SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFileViewFinderTest::testNamespacedBasicFileLoading SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFileViewFinderTest::testCascadingNamespacedFileLoading SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFileViewFinderTest::testDirectoryCascadingNamespacedFileLoading SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFileViewFinderTest::testExceptionThrownWhenViewNotFound SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFileViewFinderTest::testExceptionThrownOnInvalidViewName SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFileViewFinderTest::testExceptionThrownWhenNoHintPathIsRegistered SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFileViewFinderTest::testAddingExtensionPrependsNotAppends SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFileViewFinderTest::testAddingExtensionsReplacesOldOnes SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFileViewFinderTest::testPassingViewWithHintReturnsTrue SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFileViewFinderTest::testPassingViewWithoutHintReturnsFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFileViewFinderTest::testPassingViewWithFalseHintReturnsFalse SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewFileViewFinderTest::testNormalizedPaths SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewPhpEngineTest::testViewsMayBeProperlyRendered SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewTest::testDataCanBeSetOnView SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewTest::testRenderProperlyRendersView SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewTest::testRenderHandlingCallbackReturnValues SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewTest::testRenderSectionsReturnsEnvironmentSections SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewTest::testSectionsAreNotFlushedWhenNotDoneRendering SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewTest::testViewNestBindsASubView SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewTest::testViewAcceptsArrayableImplementations SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewTest::testViewGettersSetters SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewTest::testViewArrayAccess SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewTest::testViewConstructedWithObjectData SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewTest::testViewMagicMethods SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewTest::testViewBadMethod SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewTest::testViewGatherDataWithRenderable SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewTest::testViewRenderSections SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 TEST: ViewTest::testWithErrors SAFETY: PASS QUALITY: PASS KB_ELIGIBLE: YES QUALITY_SCORE: 10.0 🛑 SATE Pre-Debug Gates: FAILED Why: - These gates prevent fake failures (bootstrap warnings, order dependence, polluted learning) before we debug any individual test logic. - Fix ALL violations below before running SATE. Scan root: /home/amari/projects/manual/laravel-framework Scanned PHP files: 1150 Discovered test blocks: 9652 FILE-LEVEL VIOLATIONS: (These violations do NOT belong to a specific test block.) ❌ /home/amari/projects/manual/laravel-framework/tests/Auth/AuthAccessGateTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 1472: $_SERVER['__laravel.testBefore'] = true; - line 1490: $_SERVER['__laravel.testBefore'] = true; ❌ /home/amari/projects/manual/laravel-framework/tests/Auth/AuthDatabaseTokenRepositoryTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 164: m::mock(Connection::class), - line 165: m::mock(Hasher::class), ❌ /home/amari/projects/manual/laravel-framework/tests/Auth/AuthEloquentUserProviderTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 232: $hasher = m::mock(Hasher::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Auth/AuthenticateMiddlewareTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 197: }, m::mock(Request::class), m::mock(EloquentUserProvider::class)); - line 210: $request = m::mock(Request::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Auth/AuthGuardTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 664: m::mock(Session::class), - line 665: m::mock(UserProvider::class), - line 667: m::mock(CookieJar::class), - line 668: m::mock(Timebox::class), - line 674: return new CookieJar(Request::create('/foo', 'GET'), m::mock(Encrypter::class), ['domain' => 'foo.com', 'path' => '/', 'secure' => false, 'httpOnly' => false]); ❌ /home/amari/projects/manual/laravel-framework/tests/Auth/AuthPasswordBrokerTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 140: 'tokens' => m::mock(TokenRepositoryInterface::class), - line 141: 'users' => m::mock(UserProvider::class), ❌ /home/amari/projects/manual/laravel-framework/tests/Broadcasting/AblyBroadcasterTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 124: $request = m::mock(Request::class); - line 149: $request = m::mock(Request::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Broadcasting/PusherBroadcasterTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 180: $request = m::mock(Request::class); - line 205: $request = m::mock(Request::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Broadcasting/RedisBroadcasterTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 24: $this->broadcaster = m::mock(RedisBroadcaster::class)->makePartial(); - line 169: $request = m::mock(Request::class); - line 191: $request = m::mock(Request::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Bus/BusBatchTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 78: $_SERVER['__finally.count'] = 0; - line 79: $_SERVER['__progress.count'] = 0; - line 80: $_SERVER['__then.count'] = 0; - line 81: $_SERVER['__catch.count'] = 0; - line 347: static fn (Batch $batch, $e): true => $_SERVER['__failure1.invoked'] = true, - line 349: $_SERVER['__failure2.invoked'] = true; - line 352: $_SERVER['__failure3.batch'] = $batch; - line 353: $_SERVER['__failure3.exception'] = $e; - line 354: $_SERVER['__failure3.batch_id'] = $batch->id; - line 355: $_SERVER['__failure3.batch_class'] = get_class($batch); - line 356: $_SERVER['__failure3.exception_class'] = get_class($e); - line 357: $_SERVER['__failure3.exception_message'] = $e->getMessage(); - line 358: $_SERVER['__failure3.param_count'] = func_num_args(); - line 379: $_SERVER['__failure1.invoked'] = false; - line 380: $_SERVER['__failure2.invoked'] = false; - line 381: $_SERVER['__failure3.batch'] = null; - line 382: $_SERVER['__failure3.exception'] = null; - line 595: $_SERVER['__progress.batch'] = $batch; - line 599: $_SERVER['__then.batch'] = $batch; - line 603: $_SERVER['__catch.batch'] = $batch; - line 604: $_SERVER['__catch.exception'] = $e; - line 608: $_SERVER['__finally.batch'] = $batch; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 116: unset($_SERVER['__finally.batch'], $_SERVER['__progress.batch'], $_SERVER['__then.batch'], $_SERVER['__catch.batch'], $_SERVER['__catch.exception']); - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 51: $queue = m::mock(Factory::class); - line 58: $pendingBatch = m::mock(PendingBatch::class); - line 60: $pendingBatch->shouldReceive('dispatch')->zeroOrMoreTimes()->andReturn(m::mock(Batch::class)); - line 67: $pendingChain->shouldReceive('dispatch')->zeroOrMoreTimes()->andReturn(m::mock(Batch::class)); - line 341: $queue = m::mock(Factory::class); - line 373: ->andReturn($connection = m::mock(stdClass::class)); ❌ /home/amari/projects/manual/laravel-framework/tests/Bus/BusPendingDispatchTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 30: $this->job = m::mock(stdClass::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Cache/CacheDatabaseStoreTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 229: return new DatabaseStore(m::mock(Connection::class), 'table', 'prefix'); - line 234: return new DatabaseStore(m::mock(PostgresConnection::class), 'table', 'prefix'); - line 239: return new DatabaseStore(m::mock(SQLiteConnection::class), 'table', 'prefix'); - line 244: return [m::mock(Connection::class), 'table', 'prefix']; - line 249: return [m::mock(PostgresConnection::class), 'table', 'prefix']; - line 254: return [m::mock(SQLiteConnection::class), 'table', 'prefix']; ❌ /home/amari/projects/manual/laravel-framework/tests/Cache/CacheEventsTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 290: return m::mock(Dispatcher::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Cache/CacheFileStoreTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 379: return $this->createMock(Filesystem::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Cache/CacheMemcachedConnectorTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 94: $memcached = m::mock(stdClass::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Cache/CacheRateLimiterTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 81: $cache = m::mock(Cache::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Cache/CacheRedisStoreTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 153: return new RedisStore(m::mock(Factory::class), 'prefix:'); ❌ /home/amari/projects/manual/laravel-framework/tests/Cache/CacheRepositoryTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 438: $dispatcher = new Dispatcher(m::mock(Container::class)); - line 439: $repository = new Repository(m::mock(Store::class)); ❌ /home/amari/projects/manual/laravel-framework/tests/Cache/ClearCommandTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 45: $this->cacheManager = m::mock(CacheManager::class); - line 46: $this->files = m::mock(Filesystem::class); - line 47: $this->cacheRepository = m::mock(Repository::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Cache/RateLimiterTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 31: $rateLimiter = new RateLimiter($this->createMock(Cache::class)); ❌ /home/amari/projects/manual/laravel-framework/tests/Console/CacheCommandMutexTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 38: $this->cacheFactory = m::mock(Factory::class); - line 39: $this->cacheRepository = m::mock(Repository::class); - line 145: $lock = m::mock(LockProvider::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Console/CommandMutexTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 43: $this->commandMutex = m::mock(CommandMutex::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Console/ConfiguresPromptsTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 116: $command->setLaravel($application = m::mock(Application::class)); - line 118: $application->shouldReceive('make')->withArgs(fn ($abstract) => $abstract === OutputStyle::class)->andReturn($outputStyle = m::mock(OutputStyle::class)); - line 119: $application->shouldReceive('make')->withArgs(fn ($abstract) => $abstract === Factory::class)->andReturn($factory = m::mock(Factory::class)); ❌ /home/amari/projects/manual/laravel-framework/tests/Console/ConsoleEventSchedulerTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 29: $container->instance(EventMutex::class, m::mock(CacheEventMutex::class)); - line 31: $container->instance(SchedulingMutex::class, m::mock(CacheSchedulingMutex::class)); - line 33: $container->instance(Schedule::class, $this->schedule = new Schedule(m::mock(EventMutex::class))); ❌ /home/amari/projects/manual/laravel-framework/tests/Console/ConsoleScheduledEventTest.php - [BOOTSTRAP_PURITY_TIMEZONE] Note: date_default_timezone_set mutates global timezone unless restored. Evidence: - line 24: date_default_timezone_set('UTC'); - line 29: date_default_timezone_set($this->defaultTimezone); ❌ /home/amari/projects/manual/laravel-framework/tests/Console/Scheduling/CacheEventMutexTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 39: $this->cacheFactory = m::mock(Factory::class); - line 40: $this->cacheRepository = m::mock(Repository::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Console/Scheduling/CacheSchedulingMutexTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 46: $this->cacheFactory = m::mock(Factory::class); - line 47: $this->cacheRepository = m::mock(Repository::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Console/Scheduling/FrequencyTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 19: m::mock(EventMutex::class), ❌ /home/amari/projects/manual/laravel-framework/tests/Console/Scheduling/ScheduleTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 32: $this->eventMutex = m::mock(EventMutex::class); - line 34: $this->schedulingMutex = m::mock(SchedulingMutex::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Container/ContextualAttributeBindingTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 249: $context = m::mock(ContextRepository::class); - line 263: $context = m::mock(ContextRepository::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseConcernsPreventsCircularRecursionTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 179: $mock = Mockery::mock(TestModel::class)->makePartial(); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentBelongsToManyCreateOrFirstTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 290: $relation = Mockery::mock(BelongsToMany::class)->makePartial(); - line 361: $relation = Mockery::mock(BelongsToMany::class)->makePartial(); - line 403: $relation = Mockery::mock(BelongsToMany::class)->makePartial(); - line 470: $connection->shouldReceive('getPdo')->andReturn($pdo = Mockery::mock(PDO::class)); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentBelongsToManyWithCastedAttributesTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 64: $builder = m::mock(Builder::class); - line 65: $related = m::mock(Model::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentBelongsToManyWithDefaultAttributesTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 41: $parent = m::mock(Model::class); - line 47: $builder = m::mock(Builder::class); - line 48: $related = m::mock(Model::class); - line 59: $builder->shouldReceive('getQuery')->andReturn($mockQueryBuilder = m::mock(stdClass::class)); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentBelongsToManyWithoutTouchingTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 20: $related = m::mock(Article::class)->makePartial(); - line 29: $builder = m::mock(Builder::class); - line 31: $parent = m::mock(User::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentBelongsToTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 401: $this->builder = m::mock(Builder::class); - line 403: $this->related = m::mock(Model::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentBuilderCreateOrFirstTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 490: $connection->shouldReceive('getPdo')->andReturn($pdo = Mockery::mock(PDO::class)); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentBuilderTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2846: $model = m::mock(Model::class); - line 2856: $query = m::mock(BaseBuilder::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentFactoryTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 34: $container->instance(Application::class, $app = m::mock(Application::class)); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentHasManyCreateOrFirstTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 337: $connection->shouldReceive('getPdo')->andReturn($pdo = Mockery::mock(PDO::class)); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentHasManyTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 384: $queryBuilder = m::mock(QueryBuilder::class); - line 388: $related = m::mock(Model::class); - line 390: $parent = m::mock(Model::class); - line 419: $model = m::mock(Model::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentHasManyThroughCreateOrFirstTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 389: $connection->shouldReceive('getPdo')->andReturn($pdo = Mockery::mock(PDO::class)); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentHasOneTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 326: $this->builder = m::mock(Builder::class); - line 329: $this->related = m::mock(Model::class); - line 331: $this->parent = m::mock(Model::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentModelTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 3751: $_SERVER['__eloquent.saved'] = true; - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1753: EloquentModelStub::setConnectionResolver($resolver = m::mock(Resolver::class)); - line 1754: $resolver->shouldReceive('connection')->andReturn($connection = m::mock(stdClass::class)); - line 3220: $model->setConnectionResolver($resolver = m::mock(ConnectionResolverInterface::class)); - line 3221: $resolver->shouldReceive('connection')->andReturn($connection = m::mock(Connection::class)); - line 3222: $connection->shouldReceive('getQueryGrammar')->andReturn($grammar = m::mock(Grammar::class)); - line 3225: $connection->shouldReceive('getPostProcessor')->andReturn($processor = m::mock(Processor::class)); - line 3763: $mock = m::mock(Connection::class); - line 3764: $mock->shouldReceive('getQueryGrammar')->andReturn($grammar = m::mock(Grammar::class)); - line 3767: $mock->shouldReceive('getPostProcessor')->andReturn($processor = m::mock(Processor::class)); - line 3786: $mock = m::mock(Builder::class); - line 3802: $mock = m::mock(Builder::class); - line 3804: $mock->shouldReceive('get')->once()->andReturn([$model = m::mock(stdClass::class)]); - line 3815: $mock = m::mock(Builder::class); - line 3826: $mock = m::mock(Builder::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentMorphTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 484: $queryBuilder = m::mock(QueryBuilder::class); - line 488: $related = m::mock(Model::class); - line 490: $parent = m::mock(Model::class); - line 500: $builder = m::mock(Builder::class); - line 503: $related = m::mock(Model::class); - line 505: $parent = m::mock(Model::class); - line 521: $builder = m::mock(Builder::class); - line 524: $related = m::mock(Model::class); - line 526: $parent = m::mock(EloquentModelNamespacedStub::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentMorphToManyTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 33: $query = m::mock(stdClass::class); - line 45: $query = m::mock(stdClass::class); - line 60: $query = m::mock(stdClass::class); - line 106: $parent = m::mock(Model::class); - line 114: $builder = m::mock(Builder::class); - line 115: $related = m::mock(Model::class); - line 127: $grammar = m::mock(Grammar::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentMorphToTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 366: $builder = m::mock(Builder::class); - line 368: $related = m::mock(Model::class); - line 379: $this->builder = $builder ?: m::mock(Builder::class); - line 381: $this->related = m::mock(Model::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentRelationshipsTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 433: $mock = m::mock(Connection::class); - line 434: $mock->shouldReceive('getQueryGrammar')->andReturn($grammar = m::mock(Grammar::class)); - line 436: $mock->shouldReceive('getPostProcessor')->andReturn($processor = m::mock(Processor::class)); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseMariaDbSchemaGrammarTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1562: $connection = m::mock(Connection::class) - line 1583: return mock(MariaDbBuilder::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseMariaDbSchemaStateTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 17: $connection = $this->createMock(MariaDbConnection::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseMigrationCreatorTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 103: $files = m::mock(Filesystem::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseMigrationMigrateCommandTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 153: $mutex = m::mock(CommandMutex::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseMigrationRepositoryTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 119: return new DatabaseMigrationRepository(m::mock(ConnectionResolverInterface::class), 'migrations'); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseMigratorIntegrationTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 61: $output = m::mock(OutputStyle::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseMySqlSchemaGrammarTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1592: $connection = m::mock(Connection::class) - line 1644: return mock(MySqlBuilder::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseMySqlSchemaStateTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 19: $connection = $this->createMock(MySqlConnection::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabasePostgresBuilderTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 287: return m::mock(Connection::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabasePostgresSchemaGrammarTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1283: $connection = m::mock(Connection::class) - line 1304: return mock(PostgresBuilder::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseQueryBuilderTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 7102: $connection = m::mock(Connection::class); - line 7113: $processor = m::mock(Processor::class); - line 7122: $processor = m::mock(Processor::class); - line 7131: $processor = m::mock(Processor::class); - line 7140: $processor = m::mock(Processor::class); - line 7149: $processor = m::mock(Processor::class); - line 7158: $processor = m::mock(Processor::class); - line 7189: m::mock(Processor::class), ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseQueryExceptionTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 53: $connection = m::mock(Connection::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseSchemaBlueprintTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 660: $connection = m::mock(Connection::class) ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseSQLiteSchemaGrammarTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1142: $connection = m::mock(Connection::class); - line 1162: return mock(SQLiteBuilder::class) ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseSqliteSchemaStateTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 24: $connection = m::mock(SQLiteConnection::class); - line 47: $connection = m::mock(SQLiteConnection::class); - line 52: $files = m::mock(Filesystem::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/DatabaseSqlServerSchemaGrammarTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1013: $connection = m::mock(Connection::class) - line 1034: return mock(SqlServerBuilder::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Database/EloquentHasOneOrManyDeprecationTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 66: $queryBuilder = m::mock(QueryBuilder::class); - line 70: $related = m::mock(Model::class); - line 72: $parent = m::mock(Model::class); - line 82: $queryBuilder = m::mock(QueryBuilder::class); - line 86: $related = m::mock(Model::class); - line 88: $parent = m::mock(Model::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Foundation/Bootstrap/LoadEnvironmentVariablesTest.php - [BOOTSTRAP_PURITY_PUTENV] Note: putenv mutates process env for the whole PHP process unless restored. Evidence: - line 15: putenv('FOO'); - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 14: unset($_ENV['FOO'], $_SERVER['FOO']); - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 21: $app = m::mock(Application::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Foundation/FoundationApplicationBuilderTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 15: unset($_ENV['APP_BASE_PATH']); - line 17: unset($_ENV['LARAVEL_STORAGE_PATH'], $_SERVER['LARAVEL_STORAGE_PATH']); ❌ /home/amari/projects/manual/laravel-framework/tests/Foundation/FoundationAuthenticationTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 36: $guard = m::mock(Guard::class); - line 38: $auth = m::mock(AuthManager::class); - line 43: $this->app = m::mock(Application::class); - line 97: $user = m::mock(Authenticatable::class); - line 99: $provider = m::mock(UserProvider::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Foundation/FoundationAuthorizesRequestsTraitTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 148: $_SERVER['_test.authorizes.trait.policy'] = true; - line 155: $_SERVER['_test.authorizes.trait.policy'] = true; ❌ /home/amari/projects/manual/laravel-framework/tests/Foundation/FoundationDocsCommandTest.php - [BOOTSTRAP_PURITY_PUTENV] Note: putenv mutates process env for the whole PHP process unless restored. Evidence: - line 43: putenv('ARTISAN_DOCS_ASK_STRATEGY'); - line 44: putenv('ARTISAN_DOCS_OPEN_STRATEGY'); - line 144: putenv('ARTISAN_DOCS_ASK_STRATEGY='.__DIR__.'/fixtures/bad-syntax-strategy.php'); - line 156: putenv('ARTISAN_DOCS_ASK_STRATEGY='.__DIR__.'/fixtures/bad-return-strategy.php'); ❌ /home/amari/projects/manual/laravel-framework/tests/Foundation/FoundationExceptionsHandlerTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 62: $this->config = m::mock(Config::class); - line 64: $this->viewFactory = m::mock(ViewFactory::class); - line 66: $this->request = m::mock(stdClass::class); - line 76: m::mock(Redirector::class) ❌ /home/amari/projects/manual/laravel-framework/tests/Foundation/FoundationFormRequestTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 286: $translator = m::mock(Translator::class)->shouldReceive('get') - line 300: $redirector = $this->mocks['redirector'] = m::mock(Redirector::class); - line 321: return $this->mocks['generator'] = m::mock(UrlGenerator::class); - line 331: return $this->mocks['redirect'] = m::mock(RedirectResponse::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Foundation/FoundationInteractsWithDatabaseTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 33: $this->connection = m::mock(Connection::class); - line 487: $builder = m::mock(Builder::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Foundation/FoundationViteTest.php - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 1728: unlink(public_path("{$path}/manifest.json")); - line 1751: unlink($path.$asset); - line 1770: unlink($path); ❌ /home/amari/projects/manual/laravel-framework/tests/Foundation/Http/HtmlDumperTest.php - [FORBIDDEN_SUPPRESSED_UNLINK] Evidence: - line 285: return tap(file_get_contents($outputFile), fn () => @unlink($outputFile)); - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 285: return tap(file_get_contents($outputFile), fn () => @unlink($outputFile)); ❌ /home/amari/projects/manual/laravel-framework/tests/Foundation/Testing/DatabaseTruncationTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 191: $connection = m::mock(Connection::class); - line 193: $connection->shouldReceive('getEventDispatcher')->once()->andReturn($dispatcher = m::mock(Dispatcher::class)); ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Console/CommandDurationThresholdTest.php - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 184: Config::set('app.timezone', 'UTC'); - line 192: Config::set('app.timezone', 'Australia/Melbourne'); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Console/EnvironmentDecryptCommandTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 119: $_SERVER['LARAVEL_ENV_ENCRYPTION_KEY'] = 'ponmlkjihgfedcbaponmlkjihgfedcba'; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 141: unset($_SERVER['LARAVEL_ENV_ENCRYPTION_KEY']); ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Console/Scheduling/ScheduleListCommandTest.php - [BOOTSTRAP_PURITY_PUTENV] Note: putenv mutates process env for the whole PHP process unless restored. Evidence: - line 311: putenv('SHELL_VERBOSITY'); ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Cookie/CookieTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 49: $handler = m::mock(ExceptionHandler::class)->shouldIgnoreMissing() ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Database/DatabaseEloquentBroadcastingTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 197: $broadcaster = m::mock(Broadcaster::class); - line 203: $manager = m::mock(BroadcastingFactory::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentMassPrunableTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 22: return m::mock(Dispatcher::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelCustomEventsTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 19: $_SERVER['fired_event'] = true; ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelEncryptedCastingTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 25: $this->encrypter = $this->mock(Encrypter::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentPivotEventsTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 339: $_SERVER['pivot_attributes'] = $model->getAttributes(); - line 340: $_SERVER['pivot_dirty_attributes'] = $model->getDirty(); ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Foundation/Console/ConfigCacheCommandTest.php - [FORBIDDEN_BOOTSTRAP_CACHE_FILE_REFERENCE] Evidence: - line 15: 'bootstrap/cache/config.php', - [FORBIDDEN_BOOTSTRAP_CACHE_TOUCH] Evidence: - line 15: 'bootstrap/cache/config.php', ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Foundation/Console/OptimizeCommandTest.php - [FORBIDDEN_BOOTSTRAP_CACHE_FILE_REFERENCE] Evidence: - line 15: 'bootstrap/cache/config.php', - line 17: 'bootstrap/cache/routes-v7.php', - [FORBIDDEN_BOOTSTRAP_CACHE_TOUCH] Evidence: - line 15: 'bootstrap/cache/config.php', - line 16: 'bootstrap/cache/events.php', - line 17: 'bootstrap/cache/routes-v7.php', ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Foundation/MaintenanceModeTest.php - [FORBIDDEN_SUPPRESSED_UNLINK] Evidence: - line 22: @unlink(storage_path('framework/down')); - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 22: @unlink(storage_path('framework/down')); ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Migration/MigratorTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 27: $this->output = m::mock(OutputInterface::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Notifications/SendingMailNotificationsTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 29: $this->mailFactory = m::mock(MailFactory::class); - line 30: $this->mailer = m::mock(Mailer::class); - line 32: $this->markdown = m::mock(Markdown::class); - line 448: $mailable = m::mock(Mailable::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Queue/CallQueuedHandlerTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 222: $_SERVER['__test.dispatchMiddleware'] = true; ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Queue/RateLimitedTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 174: $job = m::mock(Job::class); - line 193: $job = m::mock(Job::class); - line 212: $job = m::mock(Job::class); - line 231: $job = m::mock(Job::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Queue/RateLimitedWithRedisTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 136: $job = m::mock(Job::class); - line 155: $job = m::mock(Job::class); - line 174: $job = m::mock(Job::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Queue/SkipIfBatchCancelledTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 43: $job = m::mock(Job::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Queue/SkipMiddlewareTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 88: $job = m::mock(Job::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Queue/ThrottlesExceptionsTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 59: $job = m::mock(Job::class); - line 79: $job = m::mock(Job::class); - line 101: $job = m::mock(Job::class); - line 122: $job = m::mock(Job::class); - line 143: $job = m::mock(Job::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Queue/ThrottlesExceptionsWithRedisTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 70: $job = m::mock(Job::class); - line 89: $job = m::mock(Job::class); - line 110: $job = m::mock(Job::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Routing/SerializableClosureV1CacheRouteTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 34: $_ENV['APP_ROUTES_CACHE'] = realpath(join_paths(__DIR__, 'stubs', 'serializable-closure-v1', 'routes-v7.php')); - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 43: unset($_ENV['APP_ROUTES_CACHE']); ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Session/SessionPersistenceTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 38: $handler = m::mock(ExceptionHandler::class)->shouldIgnoreMissing() ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Support/FacadesTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 19: unset($_SERVER['__laravel.authResolved']); ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Testing/TestWithoutDatabaseParallelTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 28: $_SERVER['LARAVEL_PARALLEL_TESTING'] = 1; - line 29: $_SERVER['LARAVEL_PARALLEL_TESTING_WITHOUT_DATABASES'] = 1; - line 30: $_SERVER['TEST_TOKEN'] = '1'; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 33: unset( ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Validation/Rules/DateFormatValidationTest.php - [BOOTSTRAP_PURITY_TIMEZONE] Note: date_default_timezone_set mutates global timezone unless restored. Evidence: - line 15: date_default_timezone_set($timezone); ❌ /home/amari/projects/manual/laravel-framework/tests/Integration/Validation/ValidatorTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 51: $_SERVER['CUSTOM_MODEL_KEY_NAME'] = 'uuid'; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 70: unset($_SERVER['CUSTOM_MODEL_KEY_NAME']); ❌ /home/amari/projects/manual/laravel-framework/tests/Mail/MailableQueuedTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 175: return ['smtp', m::mock(Factory::class), m::mock(TransportInterface::class)]; ❌ /home/amari/projects/manual/laravel-framework/tests/Mail/MailMailableTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 585: $view = m::mock(Factory::class); - line 606: $view = m::mock(Factory::class); - line 663: $view = m::mock(Factory::class); - line 680: $view = m::mock(Factory::class); - line 1147: $view = m::mock(Factory::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Mail/MailMailerTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 20: unset($_SERVER['__mailer.test']); - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 27: $view = m::mock(Factory::class); - line 42: $view = m::mock(Factory::class); - line 67: $view = m::mock(Factory::class); - line 86: $view = m::mock(Factory::class); - line 116: $view = m::mock(Factory::class); - line 130: $view = m::mock(Factory::class); - line 162: $view = m::mock(Factory::class); - line 194: $view = m::mock(Factory::class); - line 209: $view = m::mock(Factory::class); - line 225: $view = m::mock(Factory::class); - line 241: $view = m::mock(Factory::class); - line 271: $view = m::mock(Factory::class); - line 287: $view = m::mock(Factory::class); - line 291: $events = m::mock(Dispatcher::class); - line 308: $mailer = new Mailer('array', m::mock(Factory::class), new ArrayTransport); ❌ /home/amari/projects/manual/laravel-framework/tests/Mail/MailMarkdownTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 21: $viewFactory = m::mock(Factory::class); - line 22: $engineResolver = m::mock(EngineResolver::class); - line 23: $bladeCompiler = m::mock(BladeCompiler::class); - line 45: $viewFactory = m::mock(Factory::class); - line 46: $engineResolver = m::mock(EngineResolver::class); - line 47: $bladeCompiler = m::mock(BladeCompiler::class); - line 70: $viewFactory = m::mock(Factory::class); - line 71: $engineResolver = m::mock(EngineResolver::class); - line 72: $bladeCompiler = m::mock(BladeCompiler::class); - line 95: $viewFactory = m::mock(Factory::class); - line 109: $viewFactory = m::mock(Factory::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Mail/MailMessageTest.php - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 103: unlink($path); - line 139: unlink($path); - line 177: unlink($path); - line 217: unlink($path); - line 242: unlink($path); ❌ /home/amari/projects/manual/laravel-framework/tests/Mail/MailSesTransportTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 67: $client = m::mock(SesClient::class); - line 94: $client = m::mock(SesClient::class); - line 131: $container->instance('view', $this->createMock(Factory::class)); ❌ /home/amari/projects/manual/laravel-framework/tests/Mail/MailSesV2TransportTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 67: $client = m::mock(SesV2Client::class); - line 94: $client = m::mock(SesV2Client::class); - line 131: $container->instance('view', $this->createMock(Factory::class)); ❌ /home/amari/projects/manual/laravel-framework/tests/Pipeline/PipelineTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 436: $_SERVER['__test.pipe.one'] = $piped; - line 451: $_SERVER['__test.pipe.one'] = $piped; - line 461: $_SERVER['__test.pipe.parameters'] = [$parameter1, $parameter2]; ❌ /home/amari/projects/manual/laravel-framework/tests/Queue/QueueBeanstalkdJobTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 77: m::mock(Container::class), - line 79: m::mock(JobIdInterface::class), ❌ /home/amari/projects/manual/laravel-framework/tests/Queue/QueueRedisJobTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 49: m::mock(Container::class), - line 50: m::mock(RedisQueue::class), ❌ /home/amari/projects/manual/laravel-framework/tests/Queue/QueueSqsJobTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 48: $this->mockedSqsClient = m::mock(SqsClient::class)->makePartial(); - line 51: $this->mockedContainer = m::mock(Container::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Queue/QueueSqsQueueTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 52: $this->sqs = m::mock(SqsClient::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Queue/QueueSyncQueueTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 185: $_SERVER['__sync.test'] = func_get_args(); - line 198: $_SERVER['__sync.failed'] = true; - line 215: $_SERVER['__sync.failed'] = $payload['data']['extra']; ❌ /home/amari/projects/manual/laravel-framework/tests/Routing/RouteRegistrarTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 28: $this->router = new Router(m::mock(Dispatcher::class), Container::getInstance()); ❌ /home/amari/projects/manual/laravel-framework/tests/Routing/RoutingRedirectorTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 24: $this->headers = m::mock(HeaderBag::class); - line 26: $this->request = m::mock(Request::class); - line 34: $this->url = m::mock(UrlGenerator::class); - line 43: $this->session = m::mock(Store::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Routing/RoutingRouteTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 2331: $_SERVER['__test.controller_callAction_parameters'] = $parameters; - line 2398: $_SERVER['route.test.controller.middleware'] = true; - line 2400: $_SERVER['route.test.controller.middleware.class'] = get_class($response); - line 2418: $_SERVER['route.test.controller.middleware.parameters.one'] = $parameter; - line 2428: $_SERVER['route.test.controller.middleware.parameters.two'] = [$parameter1, $parameter2]; - line 2438: $_SERVER['route.test.controller.except.middleware'] = true; - line 2515: $_SERVER['__middleware.group'] = true; ❌ /home/amari/projects/manual/laravel-framework/tests/Session/CacheBasedSessionHandlerTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 19: $this->cacheMock = Mockery::mock(CacheContract::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Session/EncryptedSessionStoreTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 58: m::mock(SessionHandlerInterface::class), - line 59: m::mock(Encrypter::class), ❌ /home/amari/projects/manual/laravel-framework/tests/Session/FileSessionHandlerTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 22: $this->files = Mockery::mock(Filesystem::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Session/SessionStoreTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 686: m::mock(SessionHandlerInterface::class), ❌ /home/amari/projects/manual/laravel-framework/tests/Support/SupportComposerTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 69: $files = m::mock(Filesystem::class); - line 72: $process = m::mock(Process::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Support/SupportFacadesEventTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 30: $this->events = m::mock(Dispatcher::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Support/SupportFacadesQueueTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 22: $this->queueManager = m::mock(Factory::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Support/SupportHelpersTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 1531: $_SERVER['required-exists'] = 'some-value'; ❌ /home/amari/projects/manual/laravel-framework/tests/Support/SupportServiceProviderTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 22: $this->app = $app = m::mock(Application::class)->makePartial(); - line 23: $config = m::mock(Config::class)->makePartial(); - [FORBIDDEN_SUPPRESSED_UNLINK] Evidence: - line 40: @unlink($this->tempFile); - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 40: @unlink($this->tempFile); ❌ /home/amari/projects/manual/laravel-framework/tests/Support/SupportTestingBusFakeTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 26: $this->fake = new BusFake(m::mock(QueueingDispatcher::class)); ❌ /home/amari/projects/manual/laravel-framework/tests/Support/SupportTestingEventFakeTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 18: $this->fake = new EventFake(m::mock(Dispatcher::class)); ❌ /home/amari/projects/manual/laravel-framework/tests/Testing/Concerns/InteractsWithDatabaseTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 143: $connection = m::mock(Connection::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Testing/Concerns/TestDatabasesTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 31: $_SERVER['LARAVEL_PARALLEL_TESTING'] = 1; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 107: unset($_SERVER['LARAVEL_PARALLEL_TESTING']); - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 23: return m::mock(Config::class) ❌ /home/amari/projects/manual/laravel-framework/tests/Testing/Console/ConfigShowCommandTest.php - [BOOTSTRAP_PURITY_PUTENV] Note: putenv mutates process env for the whole PHP process unless restored. Evidence: - line 14: putenv('COLUMNS=64'); ❌ /home/amari/projects/manual/laravel-framework/tests/Testing/ParallelTestingTest.php - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 18: $_SERVER['LARAVEL_PARALLEL_TESTING'] = 1; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 106: unset($_SERVER['LARAVEL_PARALLEL_TESTING']); ❌ /home/amari/projects/manual/laravel-framework/tests/Translation/TranslationTranslatorTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 370: return m::mock(Loader::class); ❌ /home/amari/projects/manual/laravel-framework/tests/Validation/ValidationFileRuleTest.php - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 436: unlink($path); ❌ /home/amari/projects/manual/laravel-framework/tests/Validation/ValidationValidatorTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 9985: return m::mock(TranslatorContract::class); ❌ /home/amari/projects/manual/laravel-framework/tests/View/Blade/AbstractBladeTestCase.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 40: return m::mock(Filesystem::class); ❌ /home/amari/projects/manual/laravel-framework/tests/View/Blade/BladeComponentTagCompilerTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 952: $container->instance(Factory::class, $factory = m::mock(Factory::class)); ❌ /home/amari/projects/manual/laravel-framework/tests/View/ComponentTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 30: $this->config = m::mock(Config::class); - line 34: $this->viewFactory = m::mock(Factory::class); ❌ /home/amari/projects/manual/laravel-framework/tests/View/ViewBladeCompilerTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 305: return m::mock(Filesystem::class); ❌ /home/amari/projects/manual/laravel-framework/tests/View/ViewCompilerEngineTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 300: return new CompilerEngine(m::mock(CompilerInterface::class), $filesystem ?: new Filesystem); ❌ /home/amari/projects/manual/laravel-framework/tests/View/ViewFactoryTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1087: m::mock(EngineResolver::class), - line 1088: m::mock(ViewFinderInterface::class), - line 1089: m::mock(DispatcherContract::class) - line 1096: m::mock(EngineResolver::class), - line 1097: m::mock(ViewFinderInterface::class), - line 1098: m::mock(DispatcherContract::class), ❌ /home/amari/projects/manual/laravel-framework/tests/View/ViewFileViewFinderTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 168: return new FileViewFinder(m::mock(Filesystem::class), [__DIR__]); ❌ /home/amari/projects/manual/laravel-framework/tests/View/ViewTest.php - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 239: m::mock(Factory::class), - line 240: m::mock(Engine::class), TEST-LEVEL VIOLATIONS: ❌ tests/Auth/AuthAccessGateTest.php - Test @ line 19: public function testBasicClosuresCanBeDefined() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 19: public function testBasicClosuresCanBeDefined() - line 21: $gate = $this->getBasicGate(); - line 23: $gate->define('foo', function ($user) { - line 26: $gate->define('bar', function ($user) { - line 30: $this->assertTrue($gate->check('foo')); - line 31: $this->assertFalse($gate->check('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 34: public function testBeforeCanTakeAnArrayCallbackAsObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 34: public function testBeforeCanTakeAnArrayCallbackAsObject() - line 40: $gate->before([new AccessGateTestBeforeCallback, 'allowEverything']); - line 42: $this->assertTrue($gate->check('anything')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 45: public function testBeforeCanTakeAnArrayCallbackAsObjectStatic() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 45: public function testBeforeCanTakeAnArrayCallbackAsObjectStatic() - line 51: $gate->before([new AccessGateTestBeforeCallback, 'allowEverythingStatically']); - line 53: $this->assertTrue($gate->check('anything')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 56: public function testBeforeCanTakeAnArrayCallbackWithStaticMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 56: public function testBeforeCanTakeAnArrayCallbackWithStaticMethod() - line 62: $gate->before([AccessGateTestBeforeCallback::class, 'allowEverythingStatically']); - line 64: $this->assertTrue($gate->check('anything')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 67: public function testBeforeCanAllowGuests() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 67: public function testBeforeCanAllowGuests() - line 73: $gate->before(function (?stdClass $user) { - line 77: $this->assertTrue($gate->check('anything')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 80: public function testAfterCanAllowGuests() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 80: public function testAfterCanAllowGuests() - line 86: $gate->after(function (?stdClass $user) { - line 90: $this->assertTrue($gate->check('anything')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 93: public function testClosuresCanAllowGuestUsers() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 93: public function testClosuresCanAllowGuestUsers() - line 99: $gate->define('foo', function (?stdClass $user) { - line 103: $gate->define('bar', function (stdClass $user) { - line 107: $this->assertTrue($gate->check('foo')); - line 108: $this->assertFalse($gate->check('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 111: public function testPoliciesCanAllowGuests() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 111: public function testPoliciesCanAllowGuests() - line 119: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicyThatAllowsGuests::class); - line 121: $this->assertTrue($gate->check('edit', new AccessGateTestDummy)); - line 122: $this->assertFalse($gate->check('update', new AccessGateTestDummy)); - line 125: $gate = $this->getBasicGate(); - line 127: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicyThatAllowsGuests::class); - line 129: $this->assertTrue($gate->check('edit', new AccessGateTestDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 113: unset($_SERVER['__laravel.testBefore']); - line 132: unset($_SERVER['__laravel.testBefore']); - Test @ line 135: public function testPolicyBeforeNotCalledWithGuestsIfItDoesntAllowThem() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 135: public function testPolicyBeforeNotCalledWithGuestsIfItDoesntAllowThem() - line 143: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicyWithNonGuestBefore::class); - line 145: $this->assertTrue($gate->check('edit', new AccessGateTestDummy)); - line 146: $this->assertFalse($gate->check('update', new AccessGateTestDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 137: $_SERVER['__laravel.testBefore'] = false; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 149: unset($_SERVER['__laravel.testBefore']); - Test @ line 152: public function testBeforeAndAfterCallbacksCanAllowGuests() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 152: public function testBeforeAndAfterCallbacksCanAllowGuests() - line 163: $gate->before(function (?stdClass $user) { - line 167: $gate->after(function (?stdClass $user) { - line 171: $gate->before(function (stdClass $user) { - line 175: $gate->after(function (stdClass $user) { - line 179: $gate->define('foo', function ($user = null) { - line 183: $this->assertTrue($gate->check('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 154: $_SERVER['__laravel.gateBefore'] = false; - line 155: $_SERVER['__laravel.gateBefore2'] = false; - line 156: $_SERVER['__laravel.gateAfter'] = false; - line 157: $_SERVER['__laravel.gateAfter2'] = false; - line 164: $_SERVER['__laravel.gateBefore'] = true; - line 168: $_SERVER['__laravel.gateAfter'] = true; - line 172: $_SERVER['__laravel.gateBefore2'] = true; - line 176: $_SERVER['__laravel.gateAfter2'] = true; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 190: unset( - Test @ line 198: public function testResourceGatesCanBeDefined() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 198: public function testResourceGatesCanBeDefined() - line 200: $gate = $this->getBasicGate(); - line 202: $gate->resource('test', AccessGateTestResource::class); - line 206: $this->assertTrue($gate->check('test.view')); - line 207: $this->assertTrue($gate->check('test.create')); - line 208: $this->assertTrue($gate->check('test.update', $dummy)); - line 209: $this->assertTrue($gate->check('test.delete', $dummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 212: public function testCustomResourceGatesCanBeDefined() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 212: public function testCustomResourceGatesCanBeDefined() - line 214: $gate = $this->getBasicGate(); - line 221: $gate->resource('test', AccessGateTestCustomResource::class, $abilities); - line 223: $this->assertTrue($gate->check('test.ability1')); - line 224: $this->assertTrue($gate->check('test.ability2')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 227: public function testBeforeCallbacksCanOverrideResultIfNecessary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 227: public function testBeforeCallbacksCanOverrideResultIfNecessary() - line 229: $gate = $this->getBasicGate(); - line 231: $gate->define('foo', function ($user) { - line 234: $gate->before(function ($user, $ability) { - line 240: $this->assertFalse($gate->check('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 243: public function testBeforeCallbacksDontInterruptGateCheckIfNoValueIsReturned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 243: public function testBeforeCallbacksDontInterruptGateCheckIfNoValueIsReturned() - line 245: $gate = $this->getBasicGate(); - line 247: $gate->define('foo', function ($user) { - line 250: $gate->before(function () { - line 254: $this->assertTrue($gate->check('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 257: public function testAfterCallbacksAreCalledWithResult() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 257: public function testAfterCallbacksAreCalledWithResult() - line 259: $gate = $this->getBasicGate(); - line 261: $gate->define('foo', function ($user) { - line 265: $gate->define('bar', function ($user) { - line 269: $gate->after(function ($user, $ability, $result) { - line 279: $this->assertTrue($gate->check('foo')); - line 280: $this->assertFalse($gate->check('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 284: public function testAfterCallbacksCanAllowIfNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 284: public function testAfterCallbacksCanAllowIfNull() - line 286: $gate = $this->getBasicGate(); - line 288: $gate->after(function ($user, $ability, $result) { - line 292: $this->assertTrue($gate->allows('null')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 295: public function testAfterCallbacksDoNotOverridePreviousResult() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 295: public function testAfterCallbacksDoNotOverridePreviousResult() - line 297: $gate = $this->getBasicGate(); - line 299: $gate->define('deny', function ($user) { - line 303: $gate->define('allow', function ($user) { - line 307: $gate->after(function ($user, $ability, $result) { - line 311: $this->assertTrue($gate->allows('allow')); - line 312: $this->assertTrue($gate->denies('deny')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 315: public function testAfterCallbacksDoNotOverrideEachOther() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 315: public function testAfterCallbacksDoNotOverrideEachOther() - line 317: $gate = $this->getBasicGate(); - line 319: $gate->after(function ($user, $ability, $result) { - line 323: $gate->after(function ($user, $ability, $result) { - line 327: $this->assertTrue($gate->allows('allow')); - line 328: $this->assertTrue($gate->denies('deny')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 331: public function testCanDefineGatesUsingBackedEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 331: public function testCanDefineGatesUsingBackedEnum() - line 333: $gate = $this->getBasicGate(); - line 335: $gate->define(AbilitiesEnum::VIEW_DASHBOARD, function ($user) { - line 339: $this->assertTrue($gate->allows('view-dashboard')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 342: public function testBackedEnumInAllows() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 342: public function testBackedEnumInAllows() - line 344: $gate = $this->getBasicGate(); - line 346: $gate->define(AbilitiesEnum::VIEW_DASHBOARD, function ($user) { - line 350: $this->assertTrue($gate->allows(AbilitiesEnum::VIEW_DASHBOARD)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 353: public function testBackedEnumInDenies() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 353: public function testBackedEnumInDenies() - line 355: $gate = $this->getBasicGate(); - line 357: $gate->define(AbilitiesEnum::VIEW_DASHBOARD, function ($user) { - line 361: $this->assertTrue($gate->denies(AbilitiesEnum::VIEW_DASHBOARD)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 364: public function testArrayAbilitiesInAllows() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 364: public function testArrayAbilitiesInAllows() - line 366: $gate = $this->getBasicGate(); - line 368: $gate->define('allow_1', function ($user) { - line 371: $gate->define('allow_2', function ($user) { - line 374: $gate->define(AbilitiesEnum::VIEW_DASHBOARD, function ($user) { - line 377: $gate->define('deny', function ($user) { - line 381: $this->assertTrue($gate->allows(['allow_1'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 387: public function testArrayAbilitiesInDenies() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 387: public function testArrayAbilitiesInDenies() - line 389: $gate = $this->getBasicGate(); - line 391: $gate->define('deny_1', function ($user) { - line 394: $gate->define('deny_2', function ($user) { - line 397: $gate->define(AbilitiesEnum::VIEW_DASHBOARD, function ($user) { - line 400: $gate->define('allow', function ($user) { - line 404: $this->assertTrue($gate->denies(['deny_1'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 411: public function testCurrentUserThatIsOnGateAlwaysInjectedIntoClosureCallbacks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 411: public function testCurrentUserThatIsOnGateAlwaysInjectedIntoClosureCallbacks() - line 413: $gate = $this->getBasicGate(); - line 415: $gate->define('foo', function ($user) { - line 421: $this->assertTrue($gate->check('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 424: public function testASingleArgumentCanBePassedWhenCheckingAbilities() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 424: public function testASingleArgumentCanBePassedWhenCheckingAbilities() - line 426: $gate = $this->getBasicGate(); - line 430: $gate->before(function ($user, $ability, array $arguments) use ($dummy) { - line 435: $gate->define('foo', function ($user, $x) use ($dummy) { - line 441: $gate->after(function ($user, $ability, $result, array $arguments) use ($dummy) { - line 446: $this->assertTrue($gate->check('foo', $dummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 449: public function testMultipleArgumentsCanBePassedWhenCheckingAbilities() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 449: public function testMultipleArgumentsCanBePassedWhenCheckingAbilities() - line 451: $gate = $this->getBasicGate(); - line 456: $gate->before(function ($user, $ability, array $arguments) use ($dummy1, $dummy2) { - line 461: $gate->define('foo', function ($user, $x, $y) use ($dummy1, $dummy2) { - line 468: $gate->after(function ($user, $ability, $result, array $arguments) use ($dummy1, $dummy2) { - line 473: $this->assertTrue($gate->check('foo', [$dummy1, $dummy2])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 476: public function testClassesCanBeDefinedAsCallbacksUsingAtNotation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 476: public function testClassesCanBeDefinedAsCallbacksUsingAtNotation() - line 478: $gate = $this->getBasicGate(); - line 480: $gate->define('foo', AccessGateTestClass::class.'@foo'); - line 482: $this->assertTrue($gate->check('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 485: public function testInvokableClassesCanBeDefined() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 485: public function testInvokableClassesCanBeDefined() - line 487: $gate = $this->getBasicGate(); - line 489: $gate->define('foo', AccessGateTestInvokableClass::class); - line 491: $this->assertTrue($gate->check('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 494: public function testGatesCanBeDefinedUsingAnArrayCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 494: public function testGatesCanBeDefinedUsingAnArrayCallback() - line 496: $gate = $this->getBasicGate(); - line 498: $gate->define('foo', [new AccessGateTestStaticClass, 'foo']); - line 500: $this->assertTrue($gate->check('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 503: public function testGatesCanBeDefinedUsingAnArrayCallbackWithStaticMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 503: public function testGatesCanBeDefinedUsingAnArrayCallbackWithStaticMethod() - line 505: $gate = $this->getBasicGate(); - line 507: $gate->define('foo', [AccessGateTestStaticClass::class, 'foo']); - line 509: $this->assertTrue($gate->check('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 512: public function testPolicyClassesCanBeDefinedToHandleChecksForGivenType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 512: public function testPolicyClassesCanBeDefinedToHandleChecksForGivenType() - line 514: $gate = $this->getBasicGate(); - line 516: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicy::class); - line 518: $this->assertTrue($gate->check('update', new AccessGateTestDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 521: public function testPolicyClassesHandleChecksForAllSubtypes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 521: public function testPolicyClassesHandleChecksForAllSubtypes() - line 523: $gate = $this->getBasicGate(); - line 525: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicy::class); - line 527: $this->assertTrue($gate->check('update', new AccessGateTestSubDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 530: public function testPolicyClassesHandleChecksForInterfaces() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 530: public function testPolicyClassesHandleChecksForInterfaces() - line 532: $gate = $this->getBasicGate(); - line 534: $gate->policy(AccessGateTestDummyInterface::class, AccessGateTestPolicy::class); - line 536: $this->assertTrue($gate->check('update', new AccessGateTestSubDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 539: public function testPolicyConvertsDashToCamel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 539: public function testPolicyConvertsDashToCamel() - line 541: $gate = $this->getBasicGate(); - line 543: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicy::class); - line 545: $this->assertTrue($gate->check('update-dash', new AccessGateTestDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 548: public function testPolicyDefaultToFalseIfMethodDoesNotExistAndGateDoesNotExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 548: public function testPolicyDefaultToFalseIfMethodDoesNotExistAndGateDoesNotExist() - line 550: $gate = $this->getBasicGate(); - line 552: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicy::class); - line 554: $this->assertFalse($gate->check('nonexistent_method', new AccessGateTestDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 557: public function testPolicyClassesCanBeDefinedToHandleChecksForGivenClassName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 557: public function testPolicyClassesCanBeDefinedToHandleChecksForGivenClassName() - line 559: $gate = $this->getBasicGate(true); - line 561: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicy::class); - line 563: $this->assertTrue($gate->check('create', [AccessGateTestDummy::class, true])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 566: public function testPoliciesMayHaveBeforeMethodsToOverrideChecks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 566: public function testPoliciesMayHaveBeforeMethodsToOverrideChecks() - line 568: $gate = $this->getBasicGate(); - line 570: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicyWithBefore::class); - line 572: $this->assertTrue($gate->check('update', new AccessGateTestDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 575: public function testPoliciesAlwaysOverrideClosuresWithSameName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 575: public function testPoliciesAlwaysOverrideClosuresWithSameName() - line 577: $gate = $this->getBasicGate(); - line 579: $gate->define('update', function () { - line 583: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicy::class); - line 585: $this->assertTrue($gate->check('update', new AccessGateTestDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 588: public function testPoliciesDeferToGatesIfMethodDoesNotExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 588: public function testPoliciesDeferToGatesIfMethodDoesNotExist() - line 590: $gate = $this->getBasicGate(); - line 592: $gate->define('nonexistent_method', function ($user) { - line 596: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicy::class); - line 598: $this->assertTrue($gate->check('nonexistent_method', new AccessGateTestDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 601: public function testForUserMethodAttachesANewUserToANewGateInstance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 601: public function testForUserMethodAttachesANewUserToANewGateInstance() - line 603: $gate = $this->getBasicGate(); - line 606: $gate->define('foo', function ($user) { - line 612: $this->assertTrue($gate->forUser((object) ['id' => 2])->check('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 615: public function testForUserMethodAttachesANewUserToANewGateInstanceWithGuessCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 615: public function testForUserMethodAttachesANewUserToANewGateInstanceWithGuessCallback() - line 617: $gate = $this->getBasicGate(); - line 619: $gate->define('foo', function () { - line 627: $gate->guessPolicyNamesUsing($guesserCallback); - line 628: $gate->getPolicyFor('fooClass'); - line 632: $newGate = $gate->forUser((object) ['id' => 1]); - line 634: $newGate->getPolicyFor('fooClass'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 615: public function testForUserMethodAttachesANewUserToANewGateInstanceWithGuessCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 642: public function testDefineSecondParameterShouldBeStringOrCallable($callback) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 642: public function testDefineSecondParameterShouldBeStringOrCallable($callback) - line 644: $this->expectException(InvalidArgumentException::class); - line 646: $gate = $this->getBasicGate(); - line 648: $gate->define('foo', $callback); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 642: public function testDefineSecondParameterShouldBeStringOrCallable($callback) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 664: public function testAuthorizeThrowsUnauthorizedException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 664: public function testAuthorizeThrowsUnauthorizedException() - line 666: $this->expectException(AuthorizationException::class); - line 667: $this->expectExceptionMessage('You are not an admin.'); - line 668: $this->expectExceptionCode(0); - line 670: $gate = $this->getBasicGate(); - line 672: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicy::class); - line 674: $gate->authorize('create', new AccessGateTestDummy); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 664: public function testAuthorizeThrowsUnauthorizedException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 677: public function testAuthorizeThrowsUnauthorizedExceptionWithCustomStatusCode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 677: public function testAuthorizeThrowsUnauthorizedExceptionWithCustomStatusCode() - line 679: $this->expectException(AuthorizationException::class); - line 680: $this->expectExceptionMessage('Not allowed to view as it is not published.'); - line 681: $this->expectExceptionCode('unpublished'); - line 683: $gate = $this->getBasicGate(); - line 685: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicyWithCode::class); - line 687: $gate->authorize('view', new AccessGateTestDummy); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 677: public function testAuthorizeThrowsUnauthorizedExceptionWithCustomStatusCode() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 690: public function testAuthorizeWithPolicyThatReturnsDeniedResponseObjectThrowsException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 690: public function testAuthorizeWithPolicyThatReturnsDeniedResponseObjectThrowsException() - line 692: $this->expectException(AuthorizationException::class); - line 693: $this->expectExceptionMessage('Not allowed.'); - line 694: $this->expectExceptionCode('some_code'); - line 696: $gate = $this->getBasicGate(); - line 698: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicyWithDeniedResponseObject::class); - line 700: $gate->authorize('create', new AccessGateTestDummy); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 690: public function testAuthorizeWithPolicyThatReturnsDeniedResponseObjectThrowsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 703: public function testPolicyThatThrowsAuthorizationExceptionIsCaughtInInspect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 703: public function testPolicyThatThrowsAuthorizationExceptionIsCaughtInInspect() - line 705: $gate = $this->getBasicGate(); - line 707: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicyThrowingAuthorizationException::class); - line 709: $response = $gate->inspect('create', new AccessGateTestDummy); - line 711: $this->assertTrue($response->denied()); - line 712: $this->assertFalse($response->allowed()); - line 713: $this->assertSame('Not allowed.', $response->message()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 717: public function testAuthorizeReturnsAllowedResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 717: public function testAuthorizeReturnsAllowedResponse() - line 719: $gate = $this->getBasicGate(true); - line 721: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicy::class); - line 723: $check = $gate->check('create', new AccessGateTestDummy); - line 724: $response = $gate->authorize('create', new AccessGateTestDummy); - line 727: $this->assertNull($response->message()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 717: public function testAuthorizeReturnsAllowedResponse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 731: public function testResponseReturnsResponseWhenAbilityGranted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 731: public function testResponseReturnsResponseWhenAbilityGranted() - line 733: $gate = $this->getBasicGate(true); - line 735: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicyWithCode::class); - line 737: $response = $gate->inspect('view', new AccessGateTestDummy); - line 740: $this->assertNull($response->message()); - line 741: $this->assertTrue($response->allowed()); - line 742: $this->assertFalse($response->denied()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 746: public function testResponseReturnsResponseWhenAbilityDenied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 746: public function testResponseReturnsResponseWhenAbilityDenied() - line 748: $gate = $this->getBasicGate(); - line 750: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicyWithCode::class); - line 752: $response = $gate->inspect('view', new AccessGateTestDummy); - line 755: $this->assertSame('Not allowed to view as it is not published.', $response->message()); - line 756: $this->assertFalse($response->allowed()); - line 757: $this->assertTrue($response->denied()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 761: public function testAuthorizeReturnsAnAllowedResponseForATruthyReturn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 761: public function testAuthorizeReturnsAnAllowedResponseForATruthyReturn() - line 763: $gate = $this->getBasicGate(); - line 765: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicy::class); - line 767: $response = $gate->authorize('update', new AccessGateTestDummy); - line 770: $this->assertNull($response->message()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 761: public function testAuthorizeReturnsAnAllowedResponseForATruthyReturn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 773: public function testAllowIfAuthorizesTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 773: public function testAllowIfAuthorizesTrue() - line 775: $response = $this->getBasicGate()->allowIf(true); - line 777: $this->assertTrue($response->allowed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 780: public function testAllowIfAuthorizesTruthy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 780: public function testAllowIfAuthorizesTruthy() - line 782: $response = $this->getBasicGate()->allowIf('truthy'); - line 784: $this->assertTrue($response->allowed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 787: public function testAllowIfAuthorizesIfGuest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 787: public function testAllowIfAuthorizesIfGuest() - line 789: $response = $this->getBasicGate()->forUser(null)->allowIf(true); - line 791: $this->assertTrue($response->allowed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 794: public function testAllowIfAuthorizesCallbackTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 794: public function testAllowIfAuthorizesCallbackTrue() - line 796: $response = $this->getBasicGate()->allowIf(function ($user) { - line 802: $this->assertTrue($response->allowed()); - line 803: $this->assertSame('foo', $response->message()); - line 804: $this->assertSame('bar', $response->code()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 807: public function testAllowIfAuthorizesResponseAllowed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 807: public function testAllowIfAuthorizesResponseAllowed() - line 809: $response = $this->getBasicGate()->allowIf(Response::allow('foo', 'bar')); - line 811: $this->assertTrue($response->allowed()); - line 812: $this->assertSame('foo', $response->message()); - line 813: $this->assertSame('bar', $response->code()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 816: public function testAllowIfAuthorizesCallbackResponseAllowed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 816: public function testAllowIfAuthorizesCallbackResponseAllowed() - line 818: $response = $this->getBasicGate()->allowIf(function () { - line 822: $this->assertTrue($response->allowed()); - line 823: $this->assertSame('quz', $response->message()); - line 824: $this->assertSame('qux', $response->code()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 827: public function testAllowsIfCallbackAcceptsGuestsWhenAuthenticated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 827: public function testAllowsIfCallbackAcceptsGuestsWhenAuthenticated() - line 829: $response = $this->getBasicGate()->allowIf(function (?stdClass $user = null) { - line 833: $this->assertTrue($response->allowed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 836: public function testAllowIfCallbackAcceptsGuestsWhenUnauthenticated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 836: public function testAllowIfCallbackAcceptsGuestsWhenUnauthenticated() - line 838: $gate = $this->getBasicGate()->forUser(null); - line 840: $response = $gate->allowIf(function (?stdClass $user = null) { - line 844: $this->assertTrue($response->allowed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 847: public function testAllowIfThrowsExceptionWhenFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 847: public function testAllowIfThrowsExceptionWhenFalse() - line 849: $this->expectException(AuthorizationException::class); - line 851: $this->getBasicGate()->allowIf(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 847: public function testAllowIfThrowsExceptionWhenFalse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 854: public function testAllowIfThrowsExceptionWhenCallbackFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 854: public function testAllowIfThrowsExceptionWhenCallbackFalse() - line 856: $this->expectException(AuthorizationException::class); - line 857: $this->expectExceptionMessage('foo'); - line 858: $this->expectExceptionCode('bar'); - line 860: $this->getBasicGate()->allowIf(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 854: public function testAllowIfThrowsExceptionWhenCallbackFalse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 865: public function testAllowIfThrowsExceptionWhenResponseDenied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 865: public function testAllowIfThrowsExceptionWhenResponseDenied() - line 867: $this->expectException(AuthorizationException::class); - line 868: $this->expectExceptionMessage('foo'); - line 869: $this->expectExceptionCode('bar'); - line 871: $this->getBasicGate()->allowIf(Response::deny('foo', 'bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 865: public function testAllowIfThrowsExceptionWhenResponseDenied() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 874: public function testAllowIfThrowsExceptionWhenCallbackResponseDenied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 874: public function testAllowIfThrowsExceptionWhenCallbackResponseDenied() - line 876: $this->expectException(AuthorizationException::class); - line 877: $this->expectExceptionMessage('quz'); - line 878: $this->expectExceptionCode('qux'); - line 880: $this->getBasicGate()->allowIf(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 874: public function testAllowIfThrowsExceptionWhenCallbackResponseDenied() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 885: public function testAllowIfThrowsExceptionIfUnauthenticated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 885: public function testAllowIfThrowsExceptionIfUnauthenticated() - line 887: $this->expectException(AuthorizationException::class); - line 888: $this->expectExceptionMessage('foo'); - line 889: $this->expectExceptionCode('bar'); - line 891: $gate = $this->getBasicGate()->forUser(null); - line 893: $gate->allowIf(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 885: public function testAllowIfThrowsExceptionIfUnauthenticated() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 898: public function testAllowIfThrowsExceptionIfAuthUserExpectedWhenGuest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 898: public function testAllowIfThrowsExceptionIfAuthUserExpectedWhenGuest() - line 900: $this->expectException(AuthorizationException::class); - line 901: $this->expectExceptionMessage('foo'); - line 902: $this->expectExceptionCode('bar'); - line 904: $gate = $this->getBasicGate()->forUser(null); - line 906: $gate->allowIf(function (stdClass $user) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 898: public function testAllowIfThrowsExceptionIfAuthUserExpectedWhenGuest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 911: public function testDenyIfAuthorizesFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 911: public function testDenyIfAuthorizesFalse() - line 913: $response = $this->getBasicGate()->denyIf(false); - line 915: $this->assertTrue($response->allowed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 918: public function testDenyIfAuthorizesFalsy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 918: public function testDenyIfAuthorizesFalsy() - line 920: $response = $this->getBasicGate()->denyIf(0); - line 922: $this->assertTrue($response->allowed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 925: public function testDenyIfAuthorizesIfGuest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 925: public function testDenyIfAuthorizesIfGuest() - line 927: $response = $this->getBasicGate()->forUser(null)->denyIf(false); - line 929: $this->assertTrue($response->allowed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 932: public function testDenyIfAuthorizesCallbackFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 932: public function testDenyIfAuthorizesCallbackFalse() - line 934: $response = $this->getBasicGate()->denyIf(function ($user) { - line 940: $this->assertTrue($response->allowed()); - line 941: $this->assertSame('foo', $response->message()); - line 942: $this->assertSame('bar', $response->code()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 945: public function testDenyIfAuthorizesResponseAllowed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 945: public function testDenyIfAuthorizesResponseAllowed() - line 947: $response = $this->getBasicGate()->denyIf(Response::allow('foo', 'bar')); - line 949: $this->assertTrue($response->allowed()); - line 950: $this->assertSame('foo', $response->message()); - line 951: $this->assertSame('bar', $response->code()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 954: public function testDenyIfAuthorizesCallbackResponseAllowed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 954: public function testDenyIfAuthorizesCallbackResponseAllowed() - line 956: $response = $this->getBasicGate()->denyIf(function () { - line 960: $this->assertTrue($response->allowed()); - line 961: $this->assertSame('quz', $response->message()); - line 962: $this->assertSame('qux', $response->code()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 965: public function testDenyIfCallbackAcceptsGuestsWhenAuthenticated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 965: public function testDenyIfCallbackAcceptsGuestsWhenAuthenticated() - line 967: $response = $this->getBasicGate()->denyIf(function (?stdClass $user = null) { - line 971: $this->assertTrue($response->allowed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 974: public function testDenyIfCallbackAcceptsGuestsWhenUnauthenticated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 974: public function testDenyIfCallbackAcceptsGuestsWhenUnauthenticated() - line 976: $gate = $this->getBasicGate()->forUser(null); - line 978: $response = $gate->denyIf(function (?stdClass $user = null) { - line 982: $this->assertTrue($response->allowed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 985: public function testDenyIfThrowsExceptionWhenTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 985: public function testDenyIfThrowsExceptionWhenTrue() - line 987: $this->expectException(AuthorizationException::class); - line 989: $this->getBasicGate()->denyIf(true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 985: public function testDenyIfThrowsExceptionWhenTrue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 992: public function testDenyIfThrowsExceptionWhenCallbackTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 992: public function testDenyIfThrowsExceptionWhenCallbackTrue() - line 994: $this->expectException(AuthorizationException::class); - line 995: $this->expectExceptionMessage('foo'); - line 996: $this->expectExceptionCode('bar'); - line 998: $this->getBasicGate()->denyIf(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 992: public function testDenyIfThrowsExceptionWhenCallbackTrue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1003: public function testDenyIfThrowsExceptionWhenResponseDenied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1003: public function testDenyIfThrowsExceptionWhenResponseDenied() - line 1005: $this->expectException(AuthorizationException::class); - line 1006: $this->expectExceptionMessage('foo'); - line 1007: $this->expectExceptionCode('bar'); - line 1009: $this->getBasicGate()->denyIf(Response::deny('foo', 'bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1003: public function testDenyIfThrowsExceptionWhenResponseDenied() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1012: public function testDenyIfThrowsExceptionWhenCallbackResponseDenied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1012: public function testDenyIfThrowsExceptionWhenCallbackResponseDenied() - line 1014: $this->expectException(AuthorizationException::class); - line 1015: $this->expectExceptionMessage('quz'); - line 1016: $this->expectExceptionCode('qux'); - line 1018: $this->getBasicGate()->denyIf(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1012: public function testDenyIfThrowsExceptionWhenCallbackResponseDenied() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1023: public function testDenyIfThrowsExceptionIfUnauthenticated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1023: public function testDenyIfThrowsExceptionIfUnauthenticated() - line 1025: $this->expectException(AuthorizationException::class); - line 1026: $this->expectExceptionMessage('foo'); - line 1027: $this->expectExceptionCode('bar'); - line 1029: $gate = $this->getBasicGate()->forUser(null); - line 1031: $gate->denyIf(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1023: public function testDenyIfThrowsExceptionIfUnauthenticated() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1036: public function testDenyIfThrowsExceptionIfAuthUserExpectedWhenGuest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1036: public function testDenyIfThrowsExceptionIfAuthUserExpectedWhenGuest() - line 1038: $this->expectException(AuthorizationException::class); - line 1039: $this->expectExceptionMessage('foo'); - line 1040: $this->expectExceptionCode('bar'); - line 1042: $gate = $this->getBasicGate()->forUser(null); - line 1044: $gate->denyIf(function (stdClass $user) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1036: public function testDenyIfThrowsExceptionIfAuthUserExpectedWhenGuest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1056: public function testAnyAbilityCheckPassesIfAllPass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1056: public function testAnyAbilityCheckPassesIfAllPass() - line 1058: $gate = $this->getBasicGate(); - line 1060: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicyWithAllPermissions::class); - line 1062: $this->assertTrue($gate->any(['edit', 'update'], new AccessGateTestDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1065: public function testAnyAbilityCheckPassesIfAtLeastOnePasses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1065: public function testAnyAbilityCheckPassesIfAtLeastOnePasses() - line 1067: $gate = $this->getBasicGate(); - line 1069: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicyWithMixedPermissions::class); - line 1071: $this->assertTrue($gate->any(['edit', 'update'], new AccessGateTestDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1074: public function testAnyAbilityCheckFailsIfNonePass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1074: public function testAnyAbilityCheckFailsIfNonePass() - line 1076: $gate = $this->getBasicGate(); - line 1078: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicyWithNoPermissions::class); - line 1080: $this->assertFalse($gate->any(['edit', 'update'], new AccessGateTestDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1083: public function testNoneAbilityCheckPassesIfAllFail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1083: public function testNoneAbilityCheckPassesIfAllFail() - line 1085: $gate = $this->getBasicGate(); - line 1087: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicyWithNoPermissions::class); - line 1089: $this->assertTrue($gate->none(['edit', 'update'], new AccessGateTestDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1092: public function testEveryAbilityCheckPassesIfAllPass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1092: public function testEveryAbilityCheckPassesIfAllPass() - line 1094: $gate = $this->getBasicGate(); - line 1096: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicyWithAllPermissions::class); - line 1098: $this->assertTrue($gate->check(['edit', 'update'], new AccessGateTestDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1101: public function testEveryAbilityCheckFailsIfAtLeastOneFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1101: public function testEveryAbilityCheckFailsIfAtLeastOneFails() - line 1103: $gate = $this->getBasicGate(); - line 1105: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicyWithMixedPermissions::class); - line 1107: $this->assertFalse($gate->check(['edit', 'update'], new AccessGateTestDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1110: public function testEveryAbilityCheckFailsIfNonePass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1110: public function testEveryAbilityCheckFailsIfNonePass() - line 1112: $gate = $this->getBasicGate(); - line 1114: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicyWithNoPermissions::class); - line 1116: $this->assertFalse($gate->check(['edit', 'update'], new AccessGateTestDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1119: public function testAnyAbilitiesCheckUsingBackedEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1119: public function testAnyAbilitiesCheckUsingBackedEnum() - line 1121: $gate = $this->getBasicGate(); - line 1123: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicyWithAllPermissions::class); - line 1125: $this->assertTrue($gate->any(['edit', AbilitiesEnum::UPDATE], new AccessGateTestDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1128: public function testNoneAbilitiesCheckUsingBackedEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1128: public function testNoneAbilitiesCheckUsingBackedEnum() - line 1130: $gate = $this->getBasicGate(); - line 1132: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicyWithNoPermissions::class); - line 1134: $this->assertTrue($gate->none(['edit', AbilitiesEnum::UPDATE], new AccessGateTestDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1137: public function testAbilitiesCheckUsingBackedEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1137: public function testAbilitiesCheckUsingBackedEnum() - line 1139: $gate = $this->getBasicGate(); - line 1141: $gate->policy(AccessGateTestDummy::class, AccessGateTestPolicyWithAllPermissions::class); - line 1143: $this->assertTrue($gate->check(['edit', AbilitiesEnum::UPDATE], new AccessGateTestDummy)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1152: public function testHasAbilities($abilitiesToSet, $abilitiesToCheck, $expectedHasValue) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1152: public function testHasAbilities($abilitiesToSet, $abilitiesToCheck, $expectedHasValue) - line 1154: $gate = $this->getBasicGate(); - line 1156: $gate->resource('test', AccessGateTestResource::class, $abilitiesToSet); - line 1158: $this->assertEquals($expectedHasValue, $gate->has($abilitiesToCheck)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1182: public function testClassesCanBeDefinedAsCallbacksUsingAtNotationForGuests() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 1182: public function testClassesCanBeDefinedAsCallbacksUsingAtNotationForGuests() - line 1188: $gate->define('foo', AccessGateTestClassForGuest::class.'@foo'); - line 1189: $gate->define('obj_foo', [new AccessGateTestClassForGuest, 'foo']); - line 1190: $gate->define('static_foo', [AccessGateTestClassForGuest::class, 'staticFoo']); - line 1191: $gate->define('static_@foo', AccessGateTestClassForGuest::class.'@staticFoo'); - line 1192: $gate->define('bar', AccessGateTestClassForGuest::class.'@bar'); - line 1193: $gate->define('invokable', AccessGateTestGuestInvokableClass::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1220: public function testCanSetDenialResponseInConstructor() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1220: public function testCanSetDenialResponseInConstructor() - line 1226: $gate->defaultDenialResponse(Response::denyWithStatus(999, 'my_message', 'abc')); - line 1228: $gate->define('foo', function () { - line 1232: $response = $gate->inspect('foo', new AccessGateTestDummy); - line 1234: $this->assertTrue($response->denied()); - line 1235: $this->assertFalse($response->allowed()); - line 1236: $this->assertSame('my_message', $response->message()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1241: public function testCanSetDenialResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1241: public function testCanSetDenialResponse() - line 1247: $gate->define('foo', function () { - line 1250: $gate->defaultDenialResponse(Response::denyWithStatus(404, 'not_found', 'xyz')); - line 1252: $response = $gate->inspect('foo', new AccessGateTestDummy); - line 1253: $this->assertTrue($response->denied()); - line 1254: $this->assertFalse($response->allowed()); - line 1255: $this->assertSame('not_found', $response->message()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Auth/AuthAccessResponseTest.php - Test @ line 11: public function testAllowMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 11: public function testAllowMethod() - line 13: $response = Response::allow('some message', 'some_code'); - line 15: $this->assertTrue($response->allowed()); - line 16: $this->assertFalse($response->denied()); - line 17: $this->assertSame('some message', $response->message()); - line 18: $this->assertSame('some_code', $response->code()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 21: public function testDenyMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 21: public function testDenyMethod() - line 23: $response = Response::deny('some message', 'some_code'); - line 25: $this->assertTrue($response->denied()); - line 26: $this->assertFalse($response->allowed()); - line 27: $this->assertSame('some message', $response->message()); - line 28: $this->assertSame('some_code', $response->code()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 31: public function testDenyMethodWithNoMessageReturnsNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 31: public function testDenyMethodWithNoMessageReturnsNull() - line 33: $response = Response::deny(); - line 35: $this->assertNull($response->message()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 31: public function testDenyMethodWithNoMessageReturnsNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 38: public function testItSetsEmptyStatusOnExceptionWhenAuthorizing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 38: public function testItSetsEmptyStatusOnExceptionWhenAuthorizing() - line 41: Response::deny('foo', 3)->authorize(); - line 42: $this->fail(); - line 44: $this->assertNull($e->status()); - line 45: $this->assertFalse($e->hasStatus()); - line 46: $this->assertSame('foo', $e->response()->message()); - line 47: $this->assertSame('foo', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 52: public function testItSetsStatusOnExceptionWhenAuthorizing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 42. Evidence: - line 52: public function testItSetsStatusOnExceptionWhenAuthorizing() - line 55: Response::deny('foo', 3)->withStatus(418)->authorize(); - line 56: $this->fail(); - line 58: $this->assertSame(418, $e->status()); - line 59: $this->assertTrue($e->hasStatus()); - line 60: $this->assertSame('foo', $e->response()->message()); - line 61: $this->assertSame('foo', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 121: public function testAuthorizeMethodThrowsAuthorizationExceptionWhenResponseDenied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 121: public function testAuthorizeMethodThrowsAuthorizationExceptionWhenResponseDenied() - line 123: $response = Response::deny('Some message.', 'some_code'); - line 126: $response->authorize(); - line 128: $this->assertSame('Some message.', $e->getMessage()); - line 129: $this->assertSame('some_code', $e->getCode()); - line 130: $this->assertEquals($response, $e->response()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 134: public function testAuthorizeMethodThrowsAuthorizationExceptionWithDefaultMessage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 134: public function testAuthorizeMethodThrowsAuthorizationExceptionWithDefaultMessage() - line 136: $response = Response::deny(); - line 139: $response->authorize(); - line 141: $this->assertSame('This action is unauthorized.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 145: public function testThrowIfNeededDoesntThrowAuthorizationExceptionWhenResponseAllowed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 145: public function testThrowIfNeededDoesntThrowAuthorizationExceptionWhenResponseAllowed() - line 147: $response = Response::allow('Some message.', 'some_code'); - line 149: $this->assertEquals($response, $response->authorize()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 152: public function testCastingToStringReturnsMessage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 152: public function testCastingToStringReturnsMessage() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 152: public function testCastingToStringReturnsMessage() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Auth/AuthDatabaseTokenRepositoryTest.php - Test @ line 23: public function testCreateInsertsNewRecordIntoTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 23: public function testCreateInsertsNewRecordIntoTable() - line 25: $repo = $this->getRepo(); - line 26: $repo->getHasher()->shouldReceive('make')->once()->andReturn('hashed-token'); - line 27: $repo->getConnection()->shouldReceive('table')->times(2)->with('table')->andReturn($query = m::mock(stdClass::class)); - line 34: $results = $repo->create($user); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 27: $repo->getConnection()->shouldReceive('table')->times(2)->with('table')->andReturn($query = m::mock(stdClass::class)); - line 31: $user = m::mock(CanResetPassword::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testCreateInsertsNewRecordIntoTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 40: public function testExistReturnsFalseIfNoRowFoundForUser() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 40: public function testExistReturnsFalseIfNoRowFoundForUser() - line 42: $repo = $this->getRepo(); - line 43: $repo->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($query = m::mock(stdClass::class)); - line 49: $this->assertFalse($repo->exists($user, 'token')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 43: $repo->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($query = m::mock(stdClass::class)); - line 46: $user = m::mock(CanResetPassword::class); - Test @ line 52: public function testExistReturnsFalseIfRecordIsExpired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 52: public function testExistReturnsFalseIfRecordIsExpired() - line 54: $repo = $this->getRepo(); - line 55: $repo->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($query = m::mock(stdClass::class)); - line 57: $date = Carbon::now()->subSeconds(300000)->toDateTimeString(); - line 62: $this->assertFalse($repo->exists($user, 'token')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 55: $repo->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($query = m::mock(stdClass::class)); - line 59: $user = m::mock(CanResetPassword::class); - Test @ line 65: public function testExistReturnsTrueIfValidRecordExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 65: public function testExistReturnsTrueIfValidRecordExists() - line 67: $repo = $this->getRepo(); - line 68: $repo->getHasher()->shouldReceive('check')->once()->with('token', 'hashed-token')->andReturn(true); - line 69: $repo->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($query = m::mock(stdClass::class)); - line 71: $date = Carbon::now()->subMinutes(10)->toDateTimeString(); - line 76: $this->assertTrue($repo->exists($user, 'token')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 69: $repo->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($query = m::mock(stdClass::class)); - line 73: $user = m::mock(CanResetPassword::class); - Test @ line 79: public function testExistReturnsFalseIfInvalidToken() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 79: public function testExistReturnsFalseIfInvalidToken() - line 81: $repo = $this->getRepo(); - line 82: $repo->getHasher()->shouldReceive('check')->once()->with('wrong-token', 'hashed-token')->andReturn(false); - line 83: $repo->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($query = m::mock(stdClass::class)); - line 85: $date = Carbon::now()->subMinutes(10)->toDateTimeString(); - line 90: $this->assertFalse($repo->exists($user, 'wrong-token')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 83: $repo->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($query = m::mock(stdClass::class)); - line 87: $user = m::mock(CanResetPassword::class); - Test @ line 93: public function testRecentlyCreatedReturnsFalseIfNoRowFoundForUser() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 93: public function testRecentlyCreatedReturnsFalseIfNoRowFoundForUser() - line 95: $repo = $this->getRepo(); - line 96: $repo->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($query = m::mock(stdClass::class)); - line 102: $this->assertFalse($repo->recentlyCreatedToken($user)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 96: $repo->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($query = m::mock(stdClass::class)); - line 99: $user = m::mock(CanResetPassword::class); - Test @ line 105: public function testRecentlyCreatedReturnsTrueIfRecordIsRecentlyCreated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 105: public function testRecentlyCreatedReturnsTrueIfRecordIsRecentlyCreated() - line 109: $repo = $this->getRepo(); - line 110: $repo->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($query = m::mock(stdClass::class)); - line 112: $date = Carbon::now()->subSeconds(59)->toDateTimeString(); - line 117: $this->assertTrue($repo->recentlyCreatedToken($user)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 110: $repo->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($query = m::mock(stdClass::class)); - line 114: $user = m::mock(CanResetPassword::class); - Test @ line 122: public function testRecentlyCreatedReturnsFalseIfValidRecordExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 122: public function testRecentlyCreatedReturnsFalseIfValidRecordExists() - line 126: $repo = $this->getRepo(); - line 127: $repo->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($query = m::mock(stdClass::class)); - line 129: $date = Carbon::now()->subSeconds(61)->toDateTimeString(); - line 134: $this->assertFalse($repo->recentlyCreatedToken($user)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 127: $repo->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($query = m::mock(stdClass::class)); - line 131: $user = m::mock(CanResetPassword::class); - Test @ line 139: public function testDeleteMethodDeletesByToken() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 139: public function testDeleteMethodDeletesByToken() - line 141: $repo = $this->getRepo(); - line 142: $repo->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($query = m::mock(stdClass::class)); - line 148: $repo->delete($user); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 142: $repo->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($query = m::mock(stdClass::class)); - line 145: $user = m::mock(CanResetPassword::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 139: public function testDeleteMethodDeletesByToken() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 151: public function testDeleteExpiredMethodDeletesExpiredTokens() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 151: public function testDeleteExpiredMethodDeletesExpiredTokens() - line 153: $repo = $this->getRepo(); - line 154: $repo->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($query = m::mock(stdClass::class)); - line 158: $repo->deleteExpired(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 154: $repo->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($query = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 151: public function testDeleteExpiredMethodDeletesExpiredTokens() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Auth/AuthDatabaseUserProviderTest.php - Test @ line 22: public function testRetrieveByIDReturnsUserWhenUserIsFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 22: public function testRetrieveByIDReturnsUserWhenUserIsFound() - line 24: $conn = m::mock(Connection::class); - line 29: $user = $provider->retrieveById(1); - line 32: $this->assertSame(1, $user->getAuthIdentifier()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 24: $conn = m::mock(Connection::class); - line 27: $hasher = m::mock(Hasher::class); - Test @ line 36: public function testRetrieveByIDReturnsNullWhenUserIsNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 36: public function testRetrieveByIDReturnsNullWhenUserIsNotFound() - line 38: $conn = m::mock(Connection::class); - line 43: $user = $provider->retrieveById(1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 38: $conn = m::mock(Connection::class); - line 41: $hasher = m::mock(Hasher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 36: public function testRetrieveByIDReturnsNullWhenUserIsNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 48: public function testRetrieveByTokenReturnsUser() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 48: public function testRetrieveByTokenReturnsUser() - line 53: $conn = m::mock(Connection::class); - line 58: $user = $provider->retrieveByToken(1, 'a'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 53: $conn = m::mock(Connection::class); - line 56: $hasher = m::mock(Hasher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 48: public function testRetrieveByTokenReturnsUser() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 63: public function testRetrieveTokenWithBadIdentifierReturnsNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 63: public function testRetrieveTokenWithBadIdentifierReturnsNull() - line 65: $conn = m::mock(Connection::class); - line 70: $user = $provider->retrieveByToken(1, 'a'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 65: $conn = m::mock(Connection::class); - line 68: $hasher = m::mock(Hasher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 63: public function testRetrieveTokenWithBadIdentifierReturnsNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 75: public function testRetrieveByBadTokenReturnsNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 75: public function testRetrieveByBadTokenReturnsNull() - line 80: $conn = m::mock(Connection::class); - line 85: $user = $provider->retrieveByToken(1, 'a'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 80: $conn = m::mock(Connection::class); - line 83: $hasher = m::mock(Hasher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 75: public function testRetrieveByBadTokenReturnsNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 90: public function testRetrieveByCredentialsReturnsUserWhenUserIsFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 90: public function testRetrieveByCredentialsReturnsUserWhenUserIsFound() - line 92: $conn = m::mock(Connection::class); - line 99: $user = $provider->retrieveByCredentials(['username' => 'dayle', 'password' => 'foo', 'group' => ['one', 'two']]); - line 102: $this->assertSame(1, $user->getAuthIdentifier()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 92: $conn = m::mock(Connection::class); - line 97: $hasher = m::mock(Hasher::class); - Test @ line 106: public function testRetrieveByCredentialsAcceptsCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 106: public function testRetrieveByCredentialsAcceptsCallback() - line 108: $conn = m::mock(Connection::class); - line 116: $user = $provider->retrieveByCredentials([function ($builder) { - line 122: $this->assertSame(1, $user->getAuthIdentifier()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 108: $conn = m::mock(Connection::class); - line 113: $hasher = m::mock(Hasher::class); - Test @ line 126: public function testRetrieveByCredentialsReturnsNullWhenUserIsFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 126: public function testRetrieveByCredentialsReturnsNullWhenUserIsFound() - line 128: $conn = m::mock(Connection::class); - line 134: $user = $provider->retrieveByCredentials(['username' => 'dayle']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 128: $conn = m::mock(Connection::class); - line 132: $hasher = m::mock(Hasher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 126: public function testRetrieveByCredentialsReturnsNullWhenUserIsFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 139: public function testRetrieveByCredentialsWithMultiplyPasswordsReturnsNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 139: public function testRetrieveByCredentialsWithMultiplyPasswordsReturnsNull() - line 141: $conn = m::mock(Connection::class); - line 144: $user = $provider->retrieveByCredentials([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 141: $conn = m::mock(Connection::class); - line 142: $hasher = m::mock(Hasher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 139: public function testRetrieveByCredentialsWithMultiplyPasswordsReturnsNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 152: public function testCredentialValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 152: public function testCredentialValidation() - line 154: $conn = m::mock(Connection::class); - line 160: $result = $provider->validateCredentials($user, ['password' => 'plain']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 154: $conn = m::mock(Connection::class); - line 155: $hasher = m::mock(Hasher::class); - line 158: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 152: public function testCredentialValidation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 165: public function testCredentialValidationFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 165: public function testCredentialValidationFails() - line 167: $conn = m::mock(Connection::class); - line 173: $result = $provider->validateCredentials($user, ['password' => 'plain']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 167: $conn = m::mock(Connection::class); - line 168: $hasher = m::mock(Hasher::class); - line 171: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 165: public function testCredentialValidationFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 178: public function testCredentialValidationFailsGracefullyWithNullPassword() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 178: public function testCredentialValidationFailsGracefullyWithNullPassword() - line 180: $conn = m::mock(Connection::class); - line 182: $hasher->shouldReceive('check')->never(); - line 186: $result = $provider->validateCredentials($user, ['password' => 'plain']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 180: $conn = m::mock(Connection::class); - line 181: $hasher = m::mock(Hasher::class); - line 184: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 178: public function testCredentialValidationFailsGracefullyWithNullPassword() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 191: public function testRehashPasswordIfRequired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 191: public function testRehashPasswordIfRequired() - line 193: $hasher = m::mock(Hasher::class); - line 200: $table->shouldReceive('where')->once()->with('id', 1)->andReturnSelf(); - line 210: $provider->rehashPasswordIfRequired($user, ['password' => 'plain']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 193: $hasher = m::mock(Hasher::class); - line 197: $conn = m::mock(Connection::class); - line 198: $table = m::mock(ConnectionInterface::class); - line 203: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 191: public function testRehashPasswordIfRequired() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 213: public function testDontRehashPasswordIfNotRequired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 213: public function testDontRehashPasswordIfNotRequired() - line 215: $hasher = m::mock(Hasher::class); - line 217: $hasher->shouldNotReceive('make'); - line 221: $conn->shouldNotReceive('table'); - line 222: $table->shouldNotReceive('where'); - line 223: $table->shouldNotReceive('update'); - line 227: $user->shouldNotReceive('getAuthIdentifierName'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 215: $hasher = m::mock(Hasher::class); - line 219: $conn = m::mock(Connection::class); - line 220: $table = m::mock(ConnectionInterface::class); - line 225: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 213: public function testDontRehashPasswordIfNotRequired() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Auth/AuthEloquentUserProviderTest.php - Test @ line 19: public function testRetrieveByIDReturnsUser() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 19: public function testRetrieveByIDReturnsUser() - line 21: $provider = $this->getProviderMock(); - line 27: $provider->expects($this->once())->method('createModel')->willReturn($mock); - line 28: $user = $provider->retrieveById(1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 22: $mock = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 19: public function testRetrieveByIDReturnsUser() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 33: public function testRetrieveByTokenReturnsUser() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 33: public function testRetrieveByTokenReturnsUser() - line 35: $mockUser = m::mock(stdClass::class); - line 38: $provider = $this->getProviderMock(); - line 44: $provider->expects($this->once())->method('createModel')->willReturn($mock); - line 45: $user = $provider->retrieveByToken(1, 'a'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 35: $mockUser = m::mock(stdClass::class); - line 39: $mock = m::mock(stdClass::class); - Test @ line 50: public function testRetrieveTokenWithBadIdentifierReturnsNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 50: public function testRetrieveTokenWithBadIdentifierReturnsNull() - line 52: $provider = $this->getProviderMock(); - line 58: $provider->expects($this->once())->method('createModel')->willReturn($mock); - line 59: $user = $provider->retrieveByToken(1, 'a'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 53: $mock = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 50: public function testRetrieveTokenWithBadIdentifierReturnsNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 64: public function testRetrievingWithOnlyPasswordCredentialReturnsNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 64: public function testRetrievingWithOnlyPasswordCredentialReturnsNull() - line 66: $provider = $this->getProviderMock(); - line 67: $user = $provider->retrieveByCredentials(['api_password' => 'foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 64: public function testRetrievingWithOnlyPasswordCredentialReturnsNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 72: public function testRetrieveByBadTokenReturnsNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 72: public function testRetrieveByBadTokenReturnsNull() - line 74: $mockUser = m::mock(stdClass::class); - line 77: $provider = $this->getProviderMock(); - line 83: $provider->expects($this->once())->method('createModel')->willReturn($mock); - line 84: $user = $provider->retrieveByToken(1, 'a'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 74: $mockUser = m::mock(stdClass::class); - line 78: $mock = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 72: public function testRetrieveByBadTokenReturnsNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 89: public function testRetrieveByCredentialsReturnsUser() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 89: public function testRetrieveByCredentialsReturnsUser() - line 91: $provider = $this->getProviderMock(); - line 97: $provider->expects($this->once())->method('createModel')->willReturn($mock); - line 98: $user = $provider->retrieveByCredentials(['username' => 'dayle', 'password' => 'foo', 'group' => ['one', 'two']]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 92: $mock = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 89: public function testRetrieveByCredentialsReturnsUser() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 103: public function testRetrieveByCredentialsAcceptsCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 103: public function testRetrieveByCredentialsAcceptsCallback() - line 105: $provider = $this->getProviderMock(); - line 111: $provider->expects($this->once())->method('createModel')->willReturn($mock); - line 112: $user = $provider->retrieveByCredentials([function ($builder) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 106: $mock = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 103: public function testRetrieveByCredentialsAcceptsCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 120: public function testRetrieveByCredentialsWithMultiplyPasswordsReturnsNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 120: public function testRetrieveByCredentialsWithMultiplyPasswordsReturnsNull() - line 122: $provider = $this->getProviderMock(); - line 123: $user = $provider->retrieveByCredentials([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 120: public function testRetrieveByCredentialsWithMultiplyPasswordsReturnsNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 131: public function testCredentialValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 131: public function testCredentialValidation() - line 133: $hasher = m::mock(Hasher::class); - line 138: $result = $provider->validateCredentials($user, ['password' => 'plain']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 133: $hasher = m::mock(Hasher::class); - line 136: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 131: public function testCredentialValidation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 143: public function testCredentialValidationFailed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 143: public function testCredentialValidationFailed() - line 145: $hasher = m::mock(Hasher::class); - line 150: $result = $provider->validateCredentials($user, ['password' => 'plain']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 145: $hasher = m::mock(Hasher::class); - line 148: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 143: public function testCredentialValidationFailed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 155: public function testCredentialValidationFailsGracefullyWithNullPassword() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 155: public function testCredentialValidationFailsGracefullyWithNullPassword() - line 157: $hasher = m::mock(Hasher::class); - line 158: $hasher->shouldReceive('check')->never(); - line 162: $result = $provider->validateCredentials($user, ['password' => 'plain']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 157: $hasher = m::mock(Hasher::class); - line 160: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 155: public function testCredentialValidationFailsGracefullyWithNullPassword() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 167: public function testRehashPasswordIfRequired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 167: public function testRehashPasswordIfRequired() - line 169: $hasher = m::mock(Hasher::class); - line 176: $user->shouldReceive('forceFill')->once()->with(['password_attribute' => 'rehashed'])->andReturnSelf(); - line 180: $provider->rehashPasswordIfRequired($user, ['password' => 'plain']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 169: $hasher = m::mock(Hasher::class); - line 173: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 167: public function testRehashPasswordIfRequired() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 183: public function testDontRehashPasswordIfNotRequired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 183: public function testDontRehashPasswordIfNotRequired() - line 185: $hasher = m::mock(Hasher::class); - line 187: $hasher->shouldNotReceive('make'); - line 191: $user->shouldNotReceive('getAuthPasswordName'); - line 192: $user->shouldNotReceive('forceFill'); - line 193: $user->shouldNotReceive('save'); - line 196: $provider->rehashPasswordIfRequired($user, ['password' => 'plain']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 185: $hasher = m::mock(Hasher::class); - line 189: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 183: public function testDontRehashPasswordIfNotRequired() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 199: public function testModelsCanBeCreated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 199: public function testModelsCanBeCreated() - line 201: $hasher = m::mock(Hasher::class); - line 203: $model = $provider->createModel(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 201: $hasher = m::mock(Hasher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 199: public function testModelsCanBeCreated() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 208: public function testRegistersQueryHandler() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 208: public function testRegistersQueryHandler() - line 211: $builder->whereIn('group', ['one', 'two']); - line 214: $provider = $this->getProviderMock(); - line 220: $provider->expects($this->once())->method('createModel')->willReturn($mock); - line 221: $provider->withQuery($callback); - line 222: $user = $provider->retrieveByCredentials([function ($builder) { - line 227: $this->assertSame($callback, $provider->getQueryCallback()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 215: $mock = m::mock(stdClass::class); ❌ tests/Auth/AuthenticatableTest.php - Test @ line 10: public function testItReturnsSameRememberTokenForString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 10: public function testItReturnsSameRememberTokenForString() - line 13: $user->setRememberToken('sample_token'); - line 14: $this->assertSame('sample_token', $user->getRememberToken()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 17: public function testItReturnsStringAsRememberTokenWhenItWasSetToTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 17: public function testItReturnsStringAsRememberTokenWhenItWasSetToTrue() - line 20: $user->setRememberToken(true); - line 21: $this->assertSame('1', $user->getRememberToken()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 24: public function testItReturnsNullWhenRememberTokenNameWasSetToEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 24: public function testItReturnsNullWhenRememberTokenNameWasSetToEmpty() - line 33: $user->setRememberToken(true); - line 34: $this->assertNull($user->getRememberToken()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 24: public function testItReturnsNullWhenRememberTokenNameWasSetToEmpty() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Auth/AuthenticateMiddlewareTest.php - Test @ line 64: public function testDefaultUnauthenticatedThrows() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 64: public function testDefaultUnauthenticatedThrows() - line 66: $this->expectException(AuthenticationException::class); - line 67: $this->expectExceptionMessage('Unauthenticated.'); - line 69: $this->registerAuthDriver('default', false); - line 71: $this->authenticate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 64: public function testDefaultUnauthenticatedThrows() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 74: public function testDefaultUnauthenticatedThrowsWithGuards() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 74: public function testDefaultUnauthenticatedThrowsWithGuards() - line 77: $this->registerAuthDriver('default', false); - line 79: $this->authenticate('default'); - line 81: $this->assertContains('default', $e->guards()); - line 86: $this->fail(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 74: public function testDefaultUnauthenticatedThrowsWithGuards() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 89: public function testDefaultAuthenticatedKeepsDefaultDriver() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 89: public function testDefaultAuthenticatedKeepsDefaultDriver() - line 91: $driver = $this->registerAuthDriver('default', true); - line 93: $this->authenticate(); - line 95: $this->assertSame($driver, $this->auth->guard()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 98: public function testSecondaryAuthenticatedUpdatesDefaultDriver() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 98: public function testSecondaryAuthenticatedUpdatesDefaultDriver() - line 100: $this->registerAuthDriver('default', false); - line 102: $secondary = $this->registerAuthDriver('secondary', true); - line 104: $this->authenticate('secondary'); - line 106: $this->assertSame($secondary, $this->auth->guard()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 109: public function testMultipleDriversUnauthenticatedThrows() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 109: public function testMultipleDriversUnauthenticatedThrows() - line 111: $this->expectException(AuthenticationException::class); - line 112: $this->expectExceptionMessage('Unauthenticated.'); - line 114: $this->registerAuthDriver('default', false); - line 116: $this->registerAuthDriver('secondary', false); - line 118: $this->authenticate('default', 'secondary'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 109: public function testMultipleDriversUnauthenticatedThrows() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 121: public function testMultipleDriversUnauthenticatedThrowsWithGuards() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 121: public function testMultipleDriversUnauthenticatedThrowsWithGuards() - line 126: $this->registerAuthDriver('default', false); - line 128: $this->registerAuthDriver('secondary', false); - line 130: $this->authenticate(...$expectedGuards); - line 132: $this->assertEquals($expectedGuards, $e->guards()); - line 137: $this->fail(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 140: public function testMultipleDriversAuthenticatedUpdatesDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 140: public function testMultipleDriversAuthenticatedUpdatesDefault() - line 142: $this->registerAuthDriver('default', false); - line 144: $secondary = $this->registerAuthDriver('secondary', true); - line 146: $this->authenticate('default', 'secondary'); - line 148: $this->assertSame($secondary, $this->auth->guard()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Auth/AuthGuardTest.php - Test @ line 33: public function testBasicReturnsNullOnValidAttempt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 33: public function testBasicReturnsNullOnValidAttempt() - line 35: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 40: $guard->setRequest($request); - line 42: $guard->basic('email'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 33: public function testBasicReturnsNullOnValidAttempt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 45: public function testBasicReturnsNullWhenAlreadyLoggedIn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 45: public function testBasicReturnsNullWhenAlreadyLoggedIn() - line 47: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 50: $guard->shouldReceive('attempt')->never(); - line 52: $guard->setRequest($request); - line 54: $guard->basic('email'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 45: public function testBasicReturnsNullWhenAlreadyLoggedIn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 57: public function testBasicReturnsResponseOnFailure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 57: public function testBasicReturnsResponseOnFailure() - line 59: $this->expectException(UnauthorizedHttpException::class); - line 61: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 66: $guard->setRequest($request); - line 67: $guard->basic('email'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 57: public function testBasicReturnsResponseOnFailure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 70: public function testBasicWithExtraConditions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 70: public function testBasicWithExtraConditions() - line 72: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 77: $guard->setRequest($request); - line 79: $guard->basic('email', ['active' => 1]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 70: public function testBasicWithExtraConditions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 82: public function testBasicWithExtraArrayConditions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 82: public function testBasicWithExtraArrayConditions() - line 84: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 89: $guard->setRequest($request); - line 91: $guard->basic('email', ['active' => 1, 'type' => [1, 2, 3]]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 82: public function testBasicWithExtraArrayConditions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 94: public function testAttemptCallsRetrieveByCredentials() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 94: public function testAttemptCallsRetrieveByCredentials() - line 96: $guard = $this->getGuard(); - line 97: $guard->setDispatcher($events = m::mock(Dispatcher::class)); - line 98: $timebox = $guard->getTimebox(); - line 99: $timebox->shouldReceive('call')->once()->andReturnUsing(function ($callback) use ($timebox) { - line 104: $events->shouldNotReceive('dispatch')->with(m::type(Validated::class)); - line 105: $guard->getProvider()->shouldReceive('retrieveByCredentials')->once()->with(['foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 97: $guard->setDispatcher($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 94: public function testAttemptCallsRetrieveByCredentials() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 110: public function testAttemptReturnsUserInterface() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 110: public function testAttemptReturnsUserInterface() - line 112: [$session, $provider, $request, $cookie, $timebox] = $this->getMocks(); - line 113: $guard = $this->getMockBuilder(SessionGuard::class)->onlyMethods(['login'])->setConstructorArgs(['default', $provider, $session, $request, $timebox])->getMock(); - line 114: $guard->setDispatcher($events = m::mock(Dispatcher::class)); - line 115: $timebox->shouldReceive('call')->once()->andReturnUsing(function ($callback, $microseconds) use ($timebox) { - line 120: $user = $this->createMock(Authenticatable::class); - line 121: $guard->getProvider()->shouldReceive('retrieveByCredentials')->once()->andReturn($user); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 114: $guard->setDispatcher($events = m::mock(Dispatcher::class)); - line 120: $user = $this->createMock(Authenticatable::class); - Test @ line 128: public function testAttemptReturnsFalseIfUserNotGiven() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 128: public function testAttemptReturnsFalseIfUserNotGiven() - line 130: $mock = $this->getGuard(); - line 131: $mock->setDispatcher($events = m::mock(Dispatcher::class)); - line 132: $timebox = $mock->getTimebox(); - line 133: $timebox->shouldReceive('call')->once()->andReturnUsing(function ($callback, $microseconds) use ($timebox) { - line 138: $events->shouldNotReceive('dispatch')->with(m::type(Validated::class)); - line 139: $mock->getProvider()->shouldReceive('retrieveByCredentials')->once()->andReturn(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 131: $mock->setDispatcher($events = m::mock(Dispatcher::class)); - Test @ line 144: public function testAttemptAndWithCallbacks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 144: public function testAttemptAndWithCallbacks() - line 146: [$session, $provider, $request, $cookie, $timebox] = $this->getMocks(); - line 147: $mock = $this->getMockBuilder(SessionGuard::class)->onlyMethods(['getName'])->setConstructorArgs(['default', $provider, $session, $request, $timebox])->getMock(); - line 148: $mock->setDispatcher($events = m::mock(Dispatcher::class)); - line 149: $timebox->shouldReceive('call')->andReturnUsing(function ($callback) use ($timebox) { - line 158: $mock->expects($this->once())->method('getName')->willReturn('foo'); - line 160: $mock->getSession()->shouldReceive('put')->with('foo', 'bar')->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 148: $mock->setDispatcher($events = m::mock(Dispatcher::class)); - line 152: $user = m::mock(Authenticatable::class); - Test @ line 190: public function testAttemptRehashesPasswordWhenRequired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 190: public function testAttemptRehashesPasswordWhenRequired() - line 192: [$session, $provider, $request, $cookie, $timebox] = $this->getMocks(); - line 193: $guard = $this->getMockBuilder(SessionGuard::class)->onlyMethods(['login'])->setConstructorArgs(['default', $provider, $session, $request, $timebox])->getMock(); - line 194: $guard->setDispatcher($events = m::mock(Dispatcher::class)); - line 195: $timebox->shouldReceive('call')->once()->andReturnUsing(function ($callback, $microseconds) use ($timebox) { - line 200: $user = $this->createMock(Authenticatable::class); - line 201: $guard->getProvider()->shouldReceive('retrieveByCredentials')->once()->andReturn($user); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 194: $guard->setDispatcher($events = m::mock(Dispatcher::class)); - line 200: $user = $this->createMock(Authenticatable::class); - Test @ line 208: public function testAttemptDoesntRehashPasswordWhenDisabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 208: public function testAttemptDoesntRehashPasswordWhenDisabled() - line 210: [$session, $provider, $request, $cookie, $timebox] = $this->getMocks(); - line 211: $guard = $this->getMockBuilder(SessionGuard::class)->onlyMethods(['login']) - line 214: $guard->setDispatcher($events = m::mock(Dispatcher::class)); - line 215: $timebox->shouldReceive('call')->once()->andReturnUsing(function ($callback, $microseconds) use ($timebox) { - line 220: $user = $this->createMock(Authenticatable::class); - line 221: $guard->getProvider()->shouldReceive('retrieveByCredentials')->once()->andReturn($user); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 214: $guard->setDispatcher($events = m::mock(Dispatcher::class)); - line 220: $user = $this->createMock(Authenticatable::class); - Test @ line 228: public function testLoginStoresIdentifierInSession() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 228: public function testLoginStoresIdentifierInSession() - line 230: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 231: $mock = $this->getMockBuilder(SessionGuard::class)->onlyMethods(['getName'])->setConstructorArgs(['default', $provider, $session, $request])->getMock(); - line 233: $mock->expects($this->once())->method('getName')->willReturn('foo'); - line 235: $mock->getSession()->shouldReceive('put')->with('foo', 'bar')->once(); - line 237: $mock->login($user); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 232: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 228: public function testLoginStoresIdentifierInSession() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 240: public function testSessionGuardIsMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 240: public function testSessionGuardIsMacroable() - line 242: $guard = $this->getGuard(); - line 244: $guard->macro('foo', function () { - line 249: 'bar', $guard->foo() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 253: public function testLoginFiresLoginAndAuthenticatedEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 253: public function testLoginFiresLoginAndAuthenticatedEvents() - line 255: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 256: $mock = $this->getMockBuilder(SessionGuard::class)->onlyMethods(['getName'])->setConstructorArgs(['default', $provider, $session, $request])->getMock(); - line 257: $mock->setDispatcher($events = m::mock(Dispatcher::class)); - line 261: $mock->expects($this->once())->method('getName')->willReturn('foo'); - line 263: $mock->getSession()->shouldReceive('put')->with('foo', 'bar')->once(); - line 265: $mock->login($user); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 257: $mock->setDispatcher($events = m::mock(Dispatcher::class)); - line 258: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 253: public function testLoginFiresLoginAndAuthenticatedEvents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 268: public function testFailedAttemptFiresFailedEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 268: public function testFailedAttemptFiresFailedEvent() - line 270: $guard = $this->getGuard(); - line 271: $guard->setDispatcher($events = m::mock(Dispatcher::class)); - line 272: $timebox = $guard->getTimebox(); - line 273: $timebox->shouldReceive('call')->once()->andReturnUsing(function ($callback, $microseconds) use ($timebox) { - line 278: $events->shouldNotReceive('dispatch')->with(m::type(Validated::class)); - line 279: $guard->getProvider()->shouldReceive('retrieveByCredentials')->once()->with(['foo'])->andReturn(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 271: $guard->setDispatcher($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 268: public function testFailedAttemptFiresFailedEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 284: public function testAuthenticateReturnsUserWhenUserIsNotNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 284: public function testAuthenticateReturnsUserWhenUserIsNotNull() - line 286: $user = m::mock(Authenticatable::class); - line 287: $guard = $this->getGuard(); - line 288: $guard->setUser($user); - line 290: $this->assertEquals($user, $guard->authenticate()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 286: $user = m::mock(Authenticatable::class); - Test @ line 293: public function testSetUserFiresAuthenticatedEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 293: public function testSetUserFiresAuthenticatedEvent() - line 295: $user = m::mock(Authenticatable::class); - line 296: $guard = $this->getGuard(); - line 297: $guard->setDispatcher($events = m::mock(Dispatcher::class)); - line 299: $guard->setUser($user); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 295: $user = m::mock(Authenticatable::class); - line 297: $guard->setDispatcher($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 293: public function testSetUserFiresAuthenticatedEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 302: public function testAuthenticateThrowsWhenUserIsNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 302: public function testAuthenticateThrowsWhenUserIsNull() - line 304: $this->expectException(AuthenticationException::class); - line 305: $this->expectExceptionMessage('Unauthenticated.'); - line 307: $guard = $this->getGuard(); - line 308: $guard->getSession()->shouldReceive('get')->once()->andReturn(null); - line 310: $guard->authenticate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 302: public function testAuthenticateThrowsWhenUserIsNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 313: public function testHasUserReturnsTrueWhenUserIsNotNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 313: public function testHasUserReturnsTrueWhenUserIsNotNull() - line 315: $user = m::mock(Authenticatable::class); - line 316: $guard = $this->getGuard(); - line 317: $guard->setUser($user); - line 319: $this->assertTrue($guard->hasUser()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 315: $user = m::mock(Authenticatable::class); - Test @ line 322: public function testHasUserReturnsFalseWhenUserIsNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 322: public function testHasUserReturnsFalseWhenUserIsNull() - line 324: $guard = $this->getGuard(); - line 325: $guard->getSession()->shouldNotReceive('get'); - line 327: $this->assertFalse($guard->hasUser()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 330: public function testIsAuthedReturnsTrueWhenUserIsNotNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 330: public function testIsAuthedReturnsTrueWhenUserIsNotNull() - line 332: $user = m::mock(Authenticatable::class); - line 333: $mock = $this->getGuard(); - line 334: $mock->setUser($user); - line 335: $this->assertTrue($mock->check()); - line 336: $this->assertFalse($mock->guest()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 332: $user = m::mock(Authenticatable::class); - Test @ line 339: public function testIsAuthedReturnsFalseWhenUserIsNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 339: public function testIsAuthedReturnsFalseWhenUserIsNull() - line 341: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 342: $mock = $this->getMockBuilder(SessionGuard::class)->onlyMethods(['user'])->setConstructorArgs(['default', $provider, $session, $request])->getMock(); - line 343: $mock->expects($this->exactly(2))->method('user')->willReturn(null); - line 344: $this->assertFalse($mock->check()); - line 345: $this->assertTrue($mock->guest()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 348: public function testUserMethodReturnsCachedUser() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 348: public function testUserMethodReturnsCachedUser() - line 350: $user = m::mock(Authenticatable::class); - line 351: $mock = $this->getGuard(); - line 352: $mock->setUser($user); - line 353: $this->assertSame($user, $mock->user()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 350: $user = m::mock(Authenticatable::class); - Test @ line 356: public function testNullIsReturnedForUserIfNoUserFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 356: public function testNullIsReturnedForUserIfNoUserFound() - line 358: $mock = $this->getGuard(); - line 359: $mock->getSession()->shouldReceive('get')->once()->andReturn(null); - line 360: $this->assertNull($mock->user()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 356: public function testNullIsReturnedForUserIfNoUserFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 363: public function testUserIsSetToRetrievedUser() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 363: public function testUserIsSetToRetrievedUser() - line 365: $mock = $this->getGuard(); - line 366: $mock->getSession()->shouldReceive('get')->once()->andReturn(1); - line 368: $mock->getProvider()->shouldReceive('retrieveById')->once()->with(1)->andReturn($user); - line 369: $this->assertSame($user, $mock->user()); - line 370: $this->assertSame($user, $mock->getUser()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 367: $user = m::mock(Authenticatable::class); - Test @ line 373: public function testLogoutRemovesSessionTokenAndRememberMeCookie() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 373: public function testLogoutRemovesSessionTokenAndRememberMeCookie() - line 375: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 376: $mock = $this->getMockBuilder(SessionGuard::class)->onlyMethods(['getName', 'getRecallerName', 'recaller'])->setConstructorArgs(['default', $provider, $session, $request])->getMock(); - line 377: $mock->setCookieJar($cookies = m::mock(CookieJar::class)); - line 381: $mock->expects($this->once())->method('getName')->willReturn('foo'); - line 382: $mock->expects($this->exactly(2))->method('getRecallerName')->willReturn($recallerName = 'bar'); - line 383: $mock->expects($this->once())->method('recaller')->willReturn('non-null-cookie'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 377: $mock->setCookieJar($cookies = m::mock(CookieJar::class)); - line 378: $user = m::mock(Authenticatable::class); - line 386: $cookie = m::mock(Cookie::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 373: public function testLogoutRemovesSessionTokenAndRememberMeCookie() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 396: public function testLogoutDoesNotEnqueueRememberMeCookieForDeletionIfCookieDoesntExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 396: public function testLogoutDoesNotEnqueueRememberMeCookieForDeletionIfCookieDoesntExist() - line 398: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 399: $mock = $this->getMockBuilder(SessionGuard::class)->onlyMethods(['getName', 'getRecallerName', 'recaller'])->setConstructorArgs(['default', $provider, $session, $request])->getMock(); - line 400: $mock->setCookieJar($cookies = m::mock(CookieJar::class)); - line 403: $mock->expects($this->once())->method('getRecallerName')->willReturn($recallerName = 'bar'); - line 404: $mock->expects($this->once())->method('getName')->willReturn('foo'); - line 405: $mock->expects($this->once())->method('recaller')->willReturn(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 400: $mock->setCookieJar($cookies = m::mock(CookieJar::class)); - line 401: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 396: public function testLogoutDoesNotEnqueueRememberMeCookieForDeletionIfCookieDoesntExist() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 415: public function testLogoutFiresLogoutEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 415: public function testLogoutFiresLogoutEvent() - line 417: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 418: $mock = $this->getMockBuilder(SessionGuard::class)->onlyMethods(['clearUserDataFromStorage'])->setConstructorArgs(['default', $provider, $session, $request])->getMock(); - line 419: $mock->expects($this->once())->method('clearUserDataFromStorage'); - line 420: $mock->setDispatcher($events = m::mock(Dispatcher::class)); - line 424: $mock->setUser($user); - line 426: $mock->logout(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 420: $mock->setDispatcher($events = m::mock(Dispatcher::class)); - line 421: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 415: public function testLogoutFiresLogoutEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 429: public function testLogoutDoesNotSetRememberTokenIfNotPreviouslySet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 429: public function testLogoutDoesNotSetRememberTokenIfNotPreviouslySet() - line 431: [$session, $provider, $request] = $this->getMocks(); - line 432: $mock = $this->getMockBuilder(SessionGuard::class)->onlyMethods(['clearUserDataFromStorage'])->setConstructorArgs(['default', $provider, $session, $request])->getMock(); - line 436: $user->shouldNotReceive('setRememberToken'); - line 437: $provider->shouldNotReceive('updateRememberToken'); - line 439: $mock->setUser($user); - line 440: $mock->logout(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 433: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 429: public function testLogoutDoesNotSetRememberTokenIfNotPreviouslySet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 443: public function testLogoutCurrentDeviceRemovesRememberMeCookie() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 443: public function testLogoutCurrentDeviceRemovesRememberMeCookie() - line 445: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 446: $mock = $this->getMockBuilder(SessionGuard::class)->onlyMethods(['getName', 'getRecallerName', 'recaller'])->setConstructorArgs(['default', $provider, $session, $request])->getMock(); - line 447: $mock->setCookieJar($cookies = m::mock(CookieJar::class)); - line 449: $mock->expects($this->once())->method('getName')->willReturn('foo'); - line 450: $mock->expects($this->exactly(2))->method('getRecallerName')->willReturn($recallerName = 'bar'); - line 451: $mock->expects($this->once())->method('recaller')->willReturn('non-null-cookie'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 447: $mock->setCookieJar($cookies = m::mock(CookieJar::class)); - line 448: $user = m::mock(Authenticatable::class); - line 453: $cookie = m::mock(Cookie::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 443: public function testLogoutCurrentDeviceRemovesRememberMeCookie() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 463: public function testLogoutCurrentDeviceDoesNotEnqueueRememberMeCookieForDeletionIfCookieDoesntExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 463: public function testLogoutCurrentDeviceDoesNotEnqueueRememberMeCookieForDeletionIfCookieDoesntExist() - line 465: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 466: $mock = $this->getMockBuilder(SessionGuard::class)->onlyMethods(['getName', 'getRecallerName', 'recaller'])->setConstructorArgs(['default', $provider, $session, $request])->getMock(); - line 467: $mock->setCookieJar($cookies = m::mock(CookieJar::class)); - line 470: $mock->expects($this->once())->method('getName')->willReturn('foo'); - line 471: $mock->expects($this->once())->method('getRecallerName')->willReturn($recallerName = 'bar'); - line 472: $mock->expects($this->once())->method('recaller')->willReturn(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 467: $mock->setCookieJar($cookies = m::mock(CookieJar::class)); - line 468: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 463: public function testLogoutCurrentDeviceDoesNotEnqueueRememberMeCookieForDeletionIfCookieDoesntExist() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 481: public function testLogoutCurrentDeviceFiresLogoutEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 481: public function testLogoutCurrentDeviceFiresLogoutEvent() - line 483: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 484: $mock = $this->getMockBuilder(SessionGuard::class)->onlyMethods(['clearUserDataFromStorage'])->setConstructorArgs(['default', $provider, $session, $request])->getMock(); - line 485: $mock->expects($this->once())->method('clearUserDataFromStorage'); - line 486: $mock->setDispatcher($events = m::mock(Dispatcher::class)); - line 490: $mock->setUser($user); - line 492: $mock->logoutCurrentDevice(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 486: $mock->setDispatcher($events = m::mock(Dispatcher::class)); - line 487: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 481: public function testLogoutCurrentDeviceFiresLogoutEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 495: public function testLoginMethodQueuesCookieWhenRemembering() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 495: public function testLoginMethodQueuesCookieWhenRemembering() - line 497: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 499: $guard->setCookieJar($cookie); - line 500: $foreverCookie = new Cookie($guard->getRecallerName(), 'foo'); - line 501: $cookie->shouldReceive('make')->once()->with($guard->getRecallerName(), 'foo|recaller|bar', 576000)->andReturn($foreverCookie); - line 503: $guard->getSession()->shouldReceive('put')->once()->with($guard->getName(), 'foo'); - line 509: $user->shouldReceive('setRememberToken')->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 505: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 495: public function testLoginMethodQueuesCookieWhenRemembering() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 514: public function testLoginMethodQueuesCookieWhenRememberingAndAllowsOverride() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 514: public function testLoginMethodQueuesCookieWhenRememberingAndAllowsOverride() - line 516: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 518: $guard->setRememberDuration(5000); - line 519: $guard->setCookieJar($cookie); - line 520: $foreverCookie = new Cookie($guard->getRecallerName(), 'foo'); - line 521: $cookie->shouldReceive('make')->once()->with($guard->getRecallerName(), 'foo|recaller|bar', 5000)->andReturn($foreverCookie); - line 523: $guard->getSession()->shouldReceive('put')->once()->with($guard->getName(), 'foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 525: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 514: public function testLoginMethodQueuesCookieWhenRememberingAndAllowsOverride() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 534: public function testLoginMethodCreatesRememberTokenIfOneDoesntExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 534: public function testLoginMethodCreatesRememberTokenIfOneDoesntExist() - line 536: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 538: $guard->setCookieJar($cookie); - line 539: $foreverCookie = new Cookie($guard->getRecallerName(), 'foo'); - line 542: $guard->getSession()->shouldReceive('put')->once()->with($guard->getName(), 'foo'); - line 550: $guard->login($user, true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 544: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 534: public function testLoginMethodCreatesRememberTokenIfOneDoesntExist() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 553: public function testLoginUsingIdLogsInWithUser() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 553: public function testLoginUsingIdLogsInWithUser() - line 555: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 557: $guard = m::mock(SessionGuard::class, ['default', $provider, $session])->makePartial(); - line 560: $guard->getProvider()->shouldReceive('retrieveById')->once()->with(10)->andReturn($user); - line 563: $this->assertSame($user, $guard->loginUsingId(10)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 559: $user = m::mock(Authenticatable::class); - Test @ line 566: public function testLoginUsingIdFailure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 566: public function testLoginUsingIdFailure() - line 568: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 569: $guard = m::mock(SessionGuard::class, ['default', $provider, $session])->makePartial(); - line 571: $guard->getProvider()->shouldReceive('retrieveById')->once()->with(11)->andReturn(null); - line 572: $guard->shouldNotReceive('login'); - line 574: $this->assertFalse($guard->loginUsingId(11)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 577: public function testOnceUsingIdSetsUser() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 577: public function testOnceUsingIdSetsUser() - line 579: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 580: $guard = m::mock(SessionGuard::class, ['default', $provider, $session])->makePartial(); - line 583: $guard->getProvider()->shouldReceive('retrieveById')->once()->with(10)->andReturn($user); - line 586: $this->assertSame($user, $guard->onceUsingId(10)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 582: $user = m::mock(Authenticatable::class); - Test @ line 589: public function testOnceUsingIdFailure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 589: public function testOnceUsingIdFailure() - line 591: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 592: $guard = m::mock(SessionGuard::class, ['default', $provider, $session])->makePartial(); - line 594: $guard->getProvider()->shouldReceive('retrieveById')->once()->with(11)->andReturn(null); - line 595: $guard->shouldNotReceive('setUser'); - line 597: $this->assertFalse($guard->onceUsingId(11)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 600: public function testUserUsesRememberCookieIfItExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 600: public function testUserUsesRememberCookieIfItExists() - line 602: $guard = $this->getGuard(); - line 603: [$session, $provider, $request, $cookie] = $this->getMocks(); - line 604: $request = Request::create('/', 'GET', [], [$guard->getRecallerName() => 'id|recaller|baz']); - line 606: $guard->getSession()->shouldReceive('get')->once()->with($guard->getName())->andReturn(null); - line 608: $guard->getProvider()->shouldReceive('retrieveByToken')->once()->with('id', 'recaller')->andReturn($user); - line 610: $guard->getSession()->shouldReceive('put')->with($guard->getName(), 'bar')->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 607: $user = m::mock(Authenticatable::class); - Test @ line 616: public function testLoginOnceSetsUser() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 616: public function testLoginOnceSetsUser() - line 618: [$session, $provider, $request, $cookie, $timebox] = $this->getMocks(); - line 619: $guard = m::mock(SessionGuard::class, ['default', $provider, $session, $request, $timebox])->makePartial(); - line 621: $timebox->shouldReceive('call')->once()->andReturnUsing(function ($callback) use ($timebox) { - line 624: $guard->getProvider()->shouldReceive('retrieveByCredentials')->once()->with(['foo'])->andReturn($user); - line 625: $guard->getProvider()->shouldReceive('validateCredentials')->once()->with($user, ['foo'])->andReturn(true); - line 626: $guard->getProvider()->shouldReceive('rehashPasswordIfRequired')->with($user, ['foo'])->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 620: $user = m::mock(Authenticatable::class); - Test @ line 631: public function testLoginOnceFailure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 631: public function testLoginOnceFailure() - line 633: [$session, $provider, $request, $cookie, $timebox] = $this->getMocks(); - line 634: $guard = m::mock(SessionGuard::class, ['default', $provider, $session, $request, $timebox])->makePartial(); - line 636: $timebox->shouldReceive('call')->once()->andReturnUsing(function ($callback) use ($timebox) { - line 639: $guard->getProvider()->shouldReceive('retrieveByCredentials')->once()->with(['foo'])->andReturn($user); - line 640: $guard->getProvider()->shouldReceive('validateCredentials')->once()->with($user, ['foo'])->andReturn(false); - line 641: $guard->getProvider()->shouldNotReceive('rehashPasswordIfRequired'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 635: $user = m::mock(Authenticatable::class); - Test @ line 645: public function testForgetUserSetsUserToNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 645: public function testForgetUserSetsUserToNull() - line 647: $user = m::mock(Authenticatable::class); - line 648: $guard = $this->getGuard(); - line 649: $guard->setUser($user); - line 650: $guard->forgetUser(); - line 651: $this->assertNull($guard->getUser()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 647: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 645: public function testForgetUserSetsUserToNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Auth/AuthHandlesAuthorizationTest.php - Test @ line 13: public function testAllowMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 13: public function testAllowMethod() - line 15: $response = $this->allow('some message', 'some_code'); - line 17: $this->assertTrue($response->allowed()); - line 18: $this->assertFalse($response->denied()); - line 19: $this->assertSame('some message', $response->message()); - line 20: $this->assertSame('some_code', $response->code()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 23: public function testDenyMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 23: public function testDenyMethod() - line 25: $response = $this->deny('some message', 'some_code'); - line 27: $this->assertTrue($response->denied()); - line 28: $this->assertFalse($response->allowed()); - line 29: $this->assertSame('some message', $response->message()); - line 30: $this->assertSame('some_code', $response->code()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 33: public function testDenyHasNullStatus() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 33: public function testDenyHasNullStatus() - line 41: return $this->deny('xxxx', 321); - line 46: $class()->authorize(); - line 47: $this->fail(); - line 49: $this->assertFalse($e->hasStatus()); - line 50: $this->assertNull($e->status()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 54: public function testItCanDenyWithStatus() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 54: public function testItCanDenyWithStatus() - line 62: return $this->denyWithStatus(418); - line 67: $class()->authorize(); - line 68: $this->fail(); - line 70: $this->assertTrue($e->hasStatus()); - line 71: $this->assertSame(418, $e->status()); - line 72: $this->assertSame('This action is unauthorized.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 97: public function testItCanDenyAsNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 97: public function testItCanDenyAsNotFound() - line 105: return $this->denyAsNotFound(); - line 110: $class()->authorize(); - line 111: $this->fail(); - line 113: $this->assertTrue($e->hasStatus()); - line 114: $this->assertSame(404, $e->status()); - line 115: $this->assertSame('This action is unauthorized.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Auth/AuthListenersSendEmailVerificationNotificationHandleFunctionTest.php - Test @ line 17: public function testWillExecuted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 17: public function testWillExecuted() - line 19: $user = $this->getMockBuilder(MustVerifyEmail::class)->getMock(); - line 20: $user->method('hasVerifiedEmail')->willReturn(false); - line 21: $user->expects($this->once())->method('sendEmailVerificationNotification'); - line 23: $listener = new SendEmailVerificationNotification; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 17: public function testWillExecuted() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 31: public function testUserIsNotInstanceOfMustVerifyEmail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 31: public function testUserIsNotInstanceOfMustVerifyEmail() - line 33: $user = m::mock(User::class); - line 34: $user->shouldNotReceive('sendEmailVerificationNotification'); - line 36: $listener = new SendEmailVerificationNotification; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 33: $user = m::mock(User::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 31: public function testUserIsNotInstanceOfMustVerifyEmail() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 44: public function testHasVerifiedEmailAsTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 44: public function testHasVerifiedEmailAsTrue() - line 46: $user = $this->getMockBuilder(MustVerifyEmail::class)->getMock(); - line 47: $user->method('hasVerifiedEmail')->willReturn(true); - line 48: $user->expects($this->never())->method('sendEmailVerificationNotification'); - line 50: $listener = new SendEmailVerificationNotification; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 44: public function testHasVerifiedEmailAsTrue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Auth/AuthorizeMiddlewareTest.php - Test @ line 70: public function testSimpleAbilityUnauthorized() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 70: public function testSimpleAbilityUnauthorized() - line 72: $this->expectException(AuthorizationException::class); - line 73: $this->expectExceptionMessage('This action is unauthorized.'); - line 75: $this->gate()->define('view-dashboard', function ($user, $additional = null) { - line 86: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 70: public function testSimpleAbilityUnauthorized() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 91: public function testSimpleAbilityAuthorized() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 91: public function testSimpleAbilityAuthorized() - line 93: $this->gate()->define('view-dashboard', function ($user) { - line 102: ]); - line 106: $this->assertSame('success', $response->content()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 109: public function testSimpleAbilityWithStringParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 109: public function testSimpleAbilityWithStringParameter() - line 111: $this->gate()->define('view-dashboard', function ($user, $param) { - line 120: ]); - line 124: $this->assertSame('success', $response->content()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 127: public function testSimpleAbilityWithBackedEnumParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 127: public function testSimpleAbilityWithBackedEnumParameter() - line 129: $this->gate()->define('view-dashboard', function ($user) { - line 133: $this->router->middleware(Authorize::using(AbilitiesEnum::VIEW_DASHBOARD))->get('dashboard', [ - line 137: ]); - line 141: $this->assertSame('success', $response->content()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 144: public function testSimpleAbilityWithNullParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 144: public function testSimpleAbilityWithNullParameter() - line 146: $this->gate()->define('view-dashboard', function ($user, $param = null) { - line 157: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 144: public function testSimpleAbilityWithNullParameter() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 162: public function testSimpleAbilityWithOptionalParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 162: public function testSimpleAbilityWithOptionalParameter() - line 166: $this->router->bind('post', function () use ($post) { - line 170: $this->gate()->define('view-comments', function ($user, $model = null) { - line 187: ]); - line 190: $this->assertSame('success', $response->content()); - line 193: $this->assertSame('success', $response->content()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 196: public function testSimpleAbilityWithStringParameterFromRouteParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 196: public function testSimpleAbilityWithStringParameterFromRouteParameter() - line 198: $this->gate()->define('view-dashboard', function ($user, $param) { - line 207: ]); - line 211: $this->assertSame('success', $response->content()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 214: public function testSimpleAbilityWithStringParameter0FromRouteParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 214: public function testSimpleAbilityWithStringParameter0FromRouteParameter() - line 216: $this->gate()->define('view-dashboard', function ($user, $param) { - line 225: ]); - line 229: $this->assertSame('success', $response->content()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 232: public function testModelTypeUnauthorized() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 232: public function testModelTypeUnauthorized() - line 234: $this->expectException(AuthorizationException::class); - line 235: $this->expectExceptionMessage('This action is unauthorized.'); - line 237: $this->gate()->define('create', function ($user, $model) { - line 248: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 232: public function testModelTypeUnauthorized() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 253: public function testModelTypeAuthorized() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 253: public function testModelTypeAuthorized() - line 255: $this->gate()->define('create', function ($user, $model) { - line 266: ]); - line 270: $this->assertSame('success', $response->content()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 273: public function testModelUnauthorized() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 273: public function testModelUnauthorized() - line 275: $this->expectException(AuthorizationException::class); - line 276: $this->expectExceptionMessage('This action is unauthorized.'); - line 280: $this->router->bind('post', function () use ($post) { - line 284: $this->gate()->define('edit', function ($user, $model) use ($post) { - line 295: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 273: public function testModelUnauthorized() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 300: public function testModelAuthorized() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 300: public function testModelAuthorized() - line 304: $this->router->bind('post', function () use ($post) { - line 308: $this->gate()->define('edit', function ($user, $model) use ($post) { - line 319: ]); - line 323: $this->assertSame('success', $response->content()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 326: public function testModelInstanceAsParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 326: public function testModelInstanceAsParameter() - line 328: $instance = m::mock(Model::class); - line 330: $this->gate()->define('success', function ($user, $model) use ($instance) { - line 340: }; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 328: $instance = m::mock(Model::class); - line 336: $request = m::mock(Request::class); ❌ tests/Auth/AuthorizesResourcesTest.php - Test @ line 15: public function testCreateMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 15: public function testCreateMethod() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 15: public function testCreateMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 26: public function testStoreMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 26: public function testStoreMethod() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 26: public function testStoreMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 37: public function testShowMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 37: public function testShowMethod() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 37: public function testShowMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 48: public function testEditMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 48: public function testEditMethod() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 48: public function testEditMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 59: public function testUpdateMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 59: public function testUpdateMethod() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 59: public function testUpdateMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 70: public function testDestroyMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 70: public function testDestroyMethod() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 70: public function testDestroyMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Auth/AuthPasswordBrokerTest.php - Test @ line 22: public function testIfUserIsNotFoundErrorRedirectIsReturned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 22: public function testIfUserIsNotFoundErrorRedirectIsReturned() - line 24: $mocks = $this->getMocks(); - line 25: $broker = m::mock(PasswordBroker::class, array_values($mocks))->makePartial(); - line 26: $broker->shouldReceive('getUser')->once()->andReturnNull(); - line 28: $this->assertSame(PasswordBrokerContract::INVALID_USER, $broker->sendResetLink(['credentials'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 31: public function testIfTokenIsRecentlyCreated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 31: public function testIfTokenIsRecentlyCreated() - line 33: $mocks = $this->getMocks(); - line 34: $broker = m::mock(PasswordBroker::class, array_values($mocks))->makePartial(); - line 39: $this->assertSame(PasswordBrokerContract::RESET_THROTTLED, $broker->sendResetLink(['foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 35: $mocks['users']->shouldReceive('retrieveByCredentials')->once()->with(['foo'])->andReturn($user = m::mock(CanResetPassword::class)); - Test @ line 42: public function testGetUserThrowsExceptionIfUserDoesntImplementCanResetPassword() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 42: public function testGetUserThrowsExceptionIfUserDoesntImplementCanResetPassword() - line 44: $this->expectException(UnexpectedValueException::class); - line 45: $this->expectExceptionMessage('User must implement CanResetPassword interface.'); - line 47: $broker = $this->getBroker($mocks = $this->getMocks()); - line 50: $broker->getUser(['foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 42: public function testGetUserThrowsExceptionIfUserDoesntImplementCanResetPassword() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 53: public function testUserIsRetrievedByCredentials() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 53: public function testUserIsRetrievedByCredentials() - line 55: $broker = $this->getBroker($mocks = $this->getMocks()); - line 58: $this->assertEquals($user, $broker->getUser(['foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 56: $mocks['users']->shouldReceive('retrieveByCredentials')->once()->with(['foo'])->andReturn($user = m::mock(CanResetPassword::class)); - Test @ line 61: public function testBrokerCreatesTokenAndRedirectsWithoutError() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 61: public function testBrokerCreatesTokenAndRedirectsWithoutError() - line 63: $mocks = $this->getMocks(); - line 64: $broker = m::mock(PasswordBroker::class, array_values($mocks))->makePartial(); - line 70: $this->assertSame(PasswordBrokerContract::RESET_LINK_SENT, $broker->sendResetLink(['foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 65: $mocks['users']->shouldReceive('retrieveByCredentials')->once()->with(['foo'])->andReturn($user = m::mock(CanResetPassword::class)); - Test @ line 73: public function testRedirectIsReturnedByResetWhenUserCredentialsInvalid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 73: public function testRedirectIsReturnedByResetWhenUserCredentialsInvalid() - line 75: $broker = $this->getBroker($mocks = $this->getMocks()); - line 78: $this->assertSame(PasswordBrokerContract::INVALID_USER, $broker->reset(['creds'], function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 83: public function testRedirectReturnedByRemindWhenRecordDoesntExistInTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 83: public function testRedirectReturnedByRemindWhenRecordDoesntExistInTable() - line 86: $broker = $this->getBroker($mocks = $this->getMocks()); - line 90: $this->assertSame(PasswordBrokerContract::INVALID_TOKEN, $broker->reset($creds, function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 87: $mocks['users']->shouldReceive('retrieveByCredentials')->once()->with(Arr::except($creds, ['token']))->andReturn($user = m::mock(CanResetPassword::class)); - Test @ line 95: public function testResetRemovesRecordOnReminderTableAndCallsCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 95: public function testResetRemovesRecordOnReminderTableAndCallsCallback() - line 98: $mocks = $this->getMocks(); - line 99: $broker = m::mock(PasswordBroker::class, array_values($mocks))->makePartial()->shouldAllowMockingProtectedMethods(); - line 108: $this->assertSame(PasswordBrokerContract::PASSWORD_RESET, $broker->reset(['password' => 'password', 'token' => 'token'], $callback)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 103: $_SERVER['__password.reset.test'] = compact('user', 'password'); - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 97: unset($_SERVER['__password.reset.test']); - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 100: $broker->shouldReceive('validateReset')->once()->andReturn($user = m::mock(CanResetPassword::class)); - Test @ line 112: public function testExecutesCallbackInsteadOfSendingNotification() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 112: public function testExecutesCallbackInsteadOfSendingNotification() - line 120: $mocks = $this->getMocks(); - line 121: $broker = m::mock(PasswordBroker::class, array_values($mocks))->makePartial(); - line 127: $this->assertEquals(PasswordBrokerContract::RESET_LINK_SENT, $broker->sendResetLink(['foo'], $closure)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 122: $mocks['users']->shouldReceive('retrieveByCredentials')->once()->with(['foo'])->andReturn($user = m::mock(CanResetPassword::class)); ❌ tests/Auth/AuthTokenGuardTest.php - Test @ line 18: public function testUserCanBeRetrievedByQueryStringVariable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 18: public function testUserCanBeRetrievedByQueryStringVariable() - line 20: $provider = m::mock(UserProvider::class); - line 28: $user = $guard->user(); - line 31: $this->assertTrue($guard->check()); - line 32: $this->assertFalse($guard->guest()); - line 33: $this->assertSame(1, $guard->id()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 20: $provider = m::mock(UserProvider::class); - Test @ line 36: public function testTokenCanBeHashed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 36: public function testTokenCanBeHashed() - line 38: $provider = m::mock(UserProvider::class); - line 46: $user = $guard->user(); - line 49: $this->assertTrue($guard->check()); - line 50: $this->assertFalse($guard->guest()); - line 51: $this->assertSame(1, $guard->id()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 38: $provider = m::mock(UserProvider::class); - Test @ line 54: public function testUserCanBeRetrievedByAuthHeaders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 54: public function testUserCanBeRetrievedByAuthHeaders() - line 56: $provider = m::mock(UserProvider::class); - line 62: $user = $guard->user(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 56: $provider = m::mock(UserProvider::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 54: public function testUserCanBeRetrievedByAuthHeaders() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 67: public function testUserCanBeRetrievedByBearerToken() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 67: public function testUserCanBeRetrievedByBearerToken() - line 69: $provider = m::mock(UserProvider::class); - line 75: $user = $guard->user(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 69: $provider = m::mock(UserProvider::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 67: public function testUserCanBeRetrievedByBearerToken() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 80: public function testValidateCanDetermineIfCredentialsAreValid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 80: public function testValidateCanDetermineIfCredentialsAreValid() - line 82: $provider = m::mock(UserProvider::class); - line 90: $this->assertTrue($guard->validate(['api_token' => 'foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 82: $provider = m::mock(UserProvider::class); - Test @ line 93: public function testValidateCanDetermineIfCredentialsAreInvalid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 93: public function testValidateCanDetermineIfCredentialsAreInvalid() - line 95: $provider = m::mock(UserProvider::class); - line 101: $this->assertFalse($guard->validate(['api_token' => 'foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 95: $provider = m::mock(UserProvider::class); - Test @ line 104: public function testValidateIfApiTokenIsEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 104: public function testValidateIfApiTokenIsEmpty() - line 106: $provider = m::mock(UserProvider::class); - line 111: $this->assertFalse($guard->validate(['api_token' => ''])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 106: $provider = m::mock(UserProvider::class); - Test @ line 114: public function testItAllowsToPassCustomRequestInSetterAndUseItForValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 114: public function testItAllowsToPassCustomRequestInSetterAndUseItForValidation() - line 116: $provider = m::mock(UserProvider::class); - line 123: $guard->setRequest(Request::create('/', 'GET', ['api_token' => 'custom'])); - line 125: $user = $guard->user(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 116: $provider = m::mock(UserProvider::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 114: public function testItAllowsToPassCustomRequestInSetterAndUseItForValidation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 130: public function testUserCanBeRetrievedByBearerTokenWithCustomKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 130: public function testUserCanBeRetrievedByBearerTokenWithCustomKey() - line 132: $provider = m::mock(UserProvider::class); - line 138: $user = $guard->user(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 132: $provider = m::mock(UserProvider::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 130: public function testUserCanBeRetrievedByBearerTokenWithCustomKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 143: public function testUserCanBeRetrievedByQueryStringVariableWithCustomKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 143: public function testUserCanBeRetrievedByQueryStringVariableWithCustomKey() - line 145: $provider = m::mock(UserProvider::class); - line 153: $user = $guard->user(); - line 156: $this->assertTrue($guard->check()); - line 157: $this->assertFalse($guard->guest()); - line 158: $this->assertSame(1, $guard->id()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 145: $provider = m::mock(UserProvider::class); - Test @ line 161: public function testUserCanBeRetrievedByAuthHeadersWithCustomField() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 161: public function testUserCanBeRetrievedByAuthHeadersWithCustomField() - line 163: $provider = m::mock(UserProvider::class); - line 169: $user = $guard->user(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 163: $provider = m::mock(UserProvider::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 161: public function testUserCanBeRetrievedByAuthHeadersWithCustomField() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 174: public function testValidateCanDetermineIfCredentialsAreValidWithCustomKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 174: public function testValidateCanDetermineIfCredentialsAreValidWithCustomKey() - line 176: $provider = m::mock(UserProvider::class); - line 184: $this->assertTrue($guard->validate(['custom_token_field' => 'foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 176: $provider = m::mock(UserProvider::class); - Test @ line 187: public function testValidateCanDetermineIfCredentialsAreInvalidWithCustomKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 187: public function testValidateCanDetermineIfCredentialsAreInvalidWithCustomKey() - line 189: $provider = m::mock(UserProvider::class); - line 195: $this->assertFalse($guard->validate(['custom_token_field' => 'foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 189: $provider = m::mock(UserProvider::class); - Test @ line 198: public function testValidateIfApiTokenIsEmptyWithCustomKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 198: public function testValidateIfApiTokenIsEmptyWithCustomKey() - line 200: $provider = m::mock(UserProvider::class); - line 205: $this->assertFalse($guard->validate(['custom_token_field' => ''])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 200: $provider = m::mock(UserProvider::class); ❌ tests/Broadcasting/AblyBroadcasterTest.php - Test @ line 37: public function testAuthCallValidAuthenticationResponseWithPrivateChannelWhenCallbackReturnTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 37: public function testAuthCallValidAuthenticationResponseWithPrivateChannelWhenCallbackReturnTrue() - line 39: $this->broadcaster->channel('test', function () { - line 46: $this->broadcaster->auth( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 37: public function testAuthCallValidAuthenticationResponseWithPrivateChannelWhenCallbackReturnTrue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 51: public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenCallbackReturnFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 51: public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenCallbackReturnFalse() - line 53: $this->expectException(AccessDeniedHttpException::class); - line 55: $this->broadcaster->channel('test', function () { - line 59: $this->broadcaster->auth( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 51: public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenCallbackReturnFalse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 64: public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenRequestUserNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 64: public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenRequestUserNotFound() - line 66: $this->expectException(AccessDeniedHttpException::class); - line 68: $this->broadcaster->channel('test', function () { - line 72: $this->broadcaster->auth( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 64: public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenRequestUserNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 77: public function testAuthCallValidAuthenticationResponseWithPresenceChannelWhenCallbackReturnAnArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 77: public function testAuthCallValidAuthenticationResponseWithPresenceChannelWhenCallbackReturnAnArray() - line 80: $this->broadcaster->channel('test', function () use ($returnData) { - line 87: $this->broadcaster->auth( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 77: public function testAuthCallValidAuthenticationResponseWithPresenceChannelWhenCallbackReturnAnArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 92: public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenCallbackReturnNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 92: public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenCallbackReturnNull() - line 94: $this->expectException(AccessDeniedHttpException::class); - line 96: $this->broadcaster->channel('test', function () { - line 100: $this->broadcaster->auth( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 92: public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenCallbackReturnNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 105: public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenRequestUserNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 105: public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenRequestUserNotFound() - line 107: $this->expectException(AccessDeniedHttpException::class); - line 109: $this->broadcaster->channel('test', function () { - line 113: $this->broadcaster->auth( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 105: public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenRequestUserNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Broadcasting/BroadcasterTest.php - Test @ line 38: public function testExtractingParametersWhileCheckingForUserAccess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 38: public function testExtractingParametersWhileCheckingForUserAccess() - line 43: $parameters = $this->broadcaster->extractAuthParameters('asd.{model}.{nonModel}', 'asd.1.something', $callback); - line 49: $parameters = $this->broadcaster->extractAuthParameters('asd.{model}.{model2}.{nonModel}', 'asd.1.uid.something', $callback); - line 55: $parameters = $this->broadcaster->extractAuthParameters('asd', 'asd', $callback); - line 61: $parameters = $this->broadcaster->extractAuthParameters('asd', 'asd', $callback); - line 71: $container->instance(BindingRegistrar::class, $binder); - line 75: $parameters = $this->broadcaster->extractAuthParameters('something.{model}', 'something.1', $callback); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 67: $binder = m::mock(BindingRegistrar::class); - Test @ line 86: public function testModelRouteBinding() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 86: public function testModelRouteBinding() - line 89: Container::setInstance($container); - line 94: $container->instance(BindingRegistrar::class, $binder); - line 98: $parameters = $this->broadcaster->extractAuthParameters('something.{model}', 'something.1', $callback); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 90: $binder = m::mock(BindingRegistrar::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 86: public function testModelRouteBinding() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 103: public function testUnknownChannelAuthHandlerTypeThrowsException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 103: public function testUnknownChannelAuthHandlerTypeThrowsException() - line 105: $this->expectException(Exception::class); - line 107: $this->broadcaster->extractAuthParameters('asd.{model}.{nonModel}', 'asd.1.something', 123); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 103: public function testUnknownChannelAuthHandlerTypeThrowsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 110: public function testCanRegisterChannelsAsClasses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 110: public function testCanRegisterChannelsAsClasses() - line 112: $this->broadcaster->channel('something', function () { - line 116: $this->broadcaster->channel('somethingelse', DummyBroadcastingChannel::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 110: public function testCanRegisterChannelsAsClasses() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 119: public function testNotFoundThrowsHttpException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 119: public function testNotFoundThrowsHttpException() - line 121: $this->expectException(HttpException::class); - line 126: $this->broadcaster->extractAuthParameters('asd.{model}', 'asd.1', $callback); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 119: public function testNotFoundThrowsHttpException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 129: public function testCanRegisterChannelsWithoutOptions() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 129: public function testCanRegisterChannelsWithoutOptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 136: public function testCanRegisterChannelsWithOptions() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 136: public function testCanRegisterChannelsWithOptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 144: public function testCanRetrieveChannelsOptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 144: public function testCanRetrieveChannelsOptions() - line 147: $this->broadcaster->channel('somechannel', function () { - line 153: $this->broadcaster->retrieveChannelOptions('somechannel') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 157: public function testCanRetrieveChannelsOptionsUsingAChannelNameContainingArgs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 157: public function testCanRetrieveChannelsOptionsUsingAChannelNameContainingArgs() - line 160: $this->broadcaster->channel('somechannel.{id}.test.{text}', function () { - line 166: $this->broadcaster->retrieveChannelOptions('somechannel.23.test.mytext') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 170: public function testCanRetrieveChannelsOptionsWhenMultipleChannelsAreRegistered() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 170: public function testCanRetrieveChannelsOptionsWhenMultipleChannelsAreRegistered() - line 173: $this->broadcaster->channel('somechannel', function () { - line 176: $this->broadcaster->channel('someotherchannel', function () { - line 182: $this->broadcaster->retrieveChannelOptions('someotherchannel') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 186: public function testDontRetrieveChannelsOptionsWhenChannelDoesntExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 186: public function testDontRetrieveChannelsOptionsWhenChannelDoesntExists() - line 189: $this->broadcaster->channel('somechannel', function () { - line 195: $this->broadcaster->retrieveChannelOptions('someotherchannel') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 199: public function testRetrieveUserWithoutGuard() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 199: public function testRetrieveUserWithoutGuard() - line 201: $this->broadcaster->channel('somechannel', function () { - line 208: ->withNoArgs() - line 213: $this->broadcaster->retrieveUser($request, 'somechannel') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 205: $request = m::mock(Request::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 199: public function testRetrieveUserWithoutGuard() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 217: public function testRetrieveUserWithOneGuardUsingAStringForSpecifyingGuard() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 217: public function testRetrieveUserWithOneGuardUsingAStringForSpecifyingGuard() - line 219: $this->broadcaster->channel('somechannel', function () { - line 231: $this->broadcaster->retrieveUser($request, 'somechannel') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 223: $request = m::mock(Request::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 217: public function testRetrieveUserWithOneGuardUsingAStringForSpecifyingGuard() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 235: public function testRetrieveUserWithMultipleGuardsAndRespectGuardsOrder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 235: public function testRetrieveUserWithMultipleGuardsAndRespectGuardsOrder() - line 237: $this->broadcaster->channel('somechannel', function () { - line 240: $this->broadcaster->channel('someotherchannel', function () { - line 253: ->ordered('user'); - line 257: $this->broadcaster->retrieveUser($request, 'somechannel') - line 262: $this->broadcaster->retrieveUser($request, 'someotherchannel') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 244: $request = m::mock(Request::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 235: public function testRetrieveUserWithMultipleGuardsAndRespectGuardsOrder() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 266: public function testRetrieveUserDontUseDefaultGuardWhenOneGuardSpecified() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 266: public function testRetrieveUserDontUseDefaultGuardWhenOneGuardSpecified() - line 268: $this->broadcaster->channel('somechannel', function () { - line 277: $request->shouldNotReceive('user') - line 280: $this->broadcaster->retrieveUser($request, 'somechannel'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 272: $request = m::mock(Request::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 266: public function testRetrieveUserDontUseDefaultGuardWhenOneGuardSpecified() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 283: public function testRetrieveUserDontUseDefaultGuardWhenMultipleGuardsSpecified() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 283: public function testRetrieveUserDontUseDefaultGuardWhenMultipleGuardsSpecified() - line 285: $this->broadcaster->channel('somechannel', function () { - line 298: $request->shouldNotReceive('user') - line 301: $this->broadcaster->retrieveUser($request, 'somechannel'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 289: $request = m::mock(Request::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 283: public function testRetrieveUserDontUseDefaultGuardWhenMultipleGuardsSpecified() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 304: public function testUserAuthenticationWithValidUser() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 304: public function testUserAuthenticationWithValidUser() - line 306: $this->broadcaster->resolveAuthenticatedUserUsing(function ($request) { - line 310: $user = $this->broadcaster->resolveAuthenticatedUser(new Request(['socket_id' => '1234.1234'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 318: public function testUserAuthenticationWithInvalidUser() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 318: public function testUserAuthenticationWithInvalidUser() - line 320: $this->broadcaster->resolveAuthenticatedUserUsing(function ($request) { - line 324: $user = $this->broadcaster->resolveAuthenticatedUser(new Request(['socket_id' => '1234.1234'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 318: public function testUserAuthenticationWithInvalidUser() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 329: public function testUserAuthenticationWithoutResolve() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 329: public function testUserAuthenticationWithoutResolve() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Broadcasting/BroadcastEventTest.php - Test @ line 21: public function testBasicEventBroadcastParameterFormatting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 21: public function testBasicEventBroadcastParameterFormatting() - line 23: $broadcaster = m::mock(Broadcaster::class); - line 33: $event = new TestBroadcastEvent; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 23: $broadcaster = m::mock(Broadcaster::class); - line 29: $manager = m::mock(BroadcastingFactory::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 21: public function testBasicEventBroadcastParameterFormatting() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 38: public function testManualParameterSpecification() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 38: public function testManualParameterSpecification() - line 40: $broadcaster = m::mock(Broadcaster::class); - line 50: $event = new TestBroadcastEventWithManualData; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 40: $broadcaster = m::mock(Broadcaster::class); - line 46: $manager = m::mock(BroadcastingFactory::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 38: public function testManualParameterSpecification() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 55: public function testSpecificBroadcasterGiven() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 55: public function testSpecificBroadcasterGiven() - line 57: $broadcaster = m::mock(Broadcaster::class); - line 65: $event = new TestBroadcastEventWithSpecificBroadcaster; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 57: $broadcaster = m::mock(Broadcaster::class); - line 61: $manager = m::mock(BroadcastingFactory::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 55: public function testSpecificBroadcasterGiven() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 70: public function testSpecificChannelsPerConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 70: public function testSpecificChannelsPerConnection() - line 72: $broadcaster = m::mock(Broadcaster::class); - line 87: $event = new TestBroadcastEventWithChannelsPerConnection; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 72: $broadcaster = m::mock(Broadcaster::class); - line 82: $manager = m::mock(BroadcastingFactory::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 70: public function testSpecificChannelsPerConnection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 107: public function testMiddlewareProxiesFailedHandlerFromUnderlyingEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 107: public function testMiddlewareProxiesFailedHandlerFromUnderlyingEvent() - line 113: $e->validateCall(); - line 122: $job->failed($exception); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 119: $exception = m::mock(Exception::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 107: public function testMiddlewareProxiesFailedHandlerFromUnderlyingEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Broadcasting/PusherBroadcasterTest.php - Test @ line 28: public function testAuthCallValidAuthenticationResponseWithPrivateChannelWhenCallbackReturnTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 28: public function testAuthCallValidAuthenticationResponseWithPrivateChannelWhenCallbackReturnTrue() - line 30: $this->broadcaster->channel('test', function () { - line 37: $this->broadcaster->auth( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 28: public function testAuthCallValidAuthenticationResponseWithPrivateChannelWhenCallbackReturnTrue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 42: public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenCallbackReturnFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 42: public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenCallbackReturnFalse() - line 44: $this->expectException(AccessDeniedHttpException::class); - line 46: $this->broadcaster->channel('test', function () { - line 50: $this->broadcaster->auth( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 42: public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenCallbackReturnFalse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 55: public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenRequestUserNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 55: public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenRequestUserNotFound() - line 57: $this->expectException(AccessDeniedHttpException::class); - line 59: $this->broadcaster->channel('test', function () { - line 63: $this->broadcaster->auth( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 55: public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenRequestUserNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 68: public function testAuthCallValidAuthenticationResponseWithPresenceChannelWhenCallbackReturnAnArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 68: public function testAuthCallValidAuthenticationResponseWithPresenceChannelWhenCallbackReturnAnArray() - line 71: $this->broadcaster->channel('test', function () use ($returnData) { - line 78: $this->broadcaster->auth( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 68: public function testAuthCallValidAuthenticationResponseWithPresenceChannelWhenCallbackReturnAnArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 83: public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenCallbackReturnNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 83: public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenCallbackReturnNull() - line 85: $this->expectException(AccessDeniedHttpException::class); - line 87: $this->broadcaster->channel('test', function () { - line 91: $this->broadcaster->auth( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 83: public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenCallbackReturnNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 96: public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenRequestUserNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 96: public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenRequestUserNotFound() - line 98: $this->expectException(AccessDeniedHttpException::class); - line 100: $this->broadcaster->channel('test', function () { - line 104: $this->broadcaster->auth( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 96: public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenRequestUserNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 109: public function testValidAuthenticationResponseCallPusherSocketAuthMethodWithPrivateChannel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 109: public function testValidAuthenticationResponseCallPusherSocketAuthMethodWithPrivateChannel() - line 111: $request = $this->getMockRequestWithUserForChannel('private-test'); - line 123: $this->broadcaster->validAuthenticationResponse($request, true) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 127: public function testValidAuthenticationResponseCallPusherPresenceAuthMethodWithPresenceChannel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 127: public function testValidAuthenticationResponseCallPusherPresenceAuthMethodWithPresenceChannel() - line 129: $request = $this->getMockRequestWithUserForChannel('presence-test'); - line 145: $this->broadcaster->validAuthenticationResponse($request, true) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 149: public function testUserAuthenticationForPusher() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 149: public function testUserAuthenticationForPusher() - line 160: $this->broadcaster->resolveAuthenticatedUserUsing(function () { - line 164: $response = $this->broadcaster->resolveAuthenticatedUser(new Request(['socket_id' => '1234.1234'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 149: public function testUserAuthenticationForPusher() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Broadcasting/RedisBroadcasterTest.php - Test @ line 37: public function testAuthCallValidAuthenticationResponseWithPrivateChannelWhenCallbackReturnTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 37: public function testAuthCallValidAuthenticationResponseWithPrivateChannelWhenCallbackReturnTrue() - line 39: $this->broadcaster->channel('test', function () { - line 46: $this->broadcaster->auth( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 37: public function testAuthCallValidAuthenticationResponseWithPrivateChannelWhenCallbackReturnTrue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 51: public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenCallbackReturnFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 51: public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenCallbackReturnFalse() - line 53: $this->expectException(AccessDeniedHttpException::class); - line 55: $this->broadcaster->channel('test', function () { - line 59: $this->broadcaster->auth( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 51: public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenCallbackReturnFalse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 64: public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenRequestUserNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 64: public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenRequestUserNotFound() - line 66: $this->expectException(AccessDeniedHttpException::class); - line 68: $this->broadcaster->channel('test', function () { - line 72: $this->broadcaster->auth( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 64: public function testAuthThrowAccessDeniedHttpExceptionWithPrivateChannelWhenRequestUserNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 77: public function testAuthCallValidAuthenticationResponseWithPresenceChannelWhenCallbackReturnAnArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 77: public function testAuthCallValidAuthenticationResponseWithPresenceChannelWhenCallbackReturnAnArray() - line 80: $this->broadcaster->channel('test', function () use ($returnData) { - line 87: $this->broadcaster->auth( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 77: public function testAuthCallValidAuthenticationResponseWithPresenceChannelWhenCallbackReturnAnArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 92: public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenCallbackReturnNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 92: public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenCallbackReturnNull() - line 94: $this->expectException(AccessDeniedHttpException::class); - line 96: $this->broadcaster->channel('test', function () { - line 100: $this->broadcaster->auth( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 92: public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenCallbackReturnNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 105: public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenRequestUserNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 105: public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenRequestUserNotFound() - line 107: $this->expectException(AccessDeniedHttpException::class); - line 109: $this->broadcaster->channel('test', function () { - line 113: $this->broadcaster->auth( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 105: public function testAuthThrowAccessDeniedHttpExceptionWithPresenceChannelWhenRequestUserNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 118: public function testValidAuthenticationResponseWithPrivateChannel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 118: public function testValidAuthenticationResponseWithPrivateChannel() - line 120: $request = $this->getMockRequestWithUserForChannel('private-test'); - line 124: $this->broadcaster->validAuthenticationResponse($request, true) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 128: public function testValidAuthenticationResponseWithPresenceChannel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 128: public function testValidAuthenticationResponseWithPresenceChannel() - line 130: $request = $this->getMockRequestWithUserForChannel('presence-test'); - line 142: $this->broadcaster->validAuthenticationResponse($request, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Broadcasting/UsePusherChannelsNamesTest.php - Test @ line 120: public function testChannelNameMatchesPattern($channel, $pattern) Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 120: public function testChannelNameMatchesPattern($channel, $pattern) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Bus/BusBatchableTest.php - Test @ line 19: public function test_batch_may_be_retrieved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 19: public function test_batch_may_be_retrieved() - line 26: $this->assertSame($class, $class->withBatchId('test-batch-id')); - line 33: $container->instance(BatchRepository::class, $repository); - line 35: $this->assertSame('test-batch', $class->batch()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 31: $repository = m::mock(BatchRepository::class); - Test @ line 40: public function test_with_fake_batch_sets_and_returns_fake() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 40: public function test_with_fake_batch_sets_and_returns_fake() - line 47: [$self, $batch] = $job->withFakeBatch('test-batch-id', 'test-batch-name', 3, 3, 0, [], []); - line 51: $this->assertSame($batch, $job->batch()); - line 52: $this->assertSame('test-batch-id', $job->batch()->id); - line 53: $this->assertSame('test-batch-name', $job->batch()->name); - line 54: $this->assertSame(3, $job->batch()->totalJobs); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 57: public function test_batching_reflects_cancelled_state() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 57: public function test_batching_reflects_cancelled_state() - line 64: $job->withFakeBatch('test-batch-id', 'test-batch-name'); - line 67: $this->assertTrue($job->batching()); - line 70: $job->batch()->cancel(); - line 71: $this->assertFalse($job->batching()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Bus/BusBatchTest.php - Test @ line 123: public function test_jobs_can_be_added_to_the_batch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 123: public function test_jobs_can_be_added_to_the_batch() - line 125: $queue = m::mock(Factory::class); - line 127: $batch = $this->createTestBatch($queue); - line 154: $batch = $batch->add([$job, $secondJob, $thirdJob]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 125: $queue = m::mock(Factory::class); - line 144: ->andReturn($connection = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 123: public function test_jobs_can_be_added_to_the_batch() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 162: public function test_jobs_can_be_added_to_pending_batch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 162: public function test_jobs_can_be_added_to_pending_batch() - line 171: $batch->add([$job]); - line 180: $batch->add($secondJob); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 162: public function test_jobs_can_be_added_to_pending_batch() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 184: public function test_jobs_can_be_added_to_the_pending_batch_from_iterable() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 184: public function test_jobs_can_be_added_to_the_pending_batch_from_iterable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 203: public function test_processed_jobs_can_be_calculated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 203: public function test_processed_jobs_can_be_calculated() - line 205: $queue = m::mock(Factory::class); - line 207: $batch = $this->createTestBatch($queue); - line 212: $this->assertEquals(6, $batch->processedJobs()); - line 213: $this->assertEquals(60, $batch->progress()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 205: $queue = m::mock(Factory::class); - Test @ line 216: public function test_successful_jobs_can_be_recorded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 216: public function test_successful_jobs_can_be_recorded() - line 218: $queue = m::mock(Factory::class); - line 220: $batch = $this->createTestBatch($queue); - line 238: $batch = $batch->add([$job, $secondJob]); - line 241: $batch->recordSuccessfulJob('test-id'); - line 242: $batch->recordSuccessfulJob('test-id'); - line 248: $batch = $batch->fresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 218: $queue = m::mock(Factory::class); - line 234: ->andReturn($connection = m::mock(stdClass::class)); - Test @ line 256: public function test_failed_jobs_can_be_recorded_while_not_allowing_failures() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 256: public function test_failed_jobs_can_be_recorded_while_not_allowing_failures() - line 258: $queue = m::mock(Factory::class); - line 260: $batch = $this->createTestBatch($queue, $allowFailures = false); - line 278: $batch = $batch->add([$job, $secondJob]); - line 281: $batch->recordFailedJob('test-id', new RuntimeException('Something went wrong.')); - line 282: $batch->recordFailedJob('test-id', new RuntimeException('Something else went wrong.')); - line 287: $batch = $batch->fresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 258: $queue = m::mock(Factory::class); - line 274: ->andReturn($connection = m::mock(stdClass::class)); - Test @ line 298: public function test_failed_jobs_can_be_recorded_while_allowing_failures() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 298: public function test_failed_jobs_can_be_recorded_while_allowing_failures() - line 300: $queue = m::mock(Factory::class); - line 302: $batch = $this->createTestBatch($queue, $allowFailures = true); - line 320: $batch = $batch->add([$job, $secondJob]); - line 323: $batch->recordFailedJob('test-id', new RuntimeException('Something went wrong.')); - line 324: $batch->recordFailedJob('test-id', new RuntimeException('Something else went wrong.')); - line 329: $batch = $batch->fresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 300: $queue = m::mock(Factory::class); - line 316: ->andReturn($connection = m::mock(stdClass::class)); - Test @ line 396: public function test_batch_can_be_cancelled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 396: public function test_batch_can_be_cancelled() - line 398: $queue = m::mock(Factory::class); - line 400: $batch = $this->createTestBatch($queue); - line 402: $batch->cancel(); - line 404: $batch = $batch->fresh(); - line 406: $this->assertTrue($batch->cancelled()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 398: $queue = m::mock(Factory::class); - Test @ line 409: public function test_batch_can_be_deleted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 409: public function test_batch_can_be_deleted() - line 411: $queue = m::mock(Factory::class); - line 413: $batch = $this->createTestBatch($queue); - line 415: $batch->delete(); - line 417: $batch = $batch->fresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 411: $queue = m::mock(Factory::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 409: public function test_batch_can_be_deleted() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 422: public function test_batch_state_can_be_inspected() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 422: public function test_batch_state_can_be_inspected() - line 424: $queue = m::mock(Factory::class); - line 426: $batch = $this->createTestBatch($queue); - line 428: $this->assertFalse($batch->finished()); - line 430: $this->assertTrue($batch->finished()); - line 433: $this->assertFalse($batch->hasProgressCallbacks()); - line 435: $this->assertTrue($batch->hasProgressCallbacks()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 424: $queue = m::mock(Factory::class); - Test @ line 462: public function test_chain_can_be_added_to_batch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 462: public function test_chain_can_be_added_to_batch() - line 464: $queue = m::mock(Factory::class); - line 466: $batch = $this->createTestBatch($queue); - line 485: $batch = $batch->add([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 464: $queue = m::mock(Factory::class); - line 476: ->andReturn($connection = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 462: public function test_chain_can_be_added_to_batch() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 498: public function test_chained_closure_after_multiple_batches_is_properly_dispatched() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 498: public function test_chained_closure_after_multiple_batches_is_properly_dispatched() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 521: public function test_options_serialization_on_postgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 521: public function test_options_serialization_on_postgres() - line 524: ->onQueue('test-queue'); - line 530: $builder->shouldReceive('useWritePdo')->andReturnSelf(); - line 531: $builder->shouldReceive('where')->andReturnSelf(); - line 537: $repository->store($pendingBatch); - line 539: $builder->shouldHaveReceived('insert') - line 544: $builder->shouldHaveReceived('first'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 534: new BatchFactory(m::mock(Factory::class)), $connection, 'job_batches' - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 521: public function test_options_serialization_on_postgres() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 548: public function test_options_unserialize_on_postgres($serialize, $options) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 548: public function test_options_unserialize_on_postgres($serialize, $options) - line 550: $factory = m::mock(BatchFactory::class); - line 571: ->withSomeOfArgs($batch, '', '', '', '', '', '', $options); - line 573: $batch->find(1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 550: $factory = m::mock(BatchFactory::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 548: public function test_options_unserialize_on_postgres($serialize, $options) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Bus/BusDispatcherTest.php - Test @ line 23: public function testCommandsThatShouldQueueIsQueued() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 23: public function testCommandsThatShouldQueueIsQueued() - line 27: $mock = m::mock(Queue::class); - line 31: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 27: $mock = m::mock(Queue::class); - line 33: $dispatcher->dispatch(m::mock(ShouldQueue::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testCommandsThatShouldQueueIsQueued() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 36: public function testCommandsThatShouldQueueIsQueuedUsingCustomHandler() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 36: public function testCommandsThatShouldQueueIsQueuedUsingCustomHandler() - line 40: $mock = m::mock(Queue::class); - line 44: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 40: $mock = m::mock(Queue::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 36: public function testCommandsThatShouldQueueIsQueuedUsingCustomHandler() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 49: public function testCommandsThatShouldQueueIsQueuedUsingCustomQueueAndDelay() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 49: public function testCommandsThatShouldQueueIsQueuedUsingCustomQueueAndDelay() - line 53: $mock = m::mock(Queue::class); - line 57: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 53: $mock = m::mock(Queue::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testCommandsThatShouldQueueIsQueuedUsingCustomQueueAndDelay() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 62: public function testDispatchNowShouldNeverQueue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 62: public function testDispatchNowShouldNeverQueue() - line 65: $mock = m::mock(Queue::class); - line 66: $mock->shouldReceive('push')->never(); - line 69: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 65: $mock = m::mock(Queue::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 62: public function testDispatchNowShouldNeverQueue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 74: public function testDispatcherCanDispatchStandAloneHandler() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 74: public function testDispatcherCanDispatchStandAloneHandler() - line 77: $mock = m::mock(Queue::class); - line 82: $dispatcher->map([StandAloneCommand::class => StandAloneHandler::class]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 77: $mock = m::mock(Queue::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 74: public function testDispatcherCanDispatchStandAloneHandler() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 89: public function testOnConnectionOnJobWhenDispatching() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 89: public function testOnConnectionOnJobWhenDispatching() - line 92: $container->singleton('config', function () { - line 110: $job = (new ShouldNotBeDispatched)->onConnection('null'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 104: $mock = m::mock(Queue::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 89: public function testOnConnectionOnJobWhenDispatching() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Bus/BusPendingBatchTest.php - Test @ line 24: public function test_pending_batch_may_be_configured_and_dispatched() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 24: public function test_pending_batch_may_be_configured_and_dispatched() - line 28: $eventDispatcher = m::mock(Dispatcher::class); - line 31: $container->instance(Dispatcher::class, $eventDispatcher); - line 40: $pendingBatch = $pendingBatch->before(function () { - line 50: $this->assertSame('test-connection', $pendingBatch->connection()); - line 51: $this->assertSame('test-queue', $pendingBatch->queue()); - line 52: $this->assertCount(1, $pendingBatch->beforeCallbacks()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 28: $eventDispatcher = m::mock(Dispatcher::class); - line 59: $repository = m::mock(BatchRepository::class); - line 60: $repository->shouldReceive('store')->once()->with($pendingBatch)->andReturn($batch = m::mock(stdClass::class)); - line 61: $batch->shouldReceive('add')->once()->with(m::type(Collection::class))->andReturn($batch = m::mock(Batch::class)); - Test @ line 68: public function test_batch_is_deleted_from_storage_if_exception_thrown_during_batching() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 68: public function test_batch_is_deleted_from_storage_if_exception_thrown_during_batching() - line 70: $this->expectException(RuntimeException::class); - line 85: $batch->shouldReceive('add')->once()->andReturnUsing(function () { - line 91: $container->instance(BatchRepository::class, $repository); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 79: $repository = m::mock(BatchRepository::class); - line 81: $repository->shouldReceive('store')->once()->with($pendingBatch)->andReturn($batch = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 68: public function test_batch_is_deleted_from_storage_if_exception_thrown_during_batching() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 96: public function test_batch_is_dispatched_when_dispatchif_is_true() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 96: public function test_batch_is_dispatched_when_dispatchif_is_true() - line 100: $eventDispatcher = m::mock(Dispatcher::class); - line 102: $container->instance(Dispatcher::class, $eventDispatcher); - line 115: $container->instance(BatchRepository::class, $repository); - line 117: $result = $pendingBatch->dispatchIf(true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 100: $eventDispatcher = m::mock(Dispatcher::class); - line 111: $repository = m::mock(BatchRepository::class); - line 112: $repository->shouldReceive('store')->once()->andReturn($batch = m::mock(stdClass::class)); - line 113: $batch->shouldReceive('add')->once()->andReturn($batch = m::mock(Batch::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 96: public function test_batch_is_dispatched_when_dispatchif_is_true() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 122: public function test_batch_is_not_dispatched_when_dispatchif_is_false() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 122: public function test_batch_is_not_dispatched_when_dispatchif_is_false() - line 126: $eventDispatcher = m::mock(Dispatcher::class); - line 127: $eventDispatcher->shouldNotReceive('dispatch'); - line 128: $container->instance(Dispatcher::class, $eventDispatcher); - line 138: $container->instance(BatchRepository::class, $repository); - line 140: $result = $pendingBatch->dispatchIf(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 126: $eventDispatcher = m::mock(Dispatcher::class); - line 137: $repository = m::mock(BatchRepository::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 122: public function test_batch_is_not_dispatched_when_dispatchif_is_false() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 145: public function test_batch_is_dispatched_when_dispatchunless_is_false() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 145: public function test_batch_is_dispatched_when_dispatchunless_is_false() - line 149: $eventDispatcher = m::mock(Dispatcher::class); - line 151: $container->instance(Dispatcher::class, $eventDispatcher); - line 164: $container->instance(BatchRepository::class, $repository); - line 166: $result = $pendingBatch->dispatchUnless(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 149: $eventDispatcher = m::mock(Dispatcher::class); - line 160: $repository = m::mock(BatchRepository::class); - line 161: $repository->shouldReceive('store')->once()->andReturn($batch = m::mock(stdClass::class)); - line 162: $batch->shouldReceive('add')->once()->andReturn($batch = m::mock(Batch::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 145: public function test_batch_is_dispatched_when_dispatchunless_is_false() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 171: public function test_batch_is_not_dispatched_when_dispatchunless_is_true() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 171: public function test_batch_is_not_dispatched_when_dispatchunless_is_true() - line 175: $eventDispatcher = m::mock(Dispatcher::class); - line 176: $eventDispatcher->shouldNotReceive('dispatch'); - line 177: $container->instance(Dispatcher::class, $eventDispatcher); - line 187: $container->instance(BatchRepository::class, $repository); - line 189: $result = $pendingBatch->dispatchUnless(true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 175: $eventDispatcher = m::mock(Dispatcher::class); - line 186: $repository = m::mock(BatchRepository::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 171: public function test_batch_is_not_dispatched_when_dispatchunless_is_true() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 194: public function test_batch_before_event_is_called() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 194: public function test_batch_before_event_is_called() - line 198: $eventDispatcher = m::mock(Dispatcher::class); - line 201: $container->instance(Dispatcher::class, $eventDispatcher); - line 212: $pendingBatch = $pendingBatch->before(function () use (&$beforeCalled) { - line 220: $container->instance(BatchRepository::class, $repository); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 198: $eventDispatcher = m::mock(Dispatcher::class); - line 216: $repository = m::mock(BatchRepository::class); - line 217: $repository->shouldReceive('store')->once()->with($pendingBatch)->andReturn($batch = m::mock(stdClass::class)); - line 218: $batch->shouldReceive('add')->once()->with(m::type(Collection::class))->andReturn($batch = m::mock(Batch::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 194: public function test_batch_before_event_is_called() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Bus/BusPendingDispatchTest.php - Test @ line 43: public function testOnConnection() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 43: public function testOnConnection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 49: public function testOnQueue() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testOnQueue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 55: public function testAllOnConnection() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 55: public function testAllOnConnection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 61: public function testAllOnQueue() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 61: public function testAllOnQueue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 67: public function testDelay() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 67: public function testDelay() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 73: public function testWithoutDelay() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 73: public function testWithoutDelay() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 79: public function testAfterCommit() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 79: public function testAfterCommit() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 85: public function testBeforeCommit() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 85: public function testBeforeCommit() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 91: public function testChain() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 91: public function testChain() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 98: public function testAfterResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 98: public function testAfterResponse() - line 100: $this->pendingDispatch->afterResponse(); - line 102: (new ReflectionClass($this->pendingDispatch))->getProperty('afterResponse')->getValue($this->pendingDispatch) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 111: public function testDynamicallyProxyMethods() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 111: public function testDynamicallyProxyMethods() - line 113: $newJob = m::mock(stdClass::class); - line 115: $this->pendingDispatch->appendToChain($newJob); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 113: $newJob = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 111: public function testDynamicallyProxyMethods() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Cache/CacheApcStoreTest.php - Test @ line 12: public function testGetReturnsNullWhenNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 12: public function testGetReturnsNullWhenNotFound() - line 14: $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['get'])->getMock(); - line 15: $apc->expects($this->once())->method('get')->with($this->equalTo('foobar'))->willReturn(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 12: public function testGetReturnsNullWhenNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 20: public function testAPCValueIsReturned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 20: public function testAPCValueIsReturned() - line 22: $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['get'])->getMock(); - line 23: $apc->expects($this->once())->method('get')->willReturn('bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 28: public function testAPCFalseValueIsReturned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 28: public function testAPCFalseValueIsReturned() - line 30: $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['get'])->getMock(); - line 31: $apc->expects($this->once())->method('get')->willReturn(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 36: public function testGetMultipleReturnsNullWhenNotFoundAndValueWhenFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 36: public function testGetMultipleReturnsNullWhenNotFoundAndValueWhenFound() - line 38: $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['get'])->getMock(); - line 39: $apc->expects($this->exactly(3))->method('get')->willReturnMap([ - line 49: ], $store->many(['foo', 'bar', 'baz'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 52: public function testSetMethodProperlyCallsAPC() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 52: public function testSetMethodProperlyCallsAPC() - line 54: $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['put'])->getMock(); - line 56: ->method('put')->with($this->equalTo('foo'), $this->equalTo('bar'), $this->equalTo(60)) - line 59: $result = $store->put('foo', 'bar', 60); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 52: public function testSetMethodProperlyCallsAPC() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 63: public function testSetMultipleMethodProperlyCallsAPC() Violations: - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 65: $apc = Mockery::mock(ApcWrapper::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 63: public function testSetMultipleMethodProperlyCallsAPC() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 91: public function testIncrementMethodProperlyCallsAPC() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 91: public function testIncrementMethodProperlyCallsAPC() - line 93: $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['increment'])->getMock(); - line 94: $apc->expects($this->once())->method('increment')->with($this->equalTo('foo'), $this->equalTo(5)); - line 96: $store->increment('foo', 5); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 91: public function testIncrementMethodProperlyCallsAPC() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 99: public function testDecrementMethodProperlyCallsAPC() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 99: public function testDecrementMethodProperlyCallsAPC() - line 101: $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['decrement'])->getMock(); - line 102: $apc->expects($this->once())->method('decrement')->with($this->equalTo('foo'), $this->equalTo(5)); - line 104: $store->decrement('foo', 5); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 99: public function testDecrementMethodProperlyCallsAPC() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 107: public function testStoreItemForeverProperlyCallsAPC() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 107: public function testStoreItemForeverProperlyCallsAPC() - line 109: $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['put'])->getMock(); - line 111: ->method('put')->with($this->equalTo('foo'), $this->equalTo('bar'), $this->equalTo(0)) - line 114: $result = $store->forever('foo', 'bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 107: public function testStoreItemForeverProperlyCallsAPC() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 118: public function testForgetMethodProperlyCallsAPC() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 118: public function testForgetMethodProperlyCallsAPC() - line 120: $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['delete'])->getMock(); - line 121: $apc->expects($this->once())->method('delete')->with($this->equalTo('foo'))->willReturn(true); - line 123: $result = $store->forget('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 118: public function testForgetMethodProperlyCallsAPC() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 127: public function testFlushesCached() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 127: public function testFlushesCached() - line 129: $apc = $this->getMockBuilder(ApcWrapper::class)->onlyMethods(['flush'])->getMock(); - line 130: $apc->expects($this->once())->method('flush')->willReturn(true); - line 132: $result = $store->flush(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 127: public function testFlushesCached() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Cache/CacheArrayStoreTest.php - Test @ line 41: public function testMultipleItemsCanBeSetAndRetrieved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 41: public function testMultipleItemsCanBeSetAndRetrieved() - line 44: $result = $store->put('foo', 'bar', 10); - line 45: $resultMany = $store->putMany([ - line 56: ], $store->many(['foo', 'fizz', 'quz', 'norf'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 59: public function testItemsCanExpire() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 59: public function testItemsCanExpire() - line 65: $store->put('foo', 'bar', 10); - line 66: Carbon::setTestNow(Carbon::now()->addSeconds(10)->addSecond()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 59: public function testItemsCanExpire() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 72: public function testStoreItemForeverProperlyStoresInArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 72: public function testStoreItemForeverProperlyStoresInArray() - line 74: $mock = $this->getMockBuilder(ArrayStore::class)->onlyMethods(['put'])->getMock(); - line 76: ->method('put')->with($this->equalTo('foo'), $this->equalTo('bar'), $this->equalTo(0)) - line 78: $result = $mock->forever('foo', 'bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 72: public function testStoreItemForeverProperlyStoresInArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 82: public function testValuesCanBeIncremented() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 82: public function testValuesCanBeIncremented() - line 85: $store->put('foo', 1, 10); - line 86: $result = $store->increment('foo'); - line 90: $result = $store->increment('foo', 2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 95: public function testValuesGetCastedByIncrementOrDecrement() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 95: public function testValuesGetCastedByIncrementOrDecrement() - line 98: $store->put('foo', '1', 10); - line 99: $result = $store->increment('foo'); - line 103: $store->put('bar', '1', 10); - line 104: $result = $store->decrement('bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 109: public function testIncrementNonNumericValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 109: public function testIncrementNonNumericValues() - line 112: $store->put('foo', 'I am string', 10); - line 113: $result = $store->increment('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 118: public function testNonExistingKeysCanBeIncremented() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 118: public function testNonExistingKeysCanBeIncremented() - line 123: $result = $store->increment('foo'); - line 128: Carbon::setTestNow(Carbon::now()->addYears(10)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 132: public function testExpiredKeysAreIncrementedLikeNonExistingKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 132: public function testExpiredKeysAreIncrementedLikeNonExistingKeys() - line 138: $store->put('foo', 999, 10); - line 139: Carbon::setTestNow(Carbon::now()->addSeconds(10)->addSecond()); - line 140: $result = $store->increment('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 145: public function testValuesCanBeDecremented() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 145: public function testValuesCanBeDecremented() - line 148: $store->put('foo', 1, 10); - line 149: $result = $store->decrement('foo'); - line 153: $result = $store->decrement('foo', 2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 158: public function testItemsCanBeRemoved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 158: public function testItemsCanBeRemoved() - line 161: $store->put('foo', 'bar', 10); - line 162: $this->assertTrue($store->forget('foo')); - line 164: $this->assertFalse($store->forget('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 167: public function testItemsCanBeFlushed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 167: public function testItemsCanBeFlushed() - line 170: $store->put('foo', 'bar', 10); - line 171: $store->put('baz', 'boom', 10); - line 172: $result = $store->flush(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 178: public function testCacheKey() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 178: public function testCacheKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 184: public function testCannotAcquireLockTwice() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 184: public function testCannotAcquireLockTwice() - line 187: $lock = $store->lock('foo', 10); - line 189: $this->assertTrue($lock->acquire()); - line 190: $this->assertFalse($lock->acquire()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 193: public function testCanAcquireLockAgainAfterExpiry() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 193: public function testCanAcquireLockAgainAfterExpiry() - line 198: $lock = $store->lock('foo', 10); - line 199: $lock->acquire(); - line 200: Carbon::setTestNow(Carbon::now()->addSeconds(10)); - line 202: $this->assertTrue($lock->acquire()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 205: public function testLockExpirationLowerBoundary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 205: public function testLockExpirationLowerBoundary() - line 210: $lock = $store->lock('foo', 10); - line 211: $lock->acquire(); - line 212: Carbon::setTestNow(Carbon::now()->addSeconds(10)->subMicrosecond()); - line 214: $this->assertFalse($lock->acquire()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 217: public function testLockWithNoExpirationNeverExpires() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 217: public function testLockWithNoExpirationNeverExpires() - line 220: $lock = $store->lock('foo'); - line 221: $lock->acquire(); - line 222: Carbon::setTestNow(Carbon::now()->addYears(100)); - line 224: $this->assertFalse($lock->acquire()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 227: public function testCanAcquireLockAfterRelease() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 227: public function testCanAcquireLockAfterRelease() - line 230: $lock = $store->lock('foo', 10); - line 231: $lock->acquire(); - line 233: $this->assertTrue($lock->release()); - line 234: $this->assertTrue($lock->acquire()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 237: public function testAnotherOwnerCannotReleaseLock() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 237: public function testAnotherOwnerCannotReleaseLock() - line 240: $owner = $store->lock('foo', 10); - line 241: $wannabeOwner = $store->lock('foo', 10); - line 242: $owner->acquire(); - line 244: $this->assertFalse($wannabeOwner->release()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 247: public function testAnotherOwnerCanForceReleaseALock() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 247: public function testAnotherOwnerCanForceReleaseALock() - line 250: $owner = $store->lock('foo', 10); - line 251: $wannabeOwner = $store->lock('foo', 10); - line 252: $owner->acquire(); - line 253: $wannabeOwner->forceRelease(); - line 255: $this->assertTrue($wannabeOwner->acquire()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 288: public function testReleasingLockAfterAlreadyForceReleasedByAnotherOwnerFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 288: public function testReleasingLockAfterAlreadyForceReleasedByAnotherOwnerFails() - line 291: $owner = $store->lock('foo', 10); - line 292: $wannabeOwner = $store->lock('foo', 10); - line 293: $owner->acquire(); - line 294: $wannabeOwner->forceRelease(); - line 296: $this->assertFalse($wannabeOwner->release()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 299: public function testOwnerStatusCanBeCheckedAfterRestoringLock() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 299: public function testOwnerStatusCanBeCheckedAfterRestoringLock() - line 302: $firstLock = $store->lock('foo', 10); - line 305: $owner = $firstLock->owner(); - line 307: $secondLock = $store->restoreLock('foo', $owner); - line 308: $this->assertTrue($secondLock->isOwnedByCurrentProcess()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 311: public function testOtherOwnerDoesNotOwnLockAfterRestore() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 311: public function testOtherOwnerDoesNotOwnLockAfterRestore() - line 314: $firstLock = $store->lock('foo', 10); - line 318: $secondLock = $store->restoreLock('foo', 'other_owner'); - line 320: $this->assertFalse($secondLock->isOwnedByCurrentProcess()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 323: public function testRestoringNonExistingLockDoesNotOwnAnything() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 323: public function testRestoringNonExistingLockDoesNotOwnAnything() - line 326: $firstLock = $store->restoreLock('foo', 'owner'); - line 328: $this->assertFalse($firstLock->isOwnedByCurrentProcess()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 331: public function testCanGetAll() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 331: public function testCanGetAll() - line 336: $store->put('foo', 'bar', 10); - line 339: 'foo' => ['value' => 'bar', 'expiresAt' => Carbon::now()->addSeconds(10)->getPreciseTimestamp(3) / 1000], Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 343: public function testCanGetAllWhenSerialized() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 343: public function testCanGetAllWhenSerialized() - line 348: $store->put('foo', 'bar', 10); - line 350: 'foo' => ['value' => 'bar', 'expiresAt' => $expiresAt = (Carbon::now()->addSeconds(10)->getPreciseTimestamp(3) / 1000)], - line 354: $store->forget('foo'); - line 355: $store->put('foo', Carbon::now(), 10); - line 362: ], $store->all()); - line 366: $store->all(false)['foo']['value'] Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Cache/CacheDatabaseStoreTest.php - Test @ line 21: public function testNullIsReturnedWhenItemNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 21: public function testNullIsReturnedWhenItemNotFound() - line 23: $store = $this->getStore(); - line 25: $store->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($table); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 24: $table = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 21: public function testNullIsReturnedWhenItemNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 32: public function testNullIsReturnedAndItemDeletedWhenItemIsExpired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 32: public function testNullIsReturnedAndItemDeletedWhenItemIsExpired() - line 34: $store = $this->getMockBuilder(DatabaseStore::class)->onlyMethods(['forgetIfExpired'])->setConstructorArgs($this->getMocks())->getMock(); - line 43: $deleteQuery->shouldReceive('delete')->once()->andReturnNull(); - line 45: $store->getConnection()->shouldReceive('table')->twice()->with('table')->andReturn($getQuery, $deleteQuery); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 36: $getQuery = m::mock(stdClass::class); - line 40: $deleteQuery = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 32: public function testNullIsReturnedAndItemDeletedWhenItemIsExpired() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 50: public function testDecryptedValueIsReturnedWhenItemIsValid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 50: public function testDecryptedValueIsReturnedWhenItemIsValid() - line 52: $store = $this->getStore(); - line 54: $store->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($table); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 53: $table = m::mock(stdClass::class); - Test @ line 61: public function testValueIsReturnedOnPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 61: public function testValueIsReturnedOnPostgres() - line 63: $store = $this->getPostgresStore(); - line 65: $store->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($table); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 64: $table = m::mock(stdClass::class); - Test @ line 72: public function testValueIsReturnedOnSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 72: public function testValueIsReturnedOnSqlite() - line 74: $store = $this->getSqliteStore(); - line 76: $store->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($table); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 75: $table = m::mock(stdClass::class); - Test @ line 83: public function testValueIsUpserted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 83: public function testValueIsUpserted() - line 85: $store = $this->getMockBuilder(DatabaseStore::class)->onlyMethods(['getTime'])->setConstructorArgs($this->getMocks())->getMock(); - line 87: $store->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($table); - line 88: $store->expects($this->once())->method('getTime')->willReturn(1); - line 89: $table->shouldReceive('upsert')->once()->with([['key' => 'prefixfoo', 'value' => serialize('bar'), 'expiration' => 61]], 'key')->andReturnTrue(); - line 91: $result = $store->put('foo', 'bar', 60); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 86: $table = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 83: public function testValueIsUpserted() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 95: public function testValueIsUpsertedOnPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 95: public function testValueIsUpsertedOnPostgres() - line 97: $store = $this->getMockBuilder(DatabaseStore::class)->onlyMethods(['getTime'])->setConstructorArgs($this->getPostgresMocks())->getMock(); - line 99: $store->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($table); - line 100: $store->expects($this->once())->method('getTime')->willReturn(1); - line 103: $result = $store->put('foo', "\0", 60); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 98: $table = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 95: public function testValueIsUpsertedOnPostgres() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 107: public function testValueIsUpsertedOnSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 107: public function testValueIsUpsertedOnSqlite() - line 109: $store = $this->getMockBuilder(DatabaseStore::class)->onlyMethods(['getTime'])->setConstructorArgs($this->getSqliteMocks())->getMock(); - line 111: $store->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($table); - line 112: $store->expects($this->once())->method('getTime')->willReturn(1); - line 115: $result = $store->put('foo', "\0", 60); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 110: $table = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 107: public function testValueIsUpsertedOnSqlite() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 119: public function testForeverCallsStoreItemWithReallyLongTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 119: public function testForeverCallsStoreItemWithReallyLongTime() - line 121: $store = $this->getMockBuilder(DatabaseStore::class)->onlyMethods(['put'])->setConstructorArgs($this->getMocks())->getMock(); - line 122: $store->expects($this->once())->method('put')->with($this->equalTo('foo'), $this->equalTo('bar'), $this->equalTo(315360000))->willReturn(true); - line 123: $result = $store->forever('foo', 'bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 119: public function testForeverCallsStoreItemWithReallyLongTime() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 127: public function testItemsMayBeRemovedFromCache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 127: public function testItemsMayBeRemovedFromCache() - line 129: $store = $this->getStore(); - line 131: $store->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($table); - line 135: $store->forget('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 130: $table = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 127: public function testItemsMayBeRemovedFromCache() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 138: public function testItemsMayBeFlushedFromCache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 138: public function testItemsMayBeFlushedFromCache() - line 140: $store = $this->getStore(); - line 142: $store->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($table); - line 145: $result = $store->flush(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 141: $table = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 138: public function testItemsMayBeFlushedFromCache() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 149: public function testIncrementReturnsCorrectValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 149: public function testIncrementReturnsCorrectValues() - line 151: $store = $this->getStore(); - line 155: $store->getConnection()->shouldReceive('transaction')->once()->with(m::type(Closure::class))->andReturnUsing(function ($closure) { - line 158: $store->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($table); - line 162: $this->assertFalse($store->increment('foo')); - line 165: $store->getConnection()->shouldReceive('transaction')->once()->with(m::type(Closure::class))->andReturnUsing(function ($closure) { - line 168: $store->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($table); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 152: $table = m::mock(stdClass::class); - line 153: $cache = m::mock(stdClass::class); - Test @ line 188: public function testDecrementReturnsCorrectValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 188: public function testDecrementReturnsCorrectValues() - line 190: $store = $this->getStore(); - line 194: $store->getConnection()->shouldReceive('transaction')->once()->with(m::type(Closure::class))->andReturnUsing(function ($closure) { - line 197: $store->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($table); - line 201: $this->assertFalse($store->decrement('foo')); - line 204: $store->getConnection()->shouldReceive('transaction')->once()->with(m::type(Closure::class))->andReturnUsing(function ($closure) { - line 207: $store->getConnection()->shouldReceive('table')->once()->with('table')->andReturn($table); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 191: $table = m::mock(stdClass::class); - line 192: $cache = m::mock(stdClass::class); ❌ tests/Cache/CacheEventsTest.php - Test @ line 32: public function testHasTriggersEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 32: public function testHasTriggersEvents() - line 34: $dispatcher = $this->getDispatcher(); - line 35: $repository = $this->getRepository($dispatcher); - line 39: $this->assertFalse($repository->has('foo')); - line 43: $this->assertTrue($repository->has('baz')); - line 47: $this->assertFalse($repository->tags('taylor')->has('foo')); - line 51: $this->assertTrue($repository->tags('taylor')->has('baz')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 54: public function testGetTriggersEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 54: public function testGetTriggersEvents() - line 56: $dispatcher = $this->getDispatcher(); - line 57: $repository = $this->getRepository($dispatcher); - line 74: $this->assertNull($repository->tags('taylor')->get('foo')); - line 78: $this->assertSame('qux', $repository->tags('taylor')->get('baz')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 81: public function testPullTriggersEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 81: public function testPullTriggersEvents() - line 83: $dispatcher = $this->getDispatcher(); - line 84: $repository = $this->getRepository($dispatcher); - line 90: $this->assertSame('qux', $repository->pull('baz')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 93: public function testPullTriggersEventsUsingTags() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 93: public function testPullTriggersEventsUsingTags() - line 95: $dispatcher = $this->getDispatcher(); - line 96: $repository = $this->getRepository($dispatcher); - line 102: $this->assertSame('qux', $repository->tags('taylor')->pull('baz')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 105: public function testPutTriggersEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 105: public function testPutTriggersEvents() - line 107: $dispatcher = $this->getDispatcher(); - line 108: $repository = $this->getRepository($dispatcher); - line 112: $repository->put('foo', 'bar', 99); - line 117: $repository->putMany(['foo' => 'bar', 'baz' => 'qux'], 99); - line 121: $repository->tags('taylor')->put('foo', 'bar', 99); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 105: public function testPutTriggersEvents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 124: public function testAddTriggersEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 124: public function testAddTriggersEvents() - line 126: $dispatcher = $this->getDispatcher(); - line 127: $repository = $this->getRepository($dispatcher); - line 133: $this->assertTrue($repository->add('foo', 'bar', 99)); - line 139: $this->assertTrue($repository->tags('taylor')->add('foo', 'bar', 99)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 142: public function testForeverTriggersEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 142: public function testForeverTriggersEvents() - line 144: $dispatcher = $this->getDispatcher(); - line 145: $repository = $this->getRepository($dispatcher); - line 149: $repository->forever('foo', 'bar'); - line 153: $repository->tags('taylor')->forever('foo', 'bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 142: public function testForeverTriggersEvents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 156: public function testRememberTriggersEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 156: public function testRememberTriggersEvents() - line 158: $dispatcher = $this->getDispatcher(); - line 159: $repository = $this->getRepository($dispatcher); - line 165: $this->assertSame('bar', $repository->remember('foo', 99, function () { - line 173: $this->assertSame('bar', $repository->tags('taylor')->remember('foo', 99, function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 178: public function testRememberForeverTriggersEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 178: public function testRememberForeverTriggersEvents() - line 180: $dispatcher = $this->getDispatcher(); - line 181: $repository = $this->getRepository($dispatcher); - line 187: $this->assertSame('bar', $repository->rememberForever('foo', function () { - line 195: $this->assertSame('bar', $repository->tags('taylor')->rememberForever('foo', function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 200: public function testForgetTriggersEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 200: public function testForgetTriggersEvents() - line 202: $dispatcher = $this->getDispatcher(); - line 203: $repository = $this->getRepository($dispatcher); - line 207: $this->assertTrue($repository->forget('baz')); - line 211: $this->assertTrue($repository->tags('taylor')->forget('baz')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 214: public function testForgetDoesTriggerFailedEventOnFailure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 214: public function testForgetDoesTriggerFailedEventOnFailure() - line 216: $dispatcher = $this->getDispatcher(); - line 220: $repository->setEventDispatcher($dispatcher); - line 224: $this->assertFalse($repository->forget('baz')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 217: $store = m::mock(Store::class); - Test @ line 227: public function testFlushTriggersEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 227: public function testFlushTriggersEvents() - line 229: $dispatcher = $this->getDispatcher(); - line 230: $repository = $this->getRepository($dispatcher); - line 243: $this->assertTrue($repository->clear()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 246: public function testFlushFailureDoesDispatchEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 246: public function testFlushFailureDoesDispatchEvent() - line 248: $dispatcher = $this->getDispatcher(); - line 255: $repository->setEventDispatcher($dispatcher); - line 268: $this->assertFalse($repository->clear()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 251: $failingStore = m::mock(Store::class); ❌ tests/Cache/CacheFileStoreTest.php - Test @ line 23: public function testNullIsReturnedIfFileDoesntExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 23: public function testNullIsReturnedIfFileDoesntExist() - line 25: $files = $this->mockFilesystem(); - line 26: $files->expects($this->once())->method('get')->will($this->throwException(new FileNotFoundException)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testNullIsReturnedIfFileDoesntExist() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 32: public function testPutCreatesMissingDirectories() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 32: public function testPutCreatesMissingDirectories() - line 34: $files = $this->mockFilesystem(); - line 38: $files->expects($this->once())->method('makeDirectory')->with($this->equalTo($full_dir), $this->equalTo(0777), $this->equalTo(true)); - line 39: $files->expects($this->once())->method('put')->with($this->equalTo($full_dir.'/'.$hash))->willReturn(strlen($contents)); - line 41: $result = $store->put('foo', $contents, 0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 32: public function testPutCreatesMissingDirectories() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 45: public function testPutWillConsiderZeroAsEternalTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 45: public function testPutWillConsiderZeroAsEternalTime() - line 47: $files = $this->mockFilesystem(); - line 55: $files->expects($this->once())->method('put')->with( - line 61: (new FileStore($files, __DIR__))->put('O--L / key', 'gold', 0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 45: public function testPutWillConsiderZeroAsEternalTime() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 64: public function testPutWillConsiderBigValuesAsEternalTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 64: public function testPutWillConsiderBigValuesAsEternalTime() - line 66: $files = $this->mockFilesystem(); - line 73: $files->expects($this->once())->method('put')->with( - line 78: (new FileStore($files, __DIR__))->put('O--L / key', 'gold', (int) $ten9s + 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 64: public function testPutWillConsiderBigValuesAsEternalTime() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 81: public function testExpiredItemsReturnNullAndGetDeleted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 81: public function testExpiredItemsReturnNullAndGetDeleted() - line 83: $files = $this->mockFilesystem(); - line 85: $files->expects($this->once())->method('get')->willReturn($contents); - line 86: $store = $this->getMockBuilder(FileStore::class)->onlyMethods(['forget'])->setConstructorArgs([$files, __DIR__])->getMock(); - line 87: $store->expects($this->once())->method('forget'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 81: public function testExpiredItemsReturnNullAndGetDeleted() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 92: public function testValidItemReturnsContents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 92: public function testValidItemReturnsContents() - line 94: $files = $this->mockFilesystem(); - line 96: $files->expects($this->once())->method('get')->willReturn($contents); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 101: public function testStoreItemProperlyStoresValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 101: public function testStoreItemProperlyStoresValues() - line 103: $files = $this->mockFilesystem(); - line 104: $store = $this->getMockBuilder(FileStore::class)->onlyMethods(['expiration'])->setConstructorArgs([$files, __DIR__])->getMock(); - line 105: $store->expects($this->once())->method('expiration')->with($this->equalTo(10))->willReturn(1111111111); - line 109: $files->expects($this->once())->method('put')->with($this->equalTo(__DIR__.'/'.$cache_dir.'/'.$hash), $this->equalTo($contents))->willReturn(strlen($contents)); - line 110: $result = $store->put('foo', 'Hello World', 10); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 101: public function testStoreItemProperlyStoresValues() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 114: public function testStoreItemProperlySetsPermissions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 114: public function testStoreItemProperlySetsPermissions() - line 116: $files = m::mock(Filesystem::class); - line 117: $files->shouldIgnoreMissing(); - line 118: $store = $this->getMockBuilder(FileStore::class)->onlyMethods(['expiration'])->setConstructorArgs([$files, __DIR__, 0644])->getMock(); - line 121: $files->shouldReceive('put')->withArgs([__DIR__.'/'.$cache_dir.'/'.$hash, m::any(), m::any()])->andReturnUsing(function ($name, $value) { - line 124: $files->shouldReceive('chmod')->withArgs([__DIR__.'/'.$cache_dir.'/'.$hash])->andReturnValues(['0600', '0644'])->times(3); - line 125: $files->shouldReceive('chmod')->withArgs([__DIR__.'/'.$cache_dir.'/'.$hash, 0644])->andReturn([true])->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 116: $files = m::mock(Filesystem::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 114: public function testStoreItemProperlySetsPermissions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 135: public function testStoreItemDirectoryProperlySetsPermissions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 135: public function testStoreItemDirectoryProperlySetsPermissions() - line 137: $files = m::mock(Filesystem::class); - line 138: $files->shouldIgnoreMissing(); - line 139: $store = $this->getMockBuilder(FileStore::class)->onlyMethods(['expiration'])->setConstructorArgs([$files, __DIR__, 0606])->getMock(); - line 144: $files->shouldReceive('put')->withArgs([__DIR__.'/'.$cache_dir.'/'.$hash, m::any(), m::any()])->andReturnUsing(function ($name, $value) { - line 148: $files->shouldReceive('exists')->withArgs([__DIR__.'/'.$cache_dir])->andReturn(false)->once(); - line 149: $files->shouldReceive('makeDirectory')->withArgs([__DIR__.'/'.$cache_dir, 0777, true, true])->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 137: $files = m::mock(Filesystem::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 135: public function testStoreItemDirectoryProperlySetsPermissions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 160: public function testForeversAreStoredWithHighTimestamp() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 160: public function testForeversAreStoredWithHighTimestamp() - line 162: $files = $this->mockFilesystem(); - line 166: $files->expects($this->once())->method('put')->with($this->equalTo(__DIR__.'/'.$cache_dir.'/'.$hash), $this->equalTo($contents))->willReturn(strlen($contents)); - line 168: $result = $store->forever('foo', 'Hello World', 10); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 160: public function testForeversAreStoredWithHighTimestamp() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 172: public function testForeversAreNotRemovedOnIncrement() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 172: public function testForeversAreNotRemovedOnIncrement() - line 174: $files = $this->mockFilesystem(); - line 177: $store->forever('foo', 'Hello World'); - line 178: $store->increment('foo'); - line 179: $files->expects($this->once())->method('get')->willReturn($contents); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 183: public function testIncrementExpiredKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 183: public function testIncrementExpiredKeys() - line 187: $filePath = $this->getCachePath('foo'); - line 188: $files = $this->mockFilesystem(); - line 189: $now = Carbon::now()->getTimestamp(); - line 194: $files->expects($this->once())->method('get')->with($this->equalTo($filePath), $this->equalTo(true))->willReturn($initialValue); - line 195: $files->expects($this->once())->method('put')->with($this->equalTo($filePath), $this->equalTo($valueAfterIncrement)); - line 197: $result = $store->increment('foo', 3); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 183: public function testIncrementExpiredKeys() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 200: public function testIncrementCanAtomicallyJump() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 200: public function testIncrementCanAtomicallyJump() - line 202: $filePath = $this->getCachePath('foo'); - line 203: $files = $this->mockFilesystem(); - line 208: $files->expects($this->once())->method('get')->with($this->equalTo($filePath), $this->equalTo(true))->willReturn($initialValue); - line 209: $files->expects($this->once())->method('put')->with($this->equalTo($filePath), $this->equalTo($valueAfterIncrement)); - line 211: $result = $store->increment('foo', 3); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 200: public function testIncrementCanAtomicallyJump() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 215: public function testDecrementCanAtomicallyJump() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 215: public function testDecrementCanAtomicallyJump() - line 217: $filePath = $this->getCachePath('foo'); - line 219: $files = $this->mockFilesystem(); - line 224: $files->expects($this->once())->method('get')->with($this->equalTo($filePath), $this->equalTo(true))->willReturn($initialValue); - line 225: $files->expects($this->once())->method('put')->with($this->equalTo($filePath), $this->equalTo($valueAfterIncrement)); - line 227: $result = $store->decrement('foo', 2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 215: public function testDecrementCanAtomicallyJump() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 231: public function testIncrementNonNumericValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 231: public function testIncrementNonNumericValues() - line 233: $filePath = $this->getCachePath('foo'); - line 235: $files = $this->mockFilesystem(); - line 239: $files->expects($this->once())->method('get')->with($this->equalTo($filePath), $this->equalTo(true))->willReturn($initialValue); - line 240: $files->expects($this->once())->method('put')->with($this->equalTo($filePath), $this->equalTo($valueAfterIncrement)); - line 241: $result = $store->increment('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 231: public function testIncrementNonNumericValues() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 246: public function testIncrementNonExistentKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 246: public function testIncrementNonExistentKeys() - line 248: $filePath = $this->getCachePath('foo'); - line 250: $files = $this->mockFilesystem(); - line 254: $files->expects($this->once())->method('get')->with($this->equalTo($filePath), $this->equalTo(true))->willThrowException(new Exception); - line 255: $files->expects($this->once())->method('put')->with($this->equalTo($filePath), $this->equalTo($valueAfterIncrement)); - line 256: $result = $store->increment('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 246: public function testIncrementNonExistentKeys() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 261: public function testIncrementDoesNotExtendCacheLife() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 261: public function testIncrementDoesNotExtendCacheLife() - line 265: $files = $this->mockFilesystem(); - line 266: $expiration = Carbon::now()->addSeconds(50)->getTimestamp(); - line 270: $files->expects($this->once())->method('get')->willReturn($initialValue); - line 273: $files->expects($this->once())->method('put')->with($this->equalTo(__DIR__.'/'.$cache_dir.'/'.$hash), $this->equalTo($valueAfterIncrement)); - line 274: $store->increment('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 261: public function testIncrementDoesNotExtendCacheLife() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 277: public function testRemoveDeletesFileDoesntExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 277: public function testRemoveDeletesFileDoesntExist() - line 279: $files = $this->mockFilesystem(); - line 282: $files->expects($this->once())->method('exists')->with($this->equalTo(__DIR__.'/'.$cache_dir.'/'.$hash))->willReturn(false); - line 284: $store->forget('foobull'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 277: public function testRemoveDeletesFileDoesntExist() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 287: public function testRemoveDeletesFile() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 287: public function testRemoveDeletesFile() - line 291: $store->put('foobar', 'Hello Baby', 10); - line 293: $this->assertFileExists($store->path('foobar')); - line 295: $store->forget('foobar'); - line 297: $this->assertFileDoesNotExist($store->path('foobar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 287: public function testRemoveDeletesFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 300: public function testFlushCleansDirectory() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 300: public function testFlushCleansDirectory() - line 302: $files = $this->mockFilesystem(); - line 303: $files->expects($this->once())->method('isDirectory')->with($this->equalTo(__DIR__))->willReturn(true); - line 304: $files->expects($this->once())->method('directories')->with($this->equalTo(__DIR__))->willReturn(['foo']); - line 305: $files->expects($this->once())->method('deleteDirectory')->with($this->equalTo('foo'))->willReturn(true); - line 308: $result = $store->flush(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 300: public function testFlushCleansDirectory() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 312: public function testFlushFailsDirectoryClean() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 312: public function testFlushFailsDirectoryClean() - line 314: $files = $this->mockFilesystem(); - line 315: $files->expects($this->once())->method('isDirectory')->with($this->equalTo(__DIR__))->willReturn(true); - line 316: $files->expects($this->once())->method('directories')->with($this->equalTo(__DIR__))->willReturn(['foo']); - line 317: $files->expects($this->once())->method('deleteDirectory')->with($this->equalTo('foo'))->willReturn(false); - line 320: $result = $store->flush(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 312: public function testFlushFailsDirectoryClean() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 324: public function testFlushIgnoreNonExistingDirectory() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 324: public function testFlushIgnoreNonExistingDirectory() - line 326: $files = $this->mockFilesystem(); - line 327: $files->expects($this->once())->method('isDirectory')->with($this->equalTo(__DIR__.'--wrong'))->willReturn(false); - line 330: $result = $store->flush(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 324: public function testFlushIgnoreNonExistingDirectory() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 334: public function testItHandlesForgettingNonFlexibleKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 334: public function testItHandlesForgettingNonFlexibleKeys() - line 338: $key = Str::random(); - line 339: $path = $store->path($key); - line 342: $store->put($key, 'value', 5); - line 347: $store->forget($key); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 334: public function testItHandlesForgettingNonFlexibleKeys() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Cache/CacheManagerTest.php - Test @ line 23: public function testCustomDriverClosureBoundObjectIsCacheManager() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 23: public function testCustomDriverClosureBoundObjectIsCacheManager() - line 35: $cacheManager->extend(__CLASS__, $driver); - line 36: $this->assertEquals($cacheManager, $cacheManager->store(__CLASS__)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 39: public function testCustomDriverOverridesInternalDrivers() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 39: public function testCustomDriverOverridesInternalDrivers() - line 51: $app = $this->getApp($userConfig); - line 55: $cacheManager->extend('array', fn () => $myArrayDriver); - line 57: $driver = $cacheManager->store('my_store'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 39: public function testCustomDriverOverridesInternalDrivers() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 62: public function testItCanBuildRepositories() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 62: public function testItCanBuildRepositories() - line 64: $app = $this->getApp([]); - line 67: $arrayCache = $cacheManager->build(['driver' => 'array']); - line 68: $nullCache = $cacheManager->build(['driver' => 'null']); - line 70: $this->assertInstanceOf(ArrayStore::class, $arrayCache->getStore()); - line 71: $this->assertInstanceOf(NullStore::class, $nullCache->getStore()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 62: public function testItCanBuildRepositories() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 74: public function testItMakesRepositoryWhenContainerHasNoDispatcher() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 74: public function testItMakesRepositoryWhenContainerHasNoDispatcher() - line 86: $app = $this->getApp($userConfig); - line 87: $this->assertFalse($app->bound(Dispatcher::class)); - line 90: $repo = $cacheManager->repository($theStore = new NullStore); - line 92: $this->assertNull($repo->getEventDispatcher()); - line 93: $this->assertSame($theStore, $repo->getStore()); - line 96: $app->bind(Dispatcher::class, fn () => new Event); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 107: public function testItRefreshesDispatcherOnAllStores() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 107: public function testItRefreshesDispatcherOnAllStores() - line 122: $app = $this->getApp($userConfig); - line 124: $repo1 = $cacheManager->store('store_1'); - line 125: $repo2 = $cacheManager->store('store_2'); - line 127: $this->assertNull($repo1->getEventDispatcher()); - line 128: $this->assertNull($repo2->getEventDispatcher()); - line 131: $app->bind(Dispatcher::class, fn () => $dispatcher); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 140: public function testItSetsDefaultDriverChangesGlobalConfig() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 140: public function testItSetsDefaultDriverChangesGlobalConfig() - line 156: $app = $this->getApp($userConfig); - line 159: $cacheManager->setDefaultDriver('><((((@>'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 164: public function testItPurgesMemoizedStoreObjects() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 164: public function testItPurgesMemoizedStoreObjects() - line 179: $app = $this->getApp($userConfig); - line 182: $repo1 = $cacheManager->store('store_1'); - line 183: $repo2 = $cacheManager->store('store_1'); - line 185: $repo3 = $cacheManager->store('store_2'); - line 186: $repo4 = $cacheManager->store('store_2'); - line 187: $repo5 = $cacheManager->store('store_2'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 164: public function testItPurgesMemoizedStoreObjects() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 205: public function testForgetDriver() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 205: public function testForgetDriver() - line 208: ->shouldAllowMockingProtectedMethods() - line 212: ->withArgs(['array']) - line 221: $cacheManager->store('array'); - line 222: $cacheManager->store('array'); - line 223: $cacheManager->forgetDriver($option); - line 224: $cacheManager->store('array'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 207: $cacheManager = m::mock(CacheManager::class) - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 205: public function testForgetDriver() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 229: public function testForgetDriverForgets() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 229: public function testForgetDriverForgets() - line 238: $cacheManager->extend('forget', function () { - line 242: $cacheManager->store('forget')->forever('foo', 'bar'); - line 243: $this->assertSame('bar', $cacheManager->store('forget')->get('foo')); - line 244: $cacheManager->forgetDriver('forget'); - line 245: $this->assertNull($cacheManager->store('forget')->get('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 248: public function testThrowExceptionWhenUnknownDriverIsUsed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 248: public function testThrowExceptionWhenUnknownDriverIsUsed() - line 250: $this->expectException(InvalidArgumentException::class); - line 251: $this->expectExceptionMessage('Driver [unknown_taxi_driver] is not supported.'); - line 263: $app = $this->getApp($userConfig); - line 267: $cacheManager->store('my_store'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 248: public function testThrowExceptionWhenUnknownDriverIsUsed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 270: public function testThrowExceptionWhenUnknownStoreIsUsed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 270: public function testThrowExceptionWhenUnknownStoreIsUsed() - line 272: $this->expectException(InvalidArgumentException::class); - line 273: $this->expectExceptionMessage('Cache store [alien_store] is not defined.'); - line 285: $app = $this->getApp($userConfig); - line 289: $cacheManager->store('alien_store'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 270: public function testThrowExceptionWhenUnknownStoreIsUsed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 292: public function testMakesRepositoryWithoutDispatcherWhenEventsDisabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 292: public function testMakesRepositoryWithoutDispatcherWhenEventsDisabled() - line 308: $app = $this->getApp($userConfig); - line 309: $app->bind(Dispatcher::class, fn () => new Event); - line 314: $repo = $cacheManager->store('my_store'); - line 315: $this->assertNotNull($repo->getEventDispatcher()); - line 318: $repoWithoutEvents = $cacheManager->store('my_store_without_events'); - line 319: $this->assertNull($repoWithoutEvents->getEventDispatcher()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 292: public function testMakesRepositoryWithoutDispatcherWhenEventsDisabled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Cache/CacheMemcachedConnectorTest.php - Test @ line 21: public function testServersAreAddedCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 21: public function testServersAreAddedCorrectly() - line 23: $memcached = $this->memcachedMockWithAddServer(); - line 25: $connector = $this->connectorMock(); - line 27: ->method('createMemcachedInstance') - line 30: $result = $this->connect($connector); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 35: public function testServersAreAddedCorrectlyWithPersistentConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 35: public function testServersAreAddedCorrectlyWithPersistentConnection() - line 39: $memcached = $this->memcachedMockWithAddServer(); - line 41: $connector = $this->connectorMock(); - line 43: ->method('createMemcachedInstance') - line 47: $result = $this->connect($connector, $persistentConnectionId); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 53: public function testServersAreAddedCorrectlyWithValidOptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 53: public function testServersAreAddedCorrectlyWithValidOptions() - line 60: $memcached = $this->memcachedMockWithAddServer(); - line 63: $connector = $this->connectorMock(); - line 65: ->method('createMemcachedInstance') - line 68: $result = $this->connect($connector, false, $validOptions); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 74: public function testServersAreAddedCorrectlyWithSaslCredentials() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 74: public function testServersAreAddedCorrectlyWithSaslCredentials() - line 78: $memcached = $this->memcachedMockWithAddServer(); - line 84: $connector = $this->connectorMock(); - line 85: $connector->expects($this->once())->method('createMemcachedInstance')->willReturn($memcached); - line 87: $result = $this->connect($connector, false, [], $saslCredentials); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Cache/CacheMemcachedStoreTest.php - Test @ line 22: public function testGetReturnsNullWhenNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 22: public function testGetReturnsNullWhenNotFound() - line 24: $memcache = $this->getMockBuilder(Memcached::class)->onlyMethods(['get', 'getResultCode'])->getMock(); - line 25: $memcache->expects($this->once())->method('get')->with($this->equalTo('foo:bar'))->willReturn(null); - line 26: $memcache->expects($this->once())->method('getResultCode')->willReturn(1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 22: public function testGetReturnsNullWhenNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 31: public function testMemcacheValueIsReturned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 31: public function testMemcacheValueIsReturned() - line 33: $memcache = $this->getMockBuilder(Memcached::class)->onlyMethods(['get', 'getResultCode'])->getMock(); - line 34: $memcache->expects($this->once())->method('get')->willReturn('bar'); - line 35: $memcache->expects($this->once())->method('getResultCode')->willReturn(0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 40: public function testMemcacheGetMultiValuesAreReturnedWithCorrectKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 40: public function testMemcacheGetMultiValuesAreReturnedWithCorrectKeys() - line 42: $memcache = $this->getMockBuilder(Memcached::class)->onlyMethods(['getMulti', 'getResultCode'])->getMock(); - line 43: $memcache->expects($this->once())->method('getMulti')->with( - line 48: $memcache->expects($this->once())->method('getResultCode')->willReturn(0); - line 54: ], $store->many([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 59: public function testSetMethodProperlyCallsMemcache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 59: public function testSetMethodProperlyCallsMemcache() - line 62: $memcache = $this->getMockBuilder(Memcached::class)->onlyMethods(['set'])->getMock(); - line 63: $memcache->expects($this->once())->method('set')->with($this->equalTo('foo'), $this->equalTo('bar'), $this->equalTo($now->timestamp + 60))->willReturn(true); - line 65: $result = $store->put('foo', 'bar', 60); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 59: public function testSetMethodProperlyCallsMemcache() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 70: public function testIncrementMethodProperlyCallsMemcache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 70: public function testIncrementMethodProperlyCallsMemcache() - line 72: $memcached = m::mock(Memcached::class); - line 76: $store->increment('foo', 5); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 72: $memcached = m::mock(Memcached::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 70: public function testIncrementMethodProperlyCallsMemcache() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 79: public function testDecrementMethodProperlyCallsMemcache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 79: public function testDecrementMethodProperlyCallsMemcache() - line 81: $memcached = m::mock(Memcached::class); - line 85: $store->decrement('foo', 5); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 81: $memcached = m::mock(Memcached::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 79: public function testDecrementMethodProperlyCallsMemcache() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 88: public function testStoreItemForeverProperlyCallsMemcached() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 88: public function testStoreItemForeverProperlyCallsMemcached() - line 90: $memcache = $this->getMockBuilder(Memcached::class)->onlyMethods(['set'])->getMock(); - line 91: $memcache->expects($this->once())->method('set')->with($this->equalTo('foo'), $this->equalTo('bar'), $this->equalTo(0))->willReturn(true); - line 93: $result = $store->forever('foo', 'bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 88: public function testStoreItemForeverProperlyCallsMemcached() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 97: public function testForgetMethodProperlyCallsMemcache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 97: public function testForgetMethodProperlyCallsMemcache() - line 99: $memcache = $this->getMockBuilder(Memcached::class)->onlyMethods(['delete'])->getMock(); - line 100: $memcache->expects($this->once())->method('delete')->with($this->equalTo('foo')); - line 102: $store->forget('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 97: public function testForgetMethodProperlyCallsMemcache() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 105: public function testFlushesCached() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 105: public function testFlushesCached() - line 107: $memcache = $this->getMockBuilder(Memcached::class)->onlyMethods(['flush'])->getMock(); - line 108: $memcache->expects($this->once())->method('flush')->willReturn(true); - line 110: $result = $store->flush(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 105: public function testFlushesCached() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 114: public function testGetAndSetPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 114: public function testGetAndSetPrefix() - line 117: $this->assertSame('bar', $store->getPrefix()); - line 118: $store->setPrefix('foo'); - line 119: $this->assertSame('foo', $store->getPrefix()); - line 120: $store->setPrefix(null); - line 121: $this->assertEmpty($store->getPrefix()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Cache/CacheNullStoreTest.php - Test @ line 10: public function testItemsCanNotBeCached() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 10: public function testItemsCanNotBeCached() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 30: public function testIncrementAndDecrementReturnFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 30: public function testIncrementAndDecrementReturnFalse() - line 33: $this->assertFalse($store->increment('foo')); - line 34: $this->assertFalse($store->decrement('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Cache/CacheRateLimiterTest.php - Test @ line 18: public function testTooManyAttemptsReturnTrueIfAlreadyLockedOut() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 18: public function testTooManyAttemptsReturnTrueIfAlreadyLockedOut() - line 20: $cache = m::mock(Cache::class); - line 23: $cache->shouldReceive('add')->never(); - line 27: $this->assertTrue($rateLimiter->tooManyAttempts('key', 1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 20: $cache = m::mock(Cache::class); - Test @ line 30: public function testHitProperlyIncrementsAttemptCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 30: public function testHitProperlyIncrementsAttemptCount() - line 32: $cache = m::mock(Cache::class); - line 39: $rateLimiter->hit('key', 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 32: $cache = m::mock(Cache::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 30: public function testHitProperlyIncrementsAttemptCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 42: public function testIncrementProperlyIncrementsAttemptCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 42: public function testIncrementProperlyIncrementsAttemptCount() - line 44: $cache = m::mock(Cache::class); - line 51: $rateLimiter->increment('key', 1, 5); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 44: $cache = m::mock(Cache::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 42: public function testIncrementProperlyIncrementsAttemptCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 54: public function testDecrementProperlyDecrementsAttemptCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 54: public function testDecrementProperlyDecrementsAttemptCount() - line 56: $cache = m::mock(Cache::class); - line 63: $rateLimiter->decrement('key', 1, 5); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 56: $cache = m::mock(Cache::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 54: public function testDecrementProperlyDecrementsAttemptCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 66: public function testHitHasNoMemoryLeak() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 66: public function testHitHasNoMemoryLeak() - line 68: $cache = m::mock(Cache::class); - line 76: $rateLimiter->hit('key', 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 68: $cache = m::mock(Cache::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 66: public function testHitHasNoMemoryLeak() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 91: public function testRetriesLeftReturnsCorrectCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 91: public function testRetriesLeftReturnsCorrectCount() - line 93: $cache = m::mock(Cache::class); - line 98: $this->assertEquals(2, $rateLimiter->retriesLeft('key', 5)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 93: $cache = m::mock(Cache::class); - Test @ line 101: public function testClearClearsTheCacheKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 101: public function testClearClearsTheCacheKeys() - line 103: $cache = m::mock(Cache::class); - line 109: $rateLimiter->clear('key'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 103: $cache = m::mock(Cache::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 101: public function testClearClearsTheCacheKeys() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 112: public function testAvailableInReturnsPositiveValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 112: public function testAvailableInReturnsPositiveValues() - line 114: $cache = m::mock(Cache::class); - line 115: $cache->shouldReceive('get')->andReturn(now()->subSeconds(60)->getTimestamp(), null); - line 119: $this->assertTrue($rateLimiter->availableIn('key:timer') >= 0); - line 120: $this->assertTrue($rateLimiter->availableIn('key:timer') >= 0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 114: $cache = m::mock(Cache::class); - Test @ line 123: public function testAttemptsCallbackReturnsTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 123: public function testAttemptsCallbackReturnsTrue() - line 125: $cache = m::mock(Cache::class); - line 128: $cache->shouldReceive('add')->once()->with('key', 0, 1)->andReturns(1); - line 136: $rateLimiter->attempt('key', 1, function () use (&$executed) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 125: $cache = m::mock(Cache::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 123: public function testAttemptsCallbackReturnsTrue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 142: public function testAttemptsCallbackReturnsCallbackReturn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 142: public function testAttemptsCallbackReturnsCallbackReturn() - line 144: $cache = m::mock(Cache::class); - line 147: $cache->shouldReceive('add')->times(6)->with('key', 0, 1)->andReturns(1); - line 153: $this->assertSame('foo', $rateLimiter->attempt('key', 1, function () { - line 157: $this->assertSame(false, $rateLimiter->attempt('key', 1, function () { - line 161: $this->assertSame([], $rateLimiter->attempt('key', 1, function () { - line 165: $this->assertSame(0, $rateLimiter->attempt('key', 1, function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 144: $cache = m::mock(Cache::class); - Test @ line 178: public function testAttemptsCallbackReturnsFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 178: public function testAttemptsCallbackReturnsFalse() - line 180: $cache = m::mock(Cache::class); - line 189: $this->assertFalse($rateLimiter->attempt('key', 1, function () use (&$executed) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 180: $cache = m::mock(Cache::class); - Test @ line 195: public function testKeysAreSanitizedFromUnicodeCharacters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 195: public function testKeysAreSanitizedFromUnicodeCharacters() - line 197: $cache = m::mock(Cache::class); - line 200: $cache->shouldReceive('add')->never(); - line 204: $this->assertTrue($rateLimiter->tooManyAttempts('jôhn', 1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 197: $cache = m::mock(Cache::class); - Test @ line 207: public function testKeyIsSanitizedOnlyOnce() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 207: public function testKeyIsSanitizedOnlyOnce() - line 209: $cache = m::mock(Cache::class); - line 213: $cleanedKey = $rateLimiter->cleanRateLimiterKey($key); - line 217: $cache->shouldReceive('add')->never(); - line 220: $this->assertTrue($rateLimiter->tooManyAttempts($key, 1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 209: $cache = m::mock(Cache::class); ❌ tests/Cache/CacheRedisStoreTest.php - Test @ line 17: public function testGetReturnsNullWhenNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 17: public function testGetReturnsNullWhenNotFound() - line 19: $redis = $this->getRedis(); - line 20: $redis->getRedis()->shouldReceive('connection')->once()->with('default')->andReturn($redis->getRedis()); - line 21: $redis->getRedis()->shouldReceive('get')->once()->with('prefix:foo')->andReturn(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 17: public function testGetReturnsNullWhenNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 25: public function testRedisValueIsReturned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 25: public function testRedisValueIsReturned() - line 27: $redis = $this->getRedis(); - line 28: $redis->getRedis()->shouldReceive('connection')->once()->with('default')->andReturn($redis->getRedis()); - line 29: $redis->getRedis()->shouldReceive('get')->once()->with('prefix:foo')->andReturn(serialize('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 33: public function testRedisMultipleValuesAreReturned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 33: public function testRedisMultipleValuesAreReturned() - line 35: $redis = $this->getRedis(); - line 36: $redis->getRedis()->shouldReceive('connection')->once()->with('default')->andReturn($redis->getRedis()); - line 37: $redis->getRedis()->shouldReceive('mget')->once()->with(['prefix:foo', 'prefix:fizz', 'prefix:norf', 'prefix:null']) - line 45: $results = $redis->many(['foo', 'fizz', 'norf', 'null']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 33: public function testRedisMultipleValuesAreReturned() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 53: public function testRedisValueIsReturnedForNumerics() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 53: public function testRedisValueIsReturnedForNumerics() - line 55: $redis = $this->getRedis(); - line 56: $redis->getRedis()->shouldReceive('connection')->once()->with('default')->andReturn($redis->getRedis()); - line 57: $redis->getRedis()->shouldReceive('get')->once()->with('prefix:foo')->andReturn(1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 61: public function testSetMethodProperlyCallsRedis() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 61: public function testSetMethodProperlyCallsRedis() - line 63: $redis = $this->getRedis(); - line 64: $redis->getRedis()->shouldReceive('connection')->once()->with('default')->andReturn($redis->getRedis()); - line 65: $redis->getRedis()->shouldReceive('setex')->once()->with('prefix:foo', 60, serialize('foo'))->andReturn('OK'); - line 66: $result = $redis->put('foo', 'foo', 60); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 61: public function testSetMethodProperlyCallsRedis() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 70: public function testSetMultipleMethodProperlyCallsRedis() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 70: public function testSetMultipleMethodProperlyCallsRedis() - line 72: $redis = $this->getRedis(); - line 74: $connection = $redis->getRedis(); - line 75: $connection->shouldReceive('connection')->with('default')->andReturn($redis->getRedis()); - line 77: $redis->getRedis()->shouldReceive('setex')->once()->with('prefix:foo', 60, serialize('bar'))->andReturn('OK'); - line 78: $redis->getRedis()->shouldReceive('setex')->once()->with('prefix:baz', 60, serialize('qux'))->andReturn('OK'); - line 79: $redis->getRedis()->shouldReceive('setex')->once()->with('prefix:bar', 60, serialize('norf'))->andReturn('OK'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 70: public function testSetMultipleMethodProperlyCallsRedis() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 90: public function testSetMethodProperlyCallsRedisForNumerics() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 90: public function testSetMethodProperlyCallsRedisForNumerics() - line 92: $redis = $this->getRedis(); - line 93: $redis->getRedis()->shouldReceive('connection')->once()->with('default')->andReturn($redis->getRedis()); - line 94: $redis->getRedis()->shouldReceive('setex')->once()->with('prefix:foo', 60, 1); - line 95: $result = $redis->put('foo', 1, 60); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 90: public function testSetMethodProperlyCallsRedisForNumerics() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 99: public function testIncrementMethodProperlyCallsRedis() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 99: public function testIncrementMethodProperlyCallsRedis() - line 101: $redis = $this->getRedis(); - line 102: $redis->getRedis()->shouldReceive('connection')->once()->with('default')->andReturn($redis->getRedis()); - line 103: $redis->getRedis()->shouldReceive('incrby')->once()->with('prefix:foo', 5); - line 104: $redis->increment('foo', 5); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 99: public function testIncrementMethodProperlyCallsRedis() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 107: public function testDecrementMethodProperlyCallsRedis() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 107: public function testDecrementMethodProperlyCallsRedis() - line 109: $redis = $this->getRedis(); - line 110: $redis->getRedis()->shouldReceive('connection')->once()->with('default')->andReturn($redis->getRedis()); - line 111: $redis->getRedis()->shouldReceive('decrby')->once()->with('prefix:foo', 5); - line 112: $redis->decrement('foo', 5); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 107: public function testDecrementMethodProperlyCallsRedis() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 115: public function testStoreItemForeverProperlyCallsRedis() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 115: public function testStoreItemForeverProperlyCallsRedis() - line 117: $redis = $this->getRedis(); - line 118: $redis->getRedis()->shouldReceive('connection')->once()->with('default')->andReturn($redis->getRedis()); - line 119: $redis->getRedis()->shouldReceive('set')->once()->with('prefix:foo', serialize('foo'))->andReturn('OK'); - line 120: $result = $redis->forever('foo', 'foo', 60); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 115: public function testStoreItemForeverProperlyCallsRedis() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 124: public function testForgetMethodProperlyCallsRedis() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 124: public function testForgetMethodProperlyCallsRedis() - line 126: $redis = $this->getRedis(); - line 127: $redis->getRedis()->shouldReceive('connection')->once()->with('default')->andReturn($redis->getRedis()); - line 128: $redis->getRedis()->shouldReceive('del')->once()->with('prefix:foo'); - line 129: $redis->forget('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 124: public function testForgetMethodProperlyCallsRedis() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 132: public function testFlushesCached() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 132: public function testFlushesCached() - line 134: $redis = $this->getRedis(); - line 135: $redis->getRedis()->shouldReceive('connection')->once()->with('default')->andReturn($redis->getRedis()); - line 136: $redis->getRedis()->shouldReceive('flushdb')->once()->andReturn('ok'); - line 137: $result = $redis->flush(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 132: public function testFlushesCached() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 141: public function testGetAndSetPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 141: public function testGetAndSetPrefix() - line 143: $redis = $this->getRedis(); - line 144: $this->assertSame('prefix:', $redis->getPrefix()); - line 145: $redis->setPrefix('foo'); - line 146: $this->assertSame('foo', $redis->getPrefix()); - line 147: $redis->setPrefix(null); - line 148: $this->assertEmpty($redis->getPrefix()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Cache/CacheRepositoryTest.php - Test @ line 41: public function testGetReturnsValueFromCache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 41: public function testGetReturnsValueFromCache() - line 43: $repo = $this->getRepository(); - line 44: $repo->getStore()->shouldReceive('get')->once()->with('foo')->andReturn('bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 48: public function testGetReturnsMultipleValuesFromCacheWhenGivenAnArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 48: public function testGetReturnsMultipleValuesFromCacheWhenGivenAnArray() - line 50: $repo = $this->getRepository(); - line 51: $repo->getStore()->shouldReceive('many')->once()->with(['foo', 'bar'])->andReturn(['foo' => 'bar', 'bar' => 'baz']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 55: public function testGetReturnsMultipleValuesFromCacheWhenGivenAnArrayWithDefaultValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 55: public function testGetReturnsMultipleValuesFromCacheWhenGivenAnArrayWithDefaultValues() - line 57: $repo = $this->getRepository(); - line 58: $repo->getStore()->shouldReceive('many')->once()->with(['foo', 'bar'])->andReturn(['foo' => null, 'bar' => 'baz']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 62: public function testGetReturnsMultipleValuesFromCacheWhenGivenAnArrayOfOneTwoThree() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 62: public function testGetReturnsMultipleValuesFromCacheWhenGivenAnArrayOfOneTwoThree() - line 64: $repo = $this->getRepository(); - line 65: $repo->getStore()->shouldReceive('many')->once()->with([1, 2, 3])->andReturn([1 => null, 2 => null, 3 => null]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 69: public function testDefaultValueIsReturned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 69: public function testDefaultValueIsReturned() - line 71: $repo = $this->getRepository(); - line 72: $repo->getStore()->shouldReceive('get')->times(2)->andReturn(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 79: public function testSettingDefaultCacheTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 79: public function testSettingDefaultCacheTime() - line 81: $repo = $this->getRepository(); - line 82: $repo->setDefaultCacheTime(10); - line 83: $this->assertEquals(10, $repo->getDefaultCacheTime()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 86: public function testHasMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 86: public function testHasMethod() - line 88: $repo = $this->getRepository(); - line 89: $repo->getStore()->shouldReceive('get')->once()->with('foo')->andReturn(null); - line 90: $repo->getStore()->shouldReceive('get')->once()->with('bar')->andReturn('bar'); - line 91: $repo->getStore()->shouldReceive('get')->once()->with('baz')->andReturn(false); - line 93: $this->assertTrue($repo->has('bar')); - line 94: $this->assertFalse($repo->has('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 98: public function testMissingMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 98: public function testMissingMethod() - line 100: $repo = $this->getRepository(); - line 101: $repo->getStore()->shouldReceive('get')->once()->with('foo')->andReturn(null); - line 102: $repo->getStore()->shouldReceive('get')->once()->with('bar')->andReturn('bar'); - line 104: $this->assertTrue($repo->missing('foo')); - line 105: $this->assertFalse($repo->missing('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 108: public function testRememberMethodCallsPutAndReturnsDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 108: public function testRememberMethodCallsPutAndReturnsDefault() - line 110: $repo = $this->getRepository(); - line 111: $repo->getStore()->shouldReceive('get')->once()->andReturn(null); - line 112: $repo->getStore()->shouldReceive('put')->once()->with('foo', 'bar', 10); - line 113: $result = $repo->remember('foo', 10, function () { - line 118: $repo = $this->getRepository(); - line 119: $repo->getStore()->shouldReceive('get')->times(2)->andReturn(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 108: public function testRememberMethodCallsPutAndReturnsDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 143: public function testRememberForeverMethodCallsForeverAndReturnsDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 143: public function testRememberForeverMethodCallsForeverAndReturnsDefault() - line 145: $repo = $this->getRepository(); - line 146: $repo->getStore()->shouldReceive('get')->once()->andReturn(null); - line 147: $repo->getStore()->shouldReceive('forever')->once()->with('foo', 'bar'); - line 148: $result = $repo->rememberForever('foo', function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 143: public function testRememberForeverMethodCallsForeverAndReturnsDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 154: public function testPuttingMultipleItemsInCache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 154: public function testPuttingMultipleItemsInCache() - line 156: $repo = $this->getRepository(); - line 157: $repo->getStore()->shouldReceive('putMany')->once()->with(['foo' => 'bar', 'bar' => 'baz'], 1); - line 158: $repo->put(['foo' => 'bar', 'bar' => 'baz'], 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 154: public function testPuttingMultipleItemsInCache() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 161: public function testSettingMultipleItemsInCacheArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 161: public function testSettingMultipleItemsInCacheArray() - line 163: $repo = $this->getRepository(); - line 164: $repo->getStore()->shouldReceive('putMany')->once()->with(['foo' => 'bar', 'bar' => 'baz'], 1)->andReturn(true); - line 165: $result = $repo->setMultiple(['foo' => 'bar', 'bar' => 'baz'], 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 161: public function testSettingMultipleItemsInCacheArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 169: public function testSettingMultipleItemsInCacheIterator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 169: public function testSettingMultipleItemsInCacheIterator() - line 171: $repo = $this->getRepository(); - line 172: $repo->getStore()->shouldReceive('putMany')->once()->with(['foo' => 'bar', 'bar' => 'baz'], 1)->andReturn(true); - line 173: $result = $repo->setMultiple(new ArrayIterator(['foo' => 'bar', 'bar' => 'baz']), 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 169: public function testSettingMultipleItemsInCacheIterator() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 177: public function testPutWithNullTTLRemembersItemForever() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 177: public function testPutWithNullTTLRemembersItemForever() - line 179: $repo = $this->getRepository(); - line 180: $repo->getStore()->shouldReceive('forever')->once()->with('foo', 'bar')->andReturn(true); - line 181: $this->assertTrue($repo->put('foo', 'bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 184: public function testPutWithDatetimeInPastOrZeroSecondsRemovesOldItem() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 184: public function testPutWithDatetimeInPastOrZeroSecondsRemovesOldItem() - line 186: $repo = $this->getRepository(); - line 187: $repo->getStore()->shouldReceive('put')->never(); - line 188: $repo->getStore()->shouldReceive('forget')->twice()->andReturn(true); - line 189: $result = $repo->put('foo', 'bar', Carbon::now()->subMinutes(10)); - line 191: $result = $repo->put('foo', 'bar', Carbon::now()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 184: public function testPutWithDatetimeInPastOrZeroSecondsRemovesOldItem() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 195: public function testPutManyWithNullTTLRemembersItemsForever() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 195: public function testPutManyWithNullTTLRemembersItemsForever() - line 197: $repo = $this->getRepository(); - line 198: $repo->getStore()->shouldReceive('forever')->with('foo', 'bar')->andReturn(true); - line 199: $repo->getStore()->shouldReceive('forever')->with('bar', 'baz')->andReturn(true); - line 200: $this->assertTrue($repo->putMany(['foo' => 'bar', 'bar' => 'baz'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 203: public function testAddWithStoreFailureReturnsFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 203: public function testAddWithStoreFailureReturnsFalse() - line 205: $repo = $this->getRepository(); - line 206: $repo->getStore()->shouldReceive('add')->never(); - line 207: $repo->getStore()->shouldReceive('get')->andReturn(null); - line 208: $repo->getStore()->shouldReceive('put')->andReturn(false); - line 209: $this->assertFalse($repo->add('foo', 'bar', 60)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 212: public function testCacheAddCallsRedisStoreAdd() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 212: public function testCacheAddCallsRedisStoreAdd() - line 214: $store = m::mock(RedisStore::class); - line 217: $this->assertTrue($repository->add('k', 'v', 60)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 214: $store = m::mock(RedisStore::class); - Test @ line 220: public function testAddMethodCanAcceptDateIntervals() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 220: public function testAddMethodCanAcceptDateIntervals() - line 222: $storeWithAdd = m::mock(RedisStore::class); - line 225: $this->assertTrue($repository->add('k', 'v', DateInterval::createFromDateString('61 seconds'))); - line 232: $this->assertTrue($repository->add('k', 'v', DateInterval::createFromDateString('60 seconds'))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 222: $storeWithAdd = m::mock(RedisStore::class); - line 227: $storeWithoutAdd = m::mock(ArrayStore::class); - Test @ line 235: public function testAddMethodCanAcceptDateTimeInterface() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 235: public function testAddMethodCanAcceptDateTimeInterface() - line 237: $withAddStore = m::mock(RedisStore::class); - line 240: $this->assertTrue($repository->add('k', 'v', Carbon::now()->addSeconds(61))); - line 247: $this->assertTrue($repository->add('k', 'v', Carbon::now()->addSeconds(62))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 237: $withAddStore = m::mock(RedisStore::class); - line 242: $noAddStore = m::mock(ArrayStore::class); - Test @ line 250: public function testAddWithNullTTLRemembersItemForever() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 250: public function testAddWithNullTTLRemembersItemForever() - line 252: $repo = $this->getRepository(); - line 253: $repo->getStore()->shouldReceive('get')->once()->with('foo')->andReturn(null); - line 254: $repo->getStore()->shouldReceive('forever')->once()->with('foo', 'bar')->andReturn(true); - line 255: $this->assertTrue($repo->add('foo', 'bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 258: public function testAddWithDatetimeInPastOrZeroSecondsReturnsImmediately() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 258: public function testAddWithDatetimeInPastOrZeroSecondsReturnsImmediately() - line 260: $repo = $this->getRepository(); - line 261: $repo->getStore()->shouldReceive('add', 'get', 'put')->never(); - line 262: $result = $repo->add('foo', 'bar', Carbon::now()->subMinutes(10)); - line 264: $result = $repo->add('foo', 'bar', Carbon::now()); - line 266: $result = $repo->add('foo', 'bar', -1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 258: public function testAddWithDatetimeInPastOrZeroSecondsReturnsImmediately() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 285: public function testGetSeconds($duration) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 285: public function testGetSeconds($duration) - line 287: $repo = $this->getRepository(); - line 288: $repo->getStore()->shouldReceive('put')->once()->with($key = 'foo', $value = 'bar', 300); - line 289: $repo->put($key, $value, $duration); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 285: public function testGetSeconds($duration) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 301: public function testForgettingCacheKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 301: public function testForgettingCacheKey() - line 303: $repo = $this->getRepository(); - line 304: $repo->getStore()->shouldReceive('forget')->once()->with('a-key')->andReturn(true); - line 305: $repo->forget('a-key'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 301: public function testForgettingCacheKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 308: public function testRemovingCacheKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 308: public function testRemovingCacheKey() - line 311: $repo = $this->getRepository(); - line 312: $repo->getStore()->shouldReceive('forget')->once()->with('a-key')->andReturn(true); - line 313: $repo->delete('a-key'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 308: public function testRemovingCacheKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 316: public function testSettingCache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 316: public function testSettingCache() - line 318: $repo = $this->getRepository(); - line 319: $repo->getStore()->shouldReceive('put')->with($key = 'foo', $value = 'bar', 1)->andReturn(true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 316: public function testSettingCache() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 324: public function testClearingWholeCache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 324: public function testClearingWholeCache() - line 326: $repo = $this->getRepository(); - line 327: $repo->getStore()->shouldReceive('flush')->andReturn(true); - line 328: $repo->clear(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 324: public function testClearingWholeCache() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 331: public function testGettingMultipleValuesFromCache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 331: public function testGettingMultipleValuesFromCache() - line 336: $repo = $this->getRepository(); - line 337: $repo->getStore()->shouldReceive('many')->once()->with(['key1', 'key2', 'key3'])->andReturn(['key1' => 1, 'key2' => null, 'key3' => null]); - line 338: $this->assertEquals(['key1' => 1, 'key2' => 5, 'key3' => 5], $repo->getMultiple($keys, $default)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 341: public function testRemovingMultipleKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 341: public function testRemovingMultipleKeys() - line 343: $repo = $this->getRepository(); - line 344: $repo->getStore()->shouldReceive('forget')->once()->with('a-key')->andReturn(true); - line 345: $repo->getStore()->shouldReceive('forget')->once()->with('a-second-key')->andReturn(true); - line 347: $this->assertTrue($repo->deleteMultiple(['a-key', 'a-second-key'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 350: public function testRemovingMultipleKeysFailsIfOneFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 350: public function testRemovingMultipleKeysFailsIfOneFails() - line 352: $repo = $this->getRepository(); - line 353: $repo->getStore()->shouldReceive('forget')->once()->with('a-key')->andReturn(true); - line 354: $repo->getStore()->shouldReceive('forget')->once()->with('a-second-key')->andReturn(false); - line 356: $this->assertFalse($repo->deleteMultiple(['a-key', 'a-second-key'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 359: public function testAllTagsArePassedToTaggableStore() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 359: public function testAllTagsArePassedToTaggableStore() - line 361: $store = m::mock(ArrayStore::class); - line 367: $repo->tags('foo', 'bar', 'baz'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 361: $store = m::mock(ArrayStore::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 359: public function testAllTagsArePassedToTaggableStore() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 370: public function testItThrowsExceptionWhenStoreDoesNotSupportTags() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 370: public function testItThrowsExceptionWhenStoreDoesNotSupportTags() - line 372: $this->expectException(BadMethodCallException::class); - line 376: (new Repository($store))->tags('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 370: public function testItThrowsExceptionWhenStoreDoesNotSupportTags() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 379: public function testTagMethodReturnsTaggedCache() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 379: public function testTagMethodReturnsTaggedCache() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 386: public function testPossibleInputTypesToTags() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 386: public function testPossibleInputTypesToTags() - line 390: $store = $repo->tags('foo'); - line 391: $this->assertEquals(['foo'], $store->getTags()->getNames()); - line 393: $store = $repo->tags(['foo!', 'Kangaroo']); - line 394: $this->assertEquals(['foo!', 'Kangaroo'], $store->getTags()->getNames()); - line 396: $store = $repo->tags('r1', 'r2', 'r3'); - line 397: $this->assertEquals(['r1', 'r2', 'r3'], $store->getTags()->getNames()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 400: public function testEventDispatcherIsPassedToStoreFromRepository() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 400: public function testEventDispatcherIsPassedToStoreFromRepository() - line 403: $repo->setEventDispatcher(new Dispatcher()); - line 405: $store = $repo->tags('foo'); - line 407: $this->assertSame($store->getEventDispatcher(), $repo->getEventDispatcher()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 410: public function testDefaultCacheLifeTimeIsSetOnTaggableStore() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 410: public function testDefaultCacheLifeTimeIsSetOnTaggableStore() - line 413: $repo->setDefaultCacheTime(random_int(1, 100)); - line 415: $store = $repo->tags('foo'); - line 417: $this->assertSame($store->getDefaultCacheTime(), $repo->getDefaultCacheTime()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 420: public function testTaggableRepositoriesSupportTags() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 420: public function testTaggableRepositoriesSupportTags() - line 422: $taggable = m::mock(TaggableStore::class); - line 425: $this->assertTrue($taggableRepo->supportsTags()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 422: $taggable = m::mock(TaggableStore::class); - Test @ line 428: public function testNonTaggableRepositoryDoesNotSupportTags() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 428: public function testNonTaggableRepositoryDoesNotSupportTags() - line 430: $nonTaggable = m::mock(FileStore::class); - line 433: $this->assertFalse($nonTaggableRepo->supportsTags()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 430: $nonTaggable = m::mock(FileStore::class); ❌ tests/Cache/CacheSessionStoreTest.php - Test @ line 21: public function testItemsCanBeSetAndRetrieved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 21: public function testItemsCanBeSetAndRetrieved() - line 23: $store = new SessionStore(self::getSession()); - line 24: $result = $store->put('foo', 'bar', 10); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 43: public function testMultipleItemsCanBeSetAndRetrieved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 43: public function testMultipleItemsCanBeSetAndRetrieved() - line 45: $store = new SessionStore(self::getSession()); - line 46: $result = $store->put('foo', 'bar', 10); - line 47: $resultMany = $store->putMany([ - line 58: ], $store->many(['foo', 'fizz', 'quz', 'norf'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 61: public function testItemsCanExpire() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 61: public function testItemsCanExpire() - line 65: $store = new SessionStore(self::getSession()); - line 67: $store->put('foo', 'bar', 10); - line 68: Carbon::setTestNow(Carbon::now()->addSeconds(10)->addSecond()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 61: public function testItemsCanExpire() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 74: public function testStoreItemForeverProperlyStoresInArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 74: public function testStoreItemForeverProperlyStoresInArray() - line 76: $mock = $this->getMockBuilder(SessionStore::class) - line 81: ->method('put')->with($this->equalTo('foo'), $this->equalTo('bar'), $this->equalTo(0)) - line 83: $result = $mock->forever('foo', 'bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 74: public function testStoreItemForeverProperlyStoresInArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 87: public function testValuesCanBeIncremented() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 87: public function testValuesCanBeIncremented() - line 89: $store = new SessionStore(self::getSession()); - line 90: $store->put('foo', 1, 10); - line 91: $result = $store->increment('foo'); - line 95: $result = $store->increment('foo', 2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 100: public function testValuesGetCastedByIncrementOrDecrement() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 100: public function testValuesGetCastedByIncrementOrDecrement() - line 102: $store = new SessionStore(self::getSession()); - line 103: $store->put('foo', '1', 10); - line 104: $result = $store->increment('foo'); - line 108: $store->put('bar', '1', 10); - line 109: $result = $store->decrement('bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 114: public function testIncrementNonNumericValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 114: public function testIncrementNonNumericValues() - line 116: $store = new SessionStore(self::getSession()); - line 117: $store->put('foo', 'I am string', 10); - line 118: $result = $store->increment('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 123: public function testNonExistingKeysCanBeIncremented() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 123: public function testNonExistingKeysCanBeIncremented() - line 125: $store = new SessionStore(self::getSession()); - line 126: $result = $store->increment('foo'); - line 131: Carbon::setTestNow(Carbon::now()->addYears(10)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 135: public function testExpiredKeysAreIncrementedLikeNonExistingKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 135: public function testExpiredKeysAreIncrementedLikeNonExistingKeys() - line 139: $store = new SessionStore(self::getSession()); - line 141: $store->put('foo', 999, 10); - line 142: Carbon::setTestNow(Carbon::now()->addSeconds(10)->addSecond()); - line 143: $result = $store->increment('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 135: public function testExpiredKeysAreIncrementedLikeNonExistingKeys() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 148: public function testValuesCanBeDecremented() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 148: public function testValuesCanBeDecremented() - line 150: $store = new SessionStore(self::getSession()); - line 151: $store->put('foo', 1, 10); - line 152: $result = $store->decrement('foo'); - line 156: $result = $store->decrement('foo', 2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 161: public function testItemsCanBeRemoved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 161: public function testItemsCanBeRemoved() - line 163: $store = new SessionStore(self::getSession()); - line 164: $store->put('foo', 'bar', 10); - line 165: $this->assertTrue($store->forget('foo')); - line 167: $this->assertFalse($store->forget('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 170: public function testItemsCanBeFlushed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 170: public function testItemsCanBeFlushed() - line 172: $store = new SessionStore(self::getSession()); - line 173: $store->put('foo', 'bar', 10); - line 174: $store->put('baz', 'boom', 10); - line 175: $result = $store->flush(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 170: public function testItemsCanBeFlushed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 181: public function testCacheKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 181: public function testCacheKey() - line 183: $store = new SessionStore(self::getSession()); - line 184: $this->assertEmpty($store->getPrefix()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 181: public function testCacheKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 187: public function testItemKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 187: public function testItemKey() - line 189: $store = new SessionStore(self::getSession(), 'custom_prefix'); - line 190: $this->assertEquals('custom_prefix.foo', $store->itemKey('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 193: public function testValuesAreStoredByReference() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 193: public function testValuesAreStoredByReference() - line 195: $store = new SessionStore(self::getSession()); - line 199: $store->put('object', $object, 10); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 193: public function testValuesAreStoredByReference() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 208: public function testCanGetAll() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 208: public function testCanGetAll() - line 212: $store = new SessionStore(self::getSession()); - line 213: $store->put('foo', 'bar', 10); - line 216: 'foo' => ['value' => 'bar', 'expiresAt' => Carbon::now()->addSeconds(10)->getPreciseTimestamp(3) / 1000], Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Cache/CacheSpyMemoTest.php - Test @ line 50: public function test_cache_spy_works_with_memoized_cache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 50: public function test_cache_spy_works_with_memoized_cache() - line 54: Cache::memo()->remember('key', 60, fn () => 'bar'); - line 56: $cache->shouldHaveReceived('memo')->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 50: public function test_cache_spy_works_with_memoized_cache() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 59: public function test_cache_spy_tracks_remember_on_memoized_cache_as_described_in_issue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 59: public function test_cache_spy_tracks_remember_on_memoized_cache_as_described_in_issue() - line 64: $value = $memoizedCache->remember('key', 60, fn () => 'bar'); - line 68: $memoizedCache->shouldHaveReceived('remember')->once()->with('key', 60, Mockery::type(Closure::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 59: public function test_cache_spy_tracks_remember_on_memoized_cache_as_described_in_issue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 71: public function test_cache_spy_tracks_remember_calls_on_memoized_cache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 71: public function test_cache_spy_tracks_remember_calls_on_memoized_cache() - line 76: $memoizedCache->remember('key', 60, fn () => 'bar'); - line 78: $memoizedCache->shouldHaveReceived('remember')->once()->with('key', 60, Mockery::type(Closure::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 71: public function test_cache_spy_tracks_remember_calls_on_memoized_cache() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 81: public function test_cache_spy_memo_returns_spied_repository() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 81: public function test_cache_spy_memo_returns_spied_repository() - line 89: $memoizedCache->remember('key', 60, fn () => 'bar'); - line 91: $memoizedCache->shouldHaveReceived('remember')->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 81: public function test_cache_spy_memo_returns_spied_repository() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Cache/CacheTaggedCacheTest.php - Test @ line 12: public function testCacheCanBeSavedWithMultipleTags() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 12: public function testCacheCanBeSavedWithMultipleTags() - line 16: $store->tags($tags)->put('foo', 'bar', 10); - line 17: $this->assertSame('bar', $store->tags($tags)->get('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 20: public function testCacheCanBeSetWithDatetimeArgument() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 20: public function testCacheCanBeSetWithDatetimeArgument() - line 25: $duration->add(new DateInterval('PT10M')); - line 26: $store->tags($tags)->put('foo', 'bar', $duration); - line 27: $this->assertSame('bar', $store->tags($tags)->get('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 30: public function testCacheSavedWithMultipleTagsCanBeFlushed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 30: public function testCacheSavedWithMultipleTagsCanBeFlushed() - line 34: $store->tags($tags1)->put('foo', 'bar', 10); - line 36: $store->tags($tags2)->put('foo', 'bar', 10); - line 37: $store->tags('zap')->flush(); - line 38: $this->assertNull($store->tags($tags1)->get('foo')); - line 39: $this->assertSame('bar', $store->tags($tags2)->get('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 42: public function testTagsWithStringArgument() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 42: public function testTagsWithStringArgument() - line 45: $store->tags('bop')->put('foo', 'bar', 10); - line 46: $this->assertSame('bar', $store->tags('bop')->get('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 49: public function testWithIncrement() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 49: public function testWithIncrement() - line 52: $taggableStore = $store->tags('bop'); - line 54: $taggableStore->put('foo', 5, 10); - line 56: $value = $taggableStore->increment('foo'); - line 59: $value = $taggableStore->increment('foo'); - line 62: $value = $taggableStore->increment('foo', 3); - line 65: $value = $taggableStore->increment('foo', -2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testWithIncrement() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 75: public function testWithDecrement() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 75: public function testWithDecrement() - line 78: $taggableStore = $store->tags('bop'); - line 80: $taggableStore->put('foo', 50, 10); - line 82: $value = $taggableStore->decrement('foo'); - line 85: $value = $taggableStore->decrement('foo'); - line 88: $value = $taggableStore->decrement('foo', 3); - line 91: $value = $taggableStore->decrement('foo', -2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 75: public function testWithDecrement() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 101: public function testMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 101: public function testMany() - line 103: $store = $this->getTestCacheStoreWithTagValues(); - line 105: $values = $store->tags(['fruit'])->many(['a', 'e', 'b', 'd', 'c']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 101: public function testMany() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 115: public function testManyWithDefaultValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 115: public function testManyWithDefaultValues() - line 117: $store = $this->getTestCacheStoreWithTagValues(); - line 119: $values = $store->tags(['fruit'])->many([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 115: public function testManyWithDefaultValues() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 137: public function testGetMultiple() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 137: public function testGetMultiple() - line 139: $store = $this->getTestCacheStoreWithTagValues(); - line 141: $values = $store->tags(['fruit'])->getMultiple(['a', 'e', 'b', 'd', 'c']); - line 150: $values = $store->tags(['fruit', 'color'])->getMultiple(['a', 'e', 'b', 'd', 'c']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 137: public function testGetMultiple() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 160: public function testGetMultipleWithDefaultValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 160: public function testGetMultipleWithDefaultValue() - line 162: $store = $this->getTestCacheStoreWithTagValues(); - line 164: $values = $store->tags(['fruit', 'color'])->getMultiple(['a', 'e', 'b', 'd', 'c'], 547); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 160: public function testGetMultipleWithDefaultValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 174: public function testTagsWithIncrementCanBeFlushed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 174: public function testTagsWithIncrementCanBeFlushed() - line 177: $store->tags('bop')->increment('foo', 5); - line 178: $this->assertEquals(5, $store->tags('bop')->get('foo')); - line 179: $store->tags('bop')->flush(); - line 180: $this->assertNull($store->tags('bop')->get('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 183: public function testTagsWithDecrementCanBeFlushed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 183: public function testTagsWithDecrementCanBeFlushed() - line 186: $store->tags('bop')->decrement('foo', 5); - line 187: $this->assertEquals(-5, $store->tags('bop')->get('foo')); - line 188: $store->tags('bop')->flush(); - line 189: $this->assertNull($store->tags('bop')->get('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 192: public function testTagsCacheForever() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 192: public function testTagsCacheForever() - line 196: $store->tags($tags)->forever('foo', 'bar'); - line 197: $this->assertSame('bar', $store->tags($tags)->get('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Cache/ClearCommandTest.php - Test @ line 60: public function testClearWithNoStoreArgument() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 60: public function testClearWithNoStoreArgument() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 71: public function testClearWithStoreArgument() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 71: public function testClearWithStoreArgument() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 82: public function testClearWithInvalidStoreArgument() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 82: public function testClearWithInvalidStoreArgument() - line 84: $this->expectException(InvalidArgumentException::class); - line 88: $this->cacheManager->shouldReceive('store')->once()->with('bar')->andThrow(InvalidArgumentException::class); - line 89: $this->cacheRepository->shouldReceive('flush')->never(); - line 91: $this->runCommand($this->command, ['store' => 'bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 82: public function testClearWithInvalidStoreArgument() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 94: public function testClearWithTagsOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 94: public function testClearWithTagsOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 106: public function testClearWithStoreArgumentAndTagsOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 106: public function testClearWithStoreArgumentAndTagsOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 118: public function testClearWillClearRealTimeFacades() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 118: public function testClearWillClearRealTimeFacades() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 130: public function testClearWillNotClearRealTimeFacadesIfCacheDirectoryDoesntExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 130: public function testClearWillNotClearRealTimeFacadesIfCacheDirectoryDoesntExist() - line 137: $this->files->shouldNotReceive('files'); - line 138: $this->files->shouldNotReceive('delete'); - line 140: $this->runCommand($this->command); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 130: public function testClearWillNotClearRealTimeFacadesIfCacheDirectoryDoesntExist() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Cache/RateLimiterTest.php - Test @ line 43: public function testShouldUseOriginKeyAsPrefixWhenMultipleLimiterWithSameKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 43: public function testShouldUseOriginKeyAsPrefixWhenMultipleLimiterWithSameKey() - line 47: $rateLimiter->for('user_limiter', fn (string $userId) => [ - line 55: $limiterForUser1 = $rateLimiter->limiter('user_limiter')($userId1); - line 56: $limiterForUser2 = $rateLimiter->limiter('user_limiter')($userId2); - line 59: $this->assertFalse($rateLimiter->tooManyAttempts($limiterForUser1[0]->key, $limiterForUser1[0]->maxAttempts)); - line 60: $this->assertFalse($rateLimiter->tooManyAttempts($limiterForUser2[0]->key, $limiterForUser2[0]->maxAttempts)); - line 62: $rateLimiter->hit($limiterForUser1[0]->key, $limiterForUser1[0]->decaySeconds); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Config/RepositoryTest.php - Test @ line 52: public function testGetValueWhenKeyContainDot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 52: public function testGetValueWhenKeyContainDot() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 65: public function testGetBooleanValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 65: public function testGetBooleanValue() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 72: public function testGetNullValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 72: public function testGetNullValue() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 72: public function testGetNullValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 79: public function testConstruct() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 79: public function testConstruct() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 79: public function testConstruct() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 94: public function testGet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 94: public function testGet() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 99: public function testGetWithArrayOfKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 99: public function testGetWithArrayOfKeys() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 124: public function testGetMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 124: public function testGetMany() - line 130: ], $this->repository->getMany([ - line 141: ], $this->repository->getMany([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 149: public function testGetWithDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 149: public function testGetWithDefault() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 154: public function testSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 154: public function testSet() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 160: public function testSetArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 160: public function testSetArray() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 223: public function testOffsetExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 223: public function testOffsetExists() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 223: public function testOffsetExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 242: public function testOffsetGet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 242: public function testOffsetGet() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 242: public function testOffsetGet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 252: public function testOffsetSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 252: public function testOffsetSet() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 252: public function testOffsetSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 273: public function testOffsetUnset() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 273: public function testOffsetUnset() - line 275: $this->assertArrayHasKey('associate', $this->repository->all()); - line 280: $this->assertArrayHasKey('associate', $this->repository->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 284: public function testItIsMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 284: public function testItIsMacroable() - line 286: $this->repository->macro('foo', function () { - line 290: $this->assertSame('macroable', $this->repository->foo()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Console/CacheCommandMutexTest.php - Test @ line 53: public function testCanCreateMutex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 53: public function testCanCreateMutex() - line 55: $this->mockUsingCacheStore(); - line 59: $actual = $this->mutex->create($this->command); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 64: public function testCannotCreateMutexIfAlreadyExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 64: public function testCannotCreateMutexIfAlreadyExist() - line 66: $this->mockUsingCacheStore(); - line 70: $actual = $this->mutex->create($this->command); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 75: public function testCanCreateMutexWithCustomConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 75: public function testCanCreateMutexWithCustomConnection() - line 77: $this->mockUsingCacheStore(); - line 84: $this->mutex->useStore('test'); - line 86: $this->mutex->create($this->command); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 75: public function testCanCreateMutexWithCustomConnection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 89: public function testCanCreateMutexWithLockProvider() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 89: public function testCanCreateMutexWithLockProvider() - line 91: $lock = $this->mockUsingLockProvider(); - line 92: $this->acquireLockExpectations($lock, true); - line 94: $actual = $this->mutex->create($this->command); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 89: public function testCanCreateMutexWithLockProvider() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 99: public function testCanCreateMutexWithCustomLockProviderConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 99: public function testCanCreateMutexWithCustomLockProviderConnection() - line 101: $this->mockUsingCacheStore(); - line 108: $this->mutex->useStore('test'); - line 110: $this->mutex->create($this->command); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 99: public function testCanCreateMutexWithCustomLockProviderConnection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 113: public function testCannotCreateMutexIfAlreadyExistWithLockProvider() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 113: public function testCannotCreateMutexIfAlreadyExistWithLockProvider() - line 115: $lock = $this->mockUsingLockProvider(); - line 116: $this->acquireLockExpectations($lock, false); - line 117: $actual = $this->mutex->create($this->command); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 113: public function testCannotCreateMutexIfAlreadyExistWithLockProvider() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 122: public function testCanCreateMutexWithCustomConnectionWithLockProvider() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 122: public function testCanCreateMutexWithCustomConnectionWithLockProvider() - line 124: $lock = m::mock(LockProvider::class); - line 128: $this->acquireLockExpectations($lock, true); - line 129: $this->mutex->useStore('test'); - line 131: $this->mutex->create($this->command); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 124: $lock = m::mock(LockProvider::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 122: public function testCanCreateMutexWithCustomConnectionWithLockProvider() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 164: public function testCommandMutexNameWithoutIsolatedMutexNameMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 164: public function testCommandMutexNameWithoutIsolatedMutexNameMethod() - line 166: $this->mockUsingCacheStore(); - line 174: ->withArgs(function ($key) { - line 181: $this->mutex->create($this->command); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 164: public function testCommandMutexNameWithoutIsolatedMutexNameMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 184: public function testCommandMutexNameWithIsolatedMutexNameMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 184: public function testCommandMutexNameWithIsolatedMutexNameMethod() - line 196: $this->mockUsingCacheStore(); - line 204: ->withArgs(function ($key) { - line 211: $this->mutex->create($command); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 184: public function testCommandMutexNameWithIsolatedMutexNameMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Console/CommandMutexTest.php - Test @ line 57: public function testCanRunIsolatedCommandIfNotBlocked() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 57: public function testCanRunIsolatedCommandIfNotBlocked() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 71: public function testCannotRunIsolatedCommandIfBlocked() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 71: public function testCannotRunIsolatedCommandIfBlocked() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 82: public function testCanRunCommandAgainAfterOtherCommandFinished() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 82: public function testCanRunCommandAgainAfterOtherCommandFinished() - line 91: $this->runCommand(); - line 92: $this->runCommand(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 82: public function testCanRunCommandAgainAfterOtherCommandFinished() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 97: public function testCanRunCommandAgainNonAutomated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 97: public function testCanRunCommandAgainNonAutomated() - line 99: $this->commandMutex->shouldNotHaveBeenCalled(); - line 101: $this->runCommand(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 97: public function testCanRunCommandAgainNonAutomated() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Console/CommandTest.php - Test @ line 25: public function testCallingClassCommandResolveCommandViaApplicationResolution() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 25: public function testCallingClassCommandResolveCommandViaApplicationResolution() - line 34: $application = m::mock(Application::class); - line 35: $command->setLaravel($application); - line 43: $application->shouldReceive('call')->with([$command, 'handle'])->andReturnUsing(function () use ($command, $application) { - line 56: $command->run($input, $output); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 34: $application = m::mock(Application::class); - line 39: $outputStyle = m::mock(OutputStyle::class); - line 41: $application->shouldReceive('make')->with(Factory::class, ['output' => $outputStyle])->andReturn(m::mock(Factory::class)); - line 44: $commandCalled = m::mock(Command::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 25: public function testCallingClassCommandResolveCommandViaApplicationResolution() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 59: public function testGettingCommandArgumentsAndOptionsByClass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 59: public function testGettingCommandArgumentsAndOptionsByClass() - line 97: $command->setLaravel($application); - line 107: $command->run($input, $output); - line 109: $this->assertSame('test-first-argument', $command->argument('argument-one')); - line 110: $this->assertSame('test-second-argument', $command->argument('argument-two')); - line 111: $this->assertSame('third-argument-default', $command->argument('argument-three')); - line 112: $this->assertSame('test-first-option', $command->option('option-one')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 117: public function testTheInputSetterOverwrite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 117: public function testTheInputSetterOverwrite() - line 119: $input = m::mock(InputInterface::class); - line 123: $command->setInput($input); - line 125: $this->assertFalse($command->hasArgument('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 119: $input = m::mock(InputInterface::class); - Test @ line 128: public function testTheOutputSetterOverwrite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 128: public function testTheOutputSetterOverwrite() - line 130: $output = m::mock(OutputStyle::class); - line 131: $output->shouldReceive('writeln')->once()->withArgs(function (...$args) { - line 136: $command->setOutput($output); - line 138: $command->info('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 130: $output = m::mock(OutputStyle::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 128: public function testTheOutputSetterOverwrite() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 141: public function testSetHidden() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 141: public function testSetHidden() - line 147: return parent::isHidden(); - line 151: $this->assertFalse($command->isHidden()); - line 152: $this->assertFalse($command->parentIsHidden()); - line 154: $command->setHidden(true); - line 156: $this->assertTrue($command->isHidden()); - line 157: $this->assertTrue($command->parentIsHidden()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 160: public function testHiddenProperty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 160: public function testHiddenProperty() - line 168: return parent::isHidden(); - line 172: $this->assertTrue($command->isHidden()); - line 173: $this->assertTrue($command->parentIsHidden()); - line 175: $command->setHidden(false); - line 177: $this->assertFalse($command->isHidden()); - line 178: $this->assertFalse($command->parentIsHidden()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 193: public function testChoiceIsSingleSelectByDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 193: public function testChoiceIsSingleSelectByDefault() - line 195: $output = m::mock(OutputStyle::class); - line 196: $output->shouldReceive('askQuestion')->once()->withArgs(function (ChoiceQuestion $question) { - line 201: $command->setOutput($output); - line 203: $command->choice('Do you need further help?', ['yes', 'no']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 195: $output = m::mock(OutputStyle::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 193: public function testChoiceIsSingleSelectByDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 206: public function testChoiceWithMultiselect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 206: public function testChoiceWithMultiselect() - line 208: $output = m::mock(OutputStyle::class); - line 209: $output->shouldReceive('askQuestion')->once()->withArgs(function (ChoiceQuestion $question) { - line 214: $command->setOutput($output); - line 216: $command->choice('Select all that apply.', ['option-1', 'option-2', 'option-3'], null, null, true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 208: $output = m::mock(OutputStyle::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 206: public function testChoiceWithMultiselect() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Console/CommandTrapTest.php - Test @ line 26: public function testTrapWhenAvailable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 26: public function testTrapWhenAvailable() - line 28: $command = $this->createCommand(); - line 30: $command->trap('my-signal', function () { - line 32: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 26: public function testTrapWhenAvailable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 39: public function testTrapWhenNotAvailable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 39: public function testTrapWhenNotAvailable() - line 41: Signals::resolveAvailabilityUsing(fn () => false); - line 43: $command = $this->createCommand(); - line 45: $command->trap('my-signal', function () { - line 47: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 39: public function testTrapWhenNotAvailable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 54: public function testUntrap() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 54: public function testUntrap() - line 56: $command = $this->createCommand(); - line 58: $command->trap('my-signal', function () { - line 62: $command->untrap(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 54: public function testUntrap() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 69: public function testNestedTraps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 18. Evidence: - line 69: public function testNestedTraps() - line 71: $a = $this->createCommand(); - line 72: $a->trap('my-signal', fn () => $this->state .= '1'); - line 74: $b = $this->createCommand(); - line 75: $b->trap('my-signal', fn () => $this->state .= '2'); - line 77: $c = $this->createCommand(); - line 78: $c->trap('my-signal', fn () => $this->state .= '3'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 69: public function testNestedTraps() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Console/Concerns/InteractsWithIOTest.php - Test @ line 24: public function testWithProgressBarIterable($iterable) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 24: public function testWithProgressBarIterable($iterable) - line 28: $output = m::mock(OutputStyle::class, [new ArgvInput(), $bufferedOutput])->makePartial(); - line 29: $command->setOutput($output); - line 34: ->andReturnUsing(function ($steps) use ($bufferedOutput) { - line 40: $result = $command->withProgressBar($iterable, function ($value, $bar, $key) use (&$calledTimes, $iterable) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 24: public function testWithProgressBarIterable($iterable) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 58: public function testWithProgressBarInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 58: public function testWithProgressBarInteger() - line 62: $output = m::mock(OutputStyle::class, [new ArgvInput(), $bufferedOutput])->makePartial(); - line 63: $command->setOutput($output); - line 70: ->andReturnUsing(function ($steps) use ($bufferedOutput) { - line 76: $command->withProgressBar($totalSteps, function ($bar) use (&$called) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 58: public function testWithProgressBarInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Console/ConfiguresPromptsTest.php - Test @ line 27: public function testSelectFallback($prompt, $expectedOptions, $expectedDefault, $return, $expectedReturn) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 27: public function testSelectFallback($prompt, $expectedOptions, $expectedDefault, $return, $expectedReturn) - line 29: Prompt::fallbackWhen(true); - line 46: $this->runCommand($command, fn ($components) => $components Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 27: public function testSelectFallback($prompt, $expectedOptions, $expectedDefault, $return, $expectedReturn) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 68: public function testMultiselectFallback($prompt, $expectedOptions, $expectedDefault, $return, $expectedReturn) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 68: public function testMultiselectFallback($prompt, $expectedOptions, $expectedDefault, $return, $expectedReturn) - line 70: Prompt::fallbackWhen(true); - line 87: $this->runCommand($command, fn ($components) => $components Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 68: public function testMultiselectFallback($prompt, $expectedOptions, $expectedDefault, $return, $expectedReturn) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Console/ConsoleApplicationTest.php - Test @ line 38: public function testAddSetsLaravelInstance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 38: public function testAddSetsLaravelInstance() - line 40: $artisan = $this->getMockConsole(['addToParent']); - line 43: $artisan->expects($this->once())->method('addToParent')->with($this->equalTo($command))->willReturn($command); - line 44: $result = $artisan->add($command); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 41: $command = m::mock(Command::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 38: public function testAddSetsLaravelInstance() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 49: public function testLaravelNotSetOnSymfonyCommands() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 49: public function testLaravelNotSetOnSymfonyCommands() - line 51: $artisan = $this->getMockConsole(['addToParent']); - line 53: $command->shouldReceive('setLaravel')->never(); - line 54: $artisan->expects($this->once())->method('addToParent')->with($this->equalTo($command))->willReturn($command); - line 55: $result = $artisan->add($command); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 52: $command = m::mock(SymfonyCommand::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testLaravelNotSetOnSymfonyCommands() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 60: public function testResolveAddsCommandViaApplicationResolution() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 60: public function testResolveAddsCommandViaApplicationResolution() - line 62: $artisan = $this->getMockConsole(['addToParent']); - line 64: $artisan->getLaravel()->shouldReceive('make')->once()->with('foo')->andReturn(m::mock(SymfonyCommand::class)); - line 65: $artisan->expects($this->once())->method('addToParent')->with($this->equalTo($command))->willReturn($command); - line 66: $result = $artisan->resolve('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 63: $command = m::mock(SymfonyCommand::class); - line 64: $artisan->getLaravel()->shouldReceive('make')->once()->with('foo')->andReturn(m::mock(SymfonyCommand::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 60: public function testResolveAddsCommandViaApplicationResolution() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 71: public function testResolvingCommandsWithAliasViaAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 71: public function testResolvingCommandsWithAliasViaAttribute() - line 74: $artisan = new Application($container, new EventsDispatcher($container), $container->version()); - line 75: $artisan->resolve(CommandWithAliasViaAttribute::class); - line 76: $artisan->setContainerCommandLoader(); - line 80: $this->assertArrayHasKey('command-name', $artisan->all()); - line 81: $this->assertArrayHasKey('command-alias', $artisan->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 84: public function testResolvingCommandsWithAliasViaProperty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 84: public function testResolvingCommandsWithAliasViaProperty() - line 87: $artisan = new Application($container, new EventsDispatcher($container), $container->version()); - line 88: $artisan->resolve(CommandWithAliasViaProperty::class); - line 89: $artisan->setContainerCommandLoader(); - line 93: $this->assertArrayHasKey('command-name', $artisan->all()); - line 94: $this->assertArrayHasKey('command-alias', $artisan->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 97: public function testResolvingCommandsWithNoAliasViaAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 97: public function testResolvingCommandsWithNoAliasViaAttribute() - line 100: $artisan = new Application($container, new EventsDispatcher($container), $container->version()); - line 101: $artisan->resolve(CommandWithNoAliasViaAttribute::class); - line 102: $artisan->setContainerCommandLoader(); - line 107: $this->fail(); - line 111: $this->assertArrayHasKey('command-name', $artisan->all()); - line 112: $this->assertArrayNotHasKey('command-alias', $artisan->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 115: public function testResolvingCommandsWithNoAliasViaProperty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 115: public function testResolvingCommandsWithNoAliasViaProperty() - line 118: $artisan = new Application($container, new EventsDispatcher($container), $container->version()); - line 119: $artisan->resolve(CommandWithNoAliasViaProperty::class); - line 120: $artisan->setContainerCommandLoader(); - line 125: $this->fail(); - line 129: $this->assertArrayHasKey('command-name', $artisan->all()); - line 130: $this->assertArrayNotHasKey('command-alias', $artisan->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 133: public function testCallFullyStringCommandLine() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 133: public function testCallFullyStringCommandLine() - line 136: m::mock(ApplicationContract::class, ['version' => '6.0']), - line 141: $codeOfCallingArrayInput = $artisan->call('help', [ - line 148: $outputOfCallingArrayInput = $artisan->output(); - line 150: $codeOfCallingStringInput = $artisan->call( - line 154: $outputOfCallingStringInput = $artisan->output(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 133: public function testCallFullyStringCommandLine() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 160: public function testCommandInputPromptsWhenRequiredArgumentIsMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 160: public function testCommandInputPromptsWhenRequiredArgumentIsMissing() - line 164: m::mock(Dispatcher::class, ['dispatch' => null]), - line 168: $artisan->addCommands([$command = new FakeCommandWithInputPrompting()]); - line 170: $command->setLaravel($laravel); - line 172: $exitCode = $artisan->call('fake-command-for-testing'); - line 175: $this->assertSame('foo', $command->argument('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 179: public function testCommandInputDoesntPromptWhenRequiredArgumentIsPassed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 179: public function testCommandInputDoesntPromptWhenRequiredArgumentIsPassed() - line 183: m::mock(Dispatcher::class, ['dispatch' => null]), - line 187: $artisan->addCommands([$command = new FakeCommandWithInputPrompting()]); - line 189: $exitCode = $artisan->call('fake-command-for-testing', [ - line 194: $this->assertSame('foo', $command->argument('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 198: public function testCommandInputPromptsWhenRequiredArgumentsAreMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 198: public function testCommandInputPromptsWhenRequiredArgumentsAreMissing() - line 202: m::mock(Dispatcher::class, ['dispatch' => null]), - line 206: $artisan->addCommands([$command = new FakeCommandWithArrayInputPrompting()]); - line 208: $command->setLaravel($laravel); - line 210: $exitCode = $artisan->call('fake-command-for-testing-array'); - line 213: $this->assertSame(['foo'], $command->argument('names')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 217: public function testCommandInputDoesntPromptWhenRequiredArgumentsArePassed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 217: public function testCommandInputDoesntPromptWhenRequiredArgumentsArePassed() - line 221: m::mock(Dispatcher::class, ['dispatch' => null]), - line 225: $artisan->addCommands([$command = new FakeCommandWithArrayInputPrompting()]); - line 227: $exitCode = $artisan->call('fake-command-for-testing-array', [ - line 232: $this->assertSame(['foo', 'bar', 'baz'], $command->argument('names')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 236: public function testCallMethodCanCallArtisanCommandUsingCommandClassObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 236: public function testCallMethodCanCallArtisanCommandUsingCommandClassObject() - line 240: m::mock(Dispatcher::class, ['dispatch' => null]), - line 244: $artisan->addCommands([$command = new FakeCommandWithInputPrompting()]); - line 246: $command->setLaravel($laravel); - line 248: $exitCode = $artisan->call($command); - line 251: $this->assertSame('foo', $command->argument('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 256: public function testLoadIgnoresTestFiles() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 256: public function testLoadIgnoresTestFiles() - line 260: $files->ensureDirectoryExists(join_paths(default_skeleton_path(), 'app', 'Console', 'Commands'), 0755, true); - line 263: $files->put( - line 268: $files->put( - line 273: $files->put( - line 279: $loader->addPsr4('App\\', [default_skeleton_path('app')]); - line 284: $app->instance('events', $events); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 256: public function testLoadIgnoresTestFiles() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Console/ConsoleEventSchedulerTest.php - Test @ line 41: public function testMutexCanReceiveCustomStore() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 41: public function testMutexCanReceiveCustomStore() - line 43: Container::getInstance()->make(EventMutex::class)->shouldReceive('useStore')->once()->with('test'); - line 44: Container::getInstance()->make(SchedulingMutex::class)->shouldReceive('useStore')->once()->with('test'); - line 46: $this->schedule->useCache('test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 41: public function testMutexCanReceiveCustomStore() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 49: public function testExecCreatesNewCommand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 49: public function testExecCreatesNewCommand() - line 55: $schedule->exec('path/to/command'); - line 56: $schedule->exec('path/to/command -f --foo="bar"'); - line 57: $schedule->exec('path/to/command', ['-f']); - line 58: $schedule->exec('path/to/command', ['--foo' => 'bar']); - line 59: $schedule->exec('path/to/command', ['-f', '--foo' => 'bar']); - line 60: $schedule->exec('path/to/command', ['--title' => 'A "real" test']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 81: public function testExecCreatesNewCommandWithTimezone() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 81: public function testExecCreatesNewCommandWithTimezone() - line 84: $schedule->exec('path/to/command'); - line 85: $events = $schedule->events(); - line 89: $schedule->exec('path/to/command'); - line 90: $events = $schedule->events(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 94: public function testCommandCreatesNewArtisanCommand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 94: public function testCommandCreatesNewArtisanCommand() - line 97: $schedule->command('queue:listen'); - line 98: $schedule->command('queue:listen --tries=3'); - line 99: $schedule->command('queue:listen', ['--tries' => 3]); - line 101: $events = $schedule->events(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 109: public function testCreateNewArtisanCommandUsingCommandClass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 109: public function testCreateNewArtisanCommandUsingCommandClass() - line 112: $schedule->command(ConsoleCommandStub::class, ['--force']); - line 114: $events = $schedule->events(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 120: public function testCreateNewArtisanCommandUsingCommandClassObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 120: public function testCreateNewArtisanCommandUsingCommandClassObject() - line 132: $schedule->command($command, ['--force']); - line 134: $events = $schedule->events(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 155: public function testCallCreatesNewJobWithTimezone() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 155: public function testCallCreatesNewJobWithTimezone() - line 158: $schedule->call('path/to/command'); - line 159: $events = $schedule->events(); - line 163: $schedule->call('path/to/command'); - line 164: $events = $schedule->events(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Console/ConsoleParserTest.php - Test @ line 11: public function testBasicParameterParsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 31. Evidence: - line 11: public function testBasicParameterParsing() - line 13: $results = Parser::parse('command:name'); - line 20: $this->assertSame('argument', $results[1][0]->getName()); - line 21: $this->assertSame('option', $results[2][0]->getName()); - line 22: $this->assertFalse($results[2][0]->acceptValue()); - line 27: $this->assertSame('argument', $results[1][0]->getName()); - line 28: $this->assertTrue($results[1][0]->isArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 70: public function testShortcutNameParsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 21. Evidence: - line 70: public function testShortcutNameParsing() - line 72: $results = Parser::parse('command:name {--o|option}'); - line 74: $this->assertSame('o', $results[2][0]->getShortcut()); - line 75: $this->assertSame('option', $results[2][0]->getName()); - line 76: $this->assertFalse($results[2][0]->acceptValue()); - line 80: $this->assertSame('o', $results[2][0]->getShortcut()); - line 81: $this->assertSame('option', $results[2][0]->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 112: public function testDefaultValueParsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 112: public function testDefaultValueParsing() - line 114: $results = Parser::parse('command:name {argument=defaultArgumentValue} {--option=defaultOptionValue}'); - line 116: $this->assertFalse($results[1][0]->isRequired()); - line 117: $this->assertSame('defaultArgumentValue', $results[1][0]->getDefault()); - line 118: $this->assertTrue($results[2][0]->acceptValue()); - line 119: $this->assertSame('defaultOptionValue', $results[2][0]->getDefault()); - line 123: $this->assertTrue($results[1][0]->isArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 131: public function testArgumentDefaultValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 131: public function testArgumentDefaultValue() - line 133: $results = Parser::parse('command:name {argument= : The argument description.}'); - line 134: $this->assertNull($results[1][0]->getDefault()); - line 137: $this->assertSame('default', $results[1][0]->getDefault()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 140: public function testOptionDefaultValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 140: public function testOptionDefaultValue() - line 142: $results = Parser::parse('command:name {--option= : The option description.}'); - line 143: $this->assertNull($results[2][0]->getDefault()); - line 146: $this->assertSame('default', $results[2][0]->getDefault()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 149: public function testNameIsSpacesException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 149: public function testNameIsSpacesException() - line 151: $this->expectException(InvalidArgumentException::class); - line 152: $this->expectExceptionMessage('Unable to determine command name from signature.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 149: public function testNameIsSpacesException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 157: public function testNameInEmptyException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 157: public function testNameInEmptyException() - line 159: $this->expectException(InvalidArgumentException::class); - line 160: $this->expectExceptionMessage('Unable to determine command name from signature.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 157: public function testNameInEmptyException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Console/ConsoleScheduledEventTest.php - Test @ line 34: public function testBasicCronCompilation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 34: public function testBasicCronCompilation() - line 36: $app = m::mock(Application::class.'[isDownForMaintenance,environment]'); - line 41: $this->assertSame('* * * * *', $event->getExpression()); - line 42: $this->assertTrue($event->isDue($app)); - line 43: $this->assertTrue($event->skip(function () { - line 46: $this->assertFalse($event->skip(function () { - line 51: $this->assertSame('* * * * *', $event->getExpression()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 40: $event = new Event(m::mock(EventMutex::class), 'php foo'); - line 50: $event = new Event(m::mock(EventMutex::class), 'php foo'); - line 54: $event = new Event(m::mock(EventMutex::class), 'php foo'); - line 60: $event = new Event(m::mock(EventMutex::class), 'php foo'); - line 65: $eventA = new Event(m::mock(EventMutex::class), 'php foo'); - line 66: $eventB = new Event(m::mock(EventMutex::class), 'php foo'); - line 71: $eventA = new Event(m::mock(EventMutex::class), 'php foo'); - line 72: $eventB = new Event(m::mock(EventMutex::class), 'php foo'); - Test @ line 78: public function testEventIsDueCheck() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 78: public function testEventIsDueCheck() - line 80: $app = m::mock(Application::class.'[isDownForMaintenance,environment]'); - line 86: $this->assertSame('* * * * 4', $event->thursdays()->getExpression()); - line 87: $this->assertTrue($event->isDue($app)); - line 90: $this->assertSame('0 19 * * 3', $event->wednesdays()->at('19:00')->timezone('EST')->getExpression()); - line 91: $this->assertTrue($event->isDue($app)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 85: $event = new Event(m::mock(EventMutex::class), 'php foo'); - line 89: $event = new Event(m::mock(EventMutex::class), 'php foo'); - Test @ line 94: public function testTimeBetweenChecks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 94: public function testTimeBetweenChecks() - line 96: $app = m::mock(Application::class.'[isDownForMaintenance,environment]'); - line 100: Carbon::setTestNow(Carbon::now()->startOfDay()->addHours(9)); - line 103: $this->assertTrue($event->between('8:00', '10:00')->filtersPass($app)); - line 106: $this->assertTrue($event->between('9:00', '9:00')->filtersPass($app)); - line 109: $this->assertTrue($event->between('23:00', '10:00')->filtersPass($app)); - line 112: $this->assertTrue($event->between('8:00', '6:00')->filtersPass($app)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 102: $event = new Event(m::mock(EventMutex::class), 'php foo', 'UTC'); - line 105: $event = new Event(m::mock(EventMutex::class), 'php foo', 'UTC'); - line 108: $event = new Event(m::mock(EventMutex::class), 'php foo', 'UTC'); - line 111: $event = new Event(m::mock(EventMutex::class), 'php foo', 'UTC'); - line 114: $event = new Event(m::mock(EventMutex::class), 'php foo', 'UTC'); - line 117: $event = new Event(m::mock(EventMutex::class), 'php foo', 'UTC'); - Test @ line 121: public function testTimeUnlessBetweenChecks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 121: public function testTimeUnlessBetweenChecks() - line 123: $app = m::mock(Application::class.'[isDownForMaintenance,environment]'); - line 127: Carbon::setTestNow(Carbon::now()->startOfDay()->addHours(9)); - line 130: $this->assertFalse($event->unlessBetween('8:00', '10:00')->filtersPass($app)); - line 133: $this->assertFalse($event->unlessBetween('9:00', '9:00')->filtersPass($app)); - line 136: $this->assertFalse($event->unlessBetween('23:00', '10:00')->filtersPass($app)); - line 139: $this->assertFalse($event->unlessBetween('8:00', '6:00')->filtersPass($app)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 129: $event = new Event(m::mock(EventMutex::class), 'php foo', 'UTC'); - line 132: $event = new Event(m::mock(EventMutex::class), 'php foo', 'UTC'); - line 135: $event = new Event(m::mock(EventMutex::class), 'php foo', 'UTC'); - line 138: $event = new Event(m::mock(EventMutex::class), 'php foo', 'UTC'); - line 141: $event = new Event(m::mock(EventMutex::class), 'php foo', 'UTC'); - line 144: $event = new Event(m::mock(EventMutex::class), 'php foo', 'UTC'); ❌ tests/Console/OutputStyleTest.php - Test @ line 12: public function testDetectsNewLine() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 12: public function testDetectsNewLine() - line 18: $this->assertFalse($style->newLineWritten()); - line 20: $style->newLine(); - line 21: $this->assertTrue($style->newLineWritten()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 24: public function testDetectsNewLineOnUnderlyingOutput() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 24: public function testDetectsNewLineOnUnderlyingOutput() - line 31: $underlyingStyle->newLine(); - line 32: $this->assertTrue($style->newLineWritten()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 35: public function testDetectsNewLineOnWrite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 35: public function testDetectsNewLineOnWrite() - line 41: $style->write('Foo'); - line 42: $this->assertFalse($style->newLineWritten()); - line 44: $style->write('Foo', true); - line 45: $this->assertTrue($style->newLineWritten()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 48: public function testDetectsNewLineOnWriteln() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 48: public function testDetectsNewLineOnWriteln() - line 54: $style->writeln('Foo'); - line 55: $this->assertTrue($style->newLineWritten()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 58: public function testDetectsNewLineOnlyOnOutput() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 58: public function testDetectsNewLineOnlyOnOutput() - line 64: $style->setVerbosity(OutputStyle::VERBOSITY_NORMAL); - line 66: $style->writeln('Foo', OutputStyle::VERBOSITY_VERBOSE); - line 67: $this->assertFalse($style->newLineWritten()); - line 69: $style->setVerbosity(OutputStyle::VERBOSITY_VERBOSE); - line 71: $style->writeln('Foo', OutputStyle::VERBOSITY_VERBOSE); - line 72: $this->assertTrue($style->newLineWritten()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Console/Scheduling/CacheEventMutexTest.php - Test @ line 46: public function testPreventOverlap() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 46: public function testPreventOverlap() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 54: public function testCustomConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 54: public function testCustomConnection() - line 59: $this->cacheMutex->useStore('test'); - line 61: $this->cacheMutex->create($this->event); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 54: public function testCustomConnection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 88: public function testResetOverlap() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 88: public function testResetOverlap() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 103: public function testPreventOverlapFailsWithLockProvider() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 103: public function testPreventOverlapFailsWithLockProvider() - line 108: $this->cacheMutex->create($this->event); - line 110: $this->assertFalse($this->cacheMutex->create($this->event)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 120: public function testOverlapsForRunningTaskWithLockProvider() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 120: public function testOverlapsForRunningTaskWithLockProvider() - line 124: $this->cacheMutex->create($this->event); - line 126: $this->assertTrue($this->cacheMutex->exists($this->event)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 129: public function testResetOverlapWithLockProvider() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 129: public function testResetOverlapWithLockProvider() - line 133: $this->cacheMutex->create($this->event); - line 135: $this->cacheMutex->forget($this->event); - line 137: $this->assertFalse($this->cacheMutex->exists($this->event)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Console/Scheduling/CacheSchedulingMutexTest.php - Test @ line 54: public function testMutexReceivesCorrectCreate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 54: public function testMutexReceivesCorrectCreate() - line 57: $this->cacheRepository->shouldReceive('add')->once()->with($this->event->mutexName().$this->time->format('Hi'), true, 3600)->andReturn(true); - line 59: $this->assertTrue($this->cacheMutex->create($this->event, $this->time)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 62: public function testCanUseCustomConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 62: public function testCanUseCustomConnection() - line 66: $this->cacheRepository->shouldReceive('add')->once()->with($this->event->mutexName().$this->time->format('Hi'), true, 3600)->andReturn(true); - line 67: $this->cacheMutex->useStore('test'); - line 69: $this->assertTrue($this->cacheMutex->create($this->event, $this->time)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 72: public function testPreventsMultipleRuns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 72: public function testPreventsMultipleRuns() - line 75: $this->cacheRepository->shouldReceive('add')->once()->with($this->event->mutexName().$this->time->format('Hi'), true, 3600)->andReturn(false); - line 77: $this->assertFalse($this->cacheMutex->create($this->event, $this->time)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 80: public function testChecksForNonRunSchedule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 80: public function testChecksForNonRunSchedule() - line 83: $this->cacheRepository->shouldReceive('has')->once()->with($this->event->mutexName().$this->time->format('Hi'))->andReturn(false); - line 85: $this->assertFalse($this->cacheMutex->exists($this->event, $this->time)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 88: public function testChecksForAlreadyRunSchedule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 88: public function testChecksForAlreadyRunSchedule() - line 91: $this->cacheRepository->shouldReceive('has')->with($this->event->mutexName().$this->time->format('Hi'))->andReturn(true); - line 93: $this->assertTrue($this->cacheMutex->exists($this->event, $this->time)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 103: public function testPreventsMultipleRunsWithLockProvider() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 103: public function testPreventsMultipleRunsWithLockProvider() - line 108: $this->cacheMutex->create($this->event, $this->time); - line 110: $this->assertFalse($this->cacheMutex->create($this->event, $this->time)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 120: public function testChecksForAlreadyRunScheduleWithLockProvider() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 120: public function testChecksForAlreadyRunScheduleWithLockProvider() - line 124: $this->cacheMutex->create($this->event, $this->time); - line 126: $this->assertTrue($this->cacheMutex->exists($this->event, $this->time)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Console/Scheduling/EventTest.php - Test @ line 24: public function testBuildCommandUsingUnix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 24: public function testBuildCommandUsingUnix() - line 26: $event = new Event(m::mock(EventMutex::class), 'php -i'); - line 28: $this->assertSame("php -i > '/dev/null' 2>&1", $event->buildCommand()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 26: $event = new Event(m::mock(EventMutex::class), 'php -i'); - Test @ line 32: public function testBuildCommandUsingWindows() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 32: public function testBuildCommandUsingWindows() - line 34: $event = new Event(m::mock(EventMutex::class), 'php -i'); - line 36: $this->assertSame('php -i > "NUL" 2>&1', $event->buildCommand()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 34: $event = new Event(m::mock(EventMutex::class), 'php -i'); - Test @ line 40: public function testBuildCommandInBackgroundUsingUnix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 40: public function testBuildCommandInBackgroundUsingUnix() - line 42: $event = new Event(m::mock(EventMutex::class), 'php -i'); - line 43: $event->runInBackground(); - line 47: $this->assertSame("(php -i > '/dev/null' 2>&1 ; '".php_binary()."' 'artisan' schedule:finish {$scheduleId} \"$?\") > '/dev/null' 2>&1 &", $event->buildCommand()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 42: $event = new Event(m::mock(EventMutex::class), 'php -i'); - Test @ line 51: public function testBuildCommandInBackgroundUsingWindows() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 51: public function testBuildCommandInBackgroundUsingWindows() - line 53: $event = new Event(m::mock(EventMutex::class), 'php -i'); - line 54: $event->runInBackground(); - line 58: $this->assertSame('start /b cmd /v:on /c "(php -i & '.php_binary().' artisan schedule:finish '.$scheduleId.' ^!ERRORLEVEL^!) > "NUL" 2>&1"', $event->buildCommand()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 53: $event = new Event(m::mock(EventMutex::class), 'php -i'); - Test @ line 61: public function testBuildCommandSendOutputTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 61: public function testBuildCommandSendOutputTo() - line 65: $event = new Event(m::mock(EventMutex::class), 'php -i'); - line 67: $event->sendOutputTo('/dev/null'); - line 68: $this->assertSame("php -i > {$quote}/dev/null{$quote} 2>&1", $event->buildCommand()); - line 72: $event->sendOutputTo('/my folder/foo.log'); - line 73: $this->assertSame("php -i > {$quote}/my folder/foo.log{$quote} 2>&1", $event->buildCommand()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 65: $event = new Event(m::mock(EventMutex::class), 'php -i'); - line 70: $event = new Event(m::mock(EventMutex::class), 'php -i'); - Test @ line 76: public function testBuildCommandAppendOutput() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 76: public function testBuildCommandAppendOutput() - line 80: $event = new Event(m::mock(EventMutex::class), 'php -i'); - line 82: $event->appendOutputTo('/dev/null'); - line 83: $this->assertSame("php -i >> {$quote}/dev/null{$quote} 2>&1", $event->buildCommand()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 80: $event = new Event(m::mock(EventMutex::class), 'php -i'); - Test @ line 86: public function testNextRunDate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 86: public function testNextRunDate() - line 88: $event = new Event(m::mock(EventMutex::class), 'php -i'); - line 89: $event->dailyAt('10:15'); - line 91: $this->assertSame('10:15:00', $event->nextRunDate()->toTimeString()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 88: $event = new Event(m::mock(EventMutex::class), 'php -i'); - Test @ line 94: public function testCustomMutexName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 94: public function testCustomMutexName() - line 96: $event = new Event(m::mock(EventMutex::class), 'php -i'); - line 97: $event->description('Fancy command description'); - line 99: $this->assertSame('framework'.DIRECTORY_SEPARATOR.'schedule-eeb46c93d45e928d62aaf684d727e213b7094822', $event->mutexName()); - line 101: $event->createMutexNameUsing(function (Event $event) { - line 105: $this->assertSame('fancy-command-description', $event->mutexName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 96: $event = new Event(m::mock(EventMutex::class), 'php -i'); - Test @ line 108: public function testDaysOfMonthMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 108: public function testDaysOfMonthMethod() - line 110: $event = new Event(m::mock(EventMutex::class), 'php -i'); - line 112: $event->daysOfMonth(1, 15); - line 113: $this->assertSame('0 0 1,15 * *', $event->getExpression()); - line 116: $event->daysOfMonth([1, 10, 20, 30]); - line 117: $this->assertSame('0 0 1,10,20,30 * *', $event->getExpression()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 110: $event = new Event(m::mock(EventMutex::class), 'php -i'); - line 115: $event = new Event(m::mock(EventMutex::class), 'php -i'); ❌ tests/Console/Scheduling/FrequencyTest.php - Test @ line 24: public function testEveryMinute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 24: public function testEveryMinute() - line 26: $this->assertSame('* * * * *', $this->event->getExpression()); - line 27: $this->assertSame('* * * * *', $this->event->everyMinute()->getExpression()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 30: public function testEveryXMinutes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 30: public function testEveryXMinutes() - line 32: $this->assertSame('*/2 * * * *', $this->event->everyTwoMinutes()->getExpression()); - line 33: $this->assertSame('*/3 * * * *', $this->event->everyThreeMinutes()->getExpression()); - line 34: $this->assertSame('*/4 * * * *', $this->event->everyFourMinutes()->getExpression()); - line 35: $this->assertSame('*/5 * * * *', $this->event->everyFiveMinutes()->getExpression()); - line 36: $this->assertSame('*/10 * * * *', $this->event->everyTenMinutes()->getExpression()); - line 37: $this->assertSame('*/15 * * * *', $this->event->everyFifteenMinutes()->getExpression()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 76: public function testOverrideWithHourly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 76: public function testOverrideWithHourly() - line 78: $this->assertSame('0 * * * *', $this->event->everyFiveMinutes()->hourly()->getExpression()); - line 79: $this->assertSame('37 * * * *', $this->event->hourlyAt(37)->getExpression()); - line 80: $this->assertSame('*/10 * * * *', $this->event->hourlyAt('*/10')->getExpression()); - line 81: $this->assertSame('15,30,45 * * * *', $this->event->hourlyAt([15, 30, 45])->getExpression()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 84: public function testHourly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 20. Evidence: - line 84: public function testHourly() - line 86: $this->assertSame('0 1-23/2 * * *', $this->event->everyOddHour()->getExpression()); - line 87: $this->assertSame('0 */2 * * *', $this->event->everyTwoHours()->getExpression()); - line 88: $this->assertSame('0 */3 * * *', $this->event->everyThreeHours()->getExpression()); - line 89: $this->assertSame('0 */4 * * *', $this->event->everyFourHours()->getExpression()); - line 90: $this->assertSame('0 */6 * * *', $this->event->everySixHours()->getExpression()); - line 92: $this->assertSame('37 1-23/2 * * *', $this->event->everyOddHour(37)->getExpression()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 225: public function testFrequencyMacro() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 225: public function testFrequencyMacro() - line 228: return $this->spliceIntoPosition(1, "*/{$x}"); - line 231: $this->assertSame('*/6 * * * *', $this->event->everyXMinutes(6)->getExpression()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Console/SignalsTest.php - Test @ line 30: public function testRegister() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 30: public function testRegister() - line 32: $this->signals->register('my-signal', function () { - line 36: $this->signals->register('my-signal', function () { - line 38: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 30: public function testRegister() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 45: public function testUnregister() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 45: public function testUnregister() - line 47: $this->signals->register('my-signal', function () { - line 51: $this->signals->register('my-signal', function () { - line 55: $this->signals->unregister(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 45: public function testUnregister() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Console/View/ComponentsTest.php - Test @ line 20: public function testAlert() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 20: public function testAlert() - line 24: (new Components\Alert($output))->render('The application is in the [production] environment'); - line 28: $output->fetch() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 20: public function testAlert() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 32: public function testBulletList() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 32: public function testBulletList() - line 36: (new Components\BulletList($output))->render([ - line 41: $output = $output->fetch(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 47: public function testSuccess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 47: public function testSuccess() - line 51: (new Components\Success($output))->render('The application is in the [production] environment'); - line 53: $this->assertStringContainsString('SUCCESS The application is in the [production] environment.', $output->fetch()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 47: public function testSuccess() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 56: public function testError() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 56: public function testError() - line 60: (new Components\Error($output))->render('The application is in the [production] environment'); - line 62: $this->assertStringContainsString('ERROR The application is in the [production] environment.', $output->fetch()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 56: public function testError() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 65: public function testInfo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 65: public function testInfo() - line 69: (new Components\Info($output))->render('The application is in the [production] environment'); - line 71: $this->assertStringContainsString('INFO The application is in the [production] environment.', $output->fetch()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 65: public function testInfo() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 74: public function testConfirm() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 74: public function testConfirm() - line 76: $output = m::mock(OutputStyle::class); - line 81: ->andReturnTrue(); - line 83: $result = (new Components\Confirm($output))->render('Question?'); - line 89: ->andReturnTrue(); - line 91: $result = (new Components\Confirm($output))->render('Question?', true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 76: $output = m::mock(OutputStyle::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 74: public function testConfirm() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 95: public function testChoice() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 95: public function testChoice() - line 97: $output = m::mock(OutputStyle::class); - line 104: $result = (new Components\Choice($output))->render('Question?', ['a', 'b']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 97: $output = m::mock(OutputStyle::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 95: public function testChoice() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 108: public function testTask() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 108: public function testTask() - line 112: (new Components\Task($output))->render('My task', fn () => MigrationResult::Success->value); - line 113: $result = $output->fetch(); - line 117: (new Components\Task($output))->render('My task', fn () => MigrationResult::Failure->value); - line 118: $result = $output->fetch(); - line 122: (new Components\Task($output))->render('My task', fn () => MigrationResult::Skipped->value); - line 123: $result = $output->fetch(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 128: public function testTwoColumnDetail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 128: public function testTwoColumnDetail() - line 132: (new Components\TwoColumnDetail($output))->render('First', 'Second'); - line 133: $result = $output->fetch(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 138: public function testWarn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 138: public function testWarn() - line 142: (new Components\Warn($output))->render('The application is in the [production] environment'); - line 144: $this->assertStringContainsString('WARN The application is in the [production] environment.', $output->fetch()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 138: public function testWarn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Container/AfterResolvingAttributeCallbackTest.php - Test @ line 11: public function testCallbackIsCalledAfterDependencyResolutionWithAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 11: public function testCallbackIsCalledAfterDependencyResolutionWithAttribute() - line 15: $container->afterResolvingAttribute(ContainerTestOnTenant::class, function (ContainerTestOnTenant $attribute, HasTenantImpl $hasTenantImpl, Container $container) { - line 19: $hasTenantA = $container->make(ContainerTestHasTenantImplPropertyWithTenantA::class); - line 23: $hasTenantB = $container->make(ContainerTestHasTenantImplPropertyWithTenantB::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 28: public function testCallbackIsCalledAfterClassWithAttributeIsResolved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 28: public function testCallbackIsCalledAfterClassWithAttributeIsResolved() - line 32: $container->afterResolvingAttribute( - line 37: $instance = $container->make(ContainerTestHasBootable::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 43: public function testCallbackIsCalledAfterClassWithConstructorAndAttributeIsResolved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 43: public function testCallbackIsCalledAfterClassWithConstructorAndAttributeIsResolved() - line 47: $container->afterResolvingAttribute(ContainerTestConfiguresClass::class, function (ContainerTestConfiguresClass $attribute, $class) { - line 51: $container->when(ContainerTestHasSelfConfiguringAttributeAndConstructor::class) - line 55: $instance = $container->make(ContainerTestHasSelfConfiguringAttributeAndConstructor::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 61: public function testCallbackIsCalledOnAppCall() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 61: public function testCallbackIsCalledOnAppCall() - line 65: $container->afterResolvingAttribute(ContainerTestOnTenant::class, function (ContainerTestOnTenant $attribute, HasTenantImpl $hasTenantImpl, Container $container) { - line 69: $tenant = $container->call(function (#[ContainerTestOnTenant(Tenant::TenantA)] HasTenantImpl $property) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 61: public function testCallbackIsCalledOnAppCall() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Container/ContainerCallTest.php - Test @ line 14: public function testCallWithAtSignBasedClassReferencesWithoutMethodThrowsException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 14: public function testCallWithAtSignBasedClassReferencesWithoutMethodThrowsException() - line 16: $this->expectException(Error::class); - line 17: $this->expectExceptionMessage('Call to undefined function ContainerTestCallStub()'); - line 20: $container->call('ContainerTestCallStub'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 14: public function testCallWithAtSignBasedClassReferencesWithoutMethodThrowsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 23: public function testCallWithAtSignBasedClassReferences() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 23: public function testCallWithAtSignBasedClassReferences() - line 26: $result = $container->call(ContainerTestCallStub::class.'@work', ['foo', 'bar']); - line 30: $result = $container->call(ContainerTestCallStub::class.'@inject'); - line 35: $result = $container->call(ContainerTestCallStub::class.'@inject', ['default' => 'foo']); - line 40: $result = $container->call(ContainerTestCallStub::class, ['foo', 'bar'], 'work'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 68: public function testCallWithBoundMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 68: public function testCallWithBoundMethod() - line 71: $container->bindMethod(ContainerTestCallStub::class.'@unresolvable', function ($stub) { - line 74: $result = $container->call(ContainerTestCallStub::class.'@unresolvable'); - line 78: $container->bindMethod(ContainerTestCallStub::class.'@unresolvable', function ($stub) { - line 81: $result = $container->call([new ContainerTestCallStub, 'unresolvable']); - line 85: $result = $container->call([new ContainerTestCallStub, 'inject'], ['_stub' => 'foo', 'default' => 'bar']); - line 90: $result = $container->call([new ContainerTestCallStub, 'inject'], ['_stub' => 'foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 95: public function testBindMethodAcceptsAnArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 95: public function testBindMethodAcceptsAnArray() - line 98: $container->bindMethod([ContainerTestCallStub::class, 'unresolvable'], function ($stub) { - line 101: $result = $container->call(ContainerTestCallStub::class.'@unresolvable'); - line 105: $container->bindMethod([ContainerTestCallStub::class, 'unresolvable'], function ($stub) { - line 108: $result = $container->call([new ContainerTestCallStub, 'unresolvable']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 112: public function testClosureCallWithInjectedDependency() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 112: public function testClosureCallWithInjectedDependency() - line 115: $container->call(function (ContainerCallConcreteStub $stub) { - line 119: $container->call(function (ContainerCallConcreteStub $stub) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 112: public function testClosureCallWithInjectedDependency() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 124: public function testCallWithDependencies() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 124: public function testCallWithDependencies() - line 127: $result = $container->call(function (stdClass $foo, $bar = []) { - line 134: $result = $container->call(function (stdClass $foo, $bar = []) { - line 142: $result = $container->call(function (stdClass $foo, ContainerCallConcreteStub $bar) { - line 150: $result = $container->wrap(function (stdClass $foo, $bar = []) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 161: public function testCallWithVariadicDependency() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 161: public function testCallWithVariadicDependency() - line 167: $container->bind(ContainerCallConcreteStub::class, function () use ($stub1, $stub2) { - line 174: $result = $container->call(function (stdClass $foo, ContainerCallConcreteStub ...$bar) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 202: public function testCallWithoutRequiredParamsThrowsException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 202: public function testCallWithoutRequiredParamsThrowsException() - line 204: $this->expectException(BindingResolutionException::class); - line 205: $this->expectExceptionMessage('Unable to resolve dependency [Parameter #0 [ $foo ]] in class Illuminate\Tests\Container\ContainerTestCallStub'); - line 208: $container->call(ContainerTestCallStub::class.'@unresolvable'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 202: public function testCallWithoutRequiredParamsThrowsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 211: public function testCallWithUnnamedParametersThrowsException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 211: public function testCallWithUnnamedParametersThrowsException() - line 213: $this->expectException(BindingResolutionException::class); - line 214: $this->expectExceptionMessage('Unable to resolve dependency [Parameter #0 [ $foo ]] in class Illuminate\Tests\Container\ContainerTestCallStub'); - line 217: $container->call([new ContainerTestCallStub, 'unresolvable'], ['foo', 'bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 211: public function testCallWithUnnamedParametersThrowsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 220: public function testCallWithoutRequiredParamsOnClosureThrowsException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 220: public function testCallWithoutRequiredParamsOnClosureThrowsException() - line 222: $this->expectException(BindingResolutionException::class); - line 223: $this->expectExceptionMessage('Unable to resolve dependency [Parameter #0 [ $foo ]] in class Illuminate\Tests\Container\ContainerCallTest'); - line 226: $container->call(function ($foo, $bar = 'default') { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 220: public function testCallWithoutRequiredParamsOnClosureThrowsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Container/ContainerExtendTest.php - Test @ line 11: public function testExtendedBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 11: public function testExtendedBindings() - line 15: $container->extend('foo', function ($old, $container) { - line 19: $this->assertSame('foobar', $container->make('foo')); - line 23: $container->singleton('foo', function () { - line 26: $container->extend('foo', function ($old, $container) { - line 32: $result = $container->make('foo'); - line 36: $this->assertSame($result, $container->make('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 39: public function testExtendInstancesArePreserved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 39: public function testExtendInstancesArePreserved() - line 42: $container->bind('foo', function () { - line 51: $container->instance('foo', $obj); - line 52: $container->extend('foo', function ($obj, $container) { - line 57: $container->extend('foo', function ($obj, $container) { - line 63: $this->assertSame('foo', $container->make('foo')->foo); - line 64: $this->assertSame('baz', $container->make('foo')->bar); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 68: public function testExtendIsLazyInitialized() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 68: public function testExtendIsLazyInitialized() - line 73: $container->bind(ContainerLazyExtendStub::class); - line 74: $container->extend(ContainerLazyExtendStub::class, function ($obj, $container) { - line 80: $container->make(ContainerLazyExtendStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 68: public function testExtendIsLazyInitialized() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 84: public function testExtendCanBeCalledBeforeBind() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 84: public function testExtendCanBeCalledBeforeBind() - line 87: $container->extend('foo', function ($old, $container) { - line 92: $this->assertSame('foobar', $container->make('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 95: public function testExtendInstanceRebindingCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 95: public function testExtendInstanceRebindingCallback() - line 100: $container->rebinding('foo', function () { - line 105: $container->instance('foo', $obj); - line 107: $container->extend('foo', function ($obj, $container) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 97: $_SERVER['_test_rebind'] = false; - line 101: $_SERVER['_test_rebind'] = true; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 95: public function testExtendInstanceRebindingCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 114: public function testExtendBindRebindingCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 114: public function testExtendBindRebindingCallback() - line 119: $container->rebinding('foo', function () { - line 122: $container->bind('foo', function () { - line 128: $container->make('foo'); - line 130: $container->extend('foo', function ($obj, $container) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 116: $_SERVER['_test_rebind'] = false; - line 120: $_SERVER['_test_rebind'] = true; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 114: public function testExtendBindRebindingCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 137: public function testExtensionWorksOnAliasedBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 137: public function testExtensionWorksOnAliasedBindings() - line 140: $container->singleton('something', function () { - line 143: $container->alias('something', 'something-alias'); - line 144: $container->extend('something-alias', function ($value) { - line 148: $this->assertSame('some value extended', $container->make('something')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 151: public function testMultipleExtends() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 151: public function testMultipleExtends() - line 155: $container->extend('foo', function ($old, $container) { - line 158: $container->extend('foo', function ($old, $container) { - line 162: $this->assertSame('foobarbaz', $container->make('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 165: public function testUnsetExtend() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 165: public function testUnsetExtend() - line 168: $container->bind('foo', function () { - line 175: $container->extend('foo', function ($obj, $container) { - line 182: $container->forgetExtenders('foo'); - line 184: $container->bind('foo', function () { - line 188: $this->assertSame('foo', $container->make('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 191: public function testExtendContextualBinding() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 191: public function testExtendContextualBinding() - line 194: $container->when(ContainerExtendConsumesInterfaceStub::class) - line 198: $container->extend(ContainerExtendInterfaceStub::class, function ($instance) { - line 205: self::assertSame('bar', $container->make(ContainerExtendConsumesInterfaceStub::class)->stub->value); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 209: public function testExtendContextualBindingAfterResolution() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 209: public function testExtendContextualBindingAfterResolution() - line 212: $container->when(ContainerExtendConsumesInterfaceStub::class) - line 216: $container->make(ContainerExtendConsumesInterfaceStub::class); - line 218: $container->extend(ContainerExtendInterfaceStub::class, function ($instance) { - line 225: self::assertSame('bar', $container->make(ContainerExtendConsumesInterfaceStub::class)->stub->value); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Container/ContainerTaggingTest.php - Test @ line 10: public function testContainerTags() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 10: public function testContainerTags() - line 13: $container->tag(ContainerImplementationTaggedStub::class, 'foo', 'bar'); - line 14: $container->tag(ContainerImplementationTaggedStubTwo::class, ['foo']); - line 16: $this->assertCount(1, $container->tagged('bar')); - line 17: $this->assertCount(2, $container->tagged('foo')); - line 20: foreach ($container->tagged('foo') as $foo) { - line 25: foreach ($container->tagged('bar') as $bar) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 48: public function testTaggedServicesAreLazyLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 48: public function testTaggedServicesAreLazyLoaded() - line 50: $container = $this->createPartialMock(Container::class, ['make']); - line 51: $container->expects($this->once())->method('make')->willReturn(new ContainerImplementationTaggedStub); - line 53: $container->tag(ContainerImplementationTaggedStub::class, ['foo']); - line 54: $container->tag(ContainerImplementationTaggedStubTwo::class, ['foo']); - line 57: foreach ($container->tagged('foo') as $foo) { - line 62: $this->assertCount(2, $container->tagged('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 66: public function testLazyLoadedTaggedServicesCanBeLoopedOverMultipleTimes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 66: public function testLazyLoadedTaggedServicesCanBeLoopedOverMultipleTimes() - line 69: $container->tag(ContainerImplementationTaggedStub::class, 'foo'); - line 70: $container->tag(ContainerImplementationTaggedStubTwo::class, ['foo']); - line 72: $services = $container->tagged('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 66: public function testLazyLoadedTaggedServicesCanBeLoopedOverMultipleTimes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Container/ContainerTest.php - Test @ line 40: public function testClosureResolution() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 40: public function testClosureResolution() - line 43: $container->bind('name', function () { - line 46: $this->assertSame('Taylor', $container->make('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 49: public function testAbstractCanBeBoundFromConcreteReturnType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 49: public function testAbstractCanBeBoundFromConcreteReturnType() - line 52: $container->bind(function (): IContainerContractStub|ContainerImplementationStub { - line 55: $container->singleton(function (): ContainerConcreteStub { - line 61: $container->make(IContainerContractStub::class) - line 64: $this->assertTrue($container->isShared(ContainerConcreteStub::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 67: public function testBindIfDoesntRegisterIfServiceAlreadyRegistered() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 67: public function testBindIfDoesntRegisterIfServiceAlreadyRegistered() - line 70: $container->bind('name', function () { - line 73: $container->bindIf('name', function () { - line 77: $this->assertSame('Taylor', $container->make('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 80: public function testBindIfDoesRegisterIfServiceNotRegisteredYet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 80: public function testBindIfDoesRegisterIfServiceNotRegisteredYet() - line 83: $container->bind('surname', function () { - line 86: $container->bindIf('name', function () { - line 90: $this->assertSame('Dayle', $container->make('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 93: public function testSingletonIfDoesntRegisterIfBindingAlreadyRegistered() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 93: public function testSingletonIfDoesntRegisterIfBindingAlreadyRegistered() - line 96: $container->singleton('class', function () { - line 99: $firstInstantiation = $container->make('class'); - line 100: $container->singletonIf('class', function () { - line 103: $secondInstantiation = $container->make('class'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 107: public function testSingletonIfDoesRegisterIfBindingNotRegisteredYet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 107: public function testSingletonIfDoesRegisterIfBindingNotRegisteredYet() - line 110: $container->singleton('class', function () { - line 113: $container->singletonIf('otherClass', function () { - line 116: $firstInstantiation = $container->make('otherClass'); - line 117: $secondInstantiation = $container->make('otherClass'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 121: public function testSharedClosureResolution() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 121: public function testSharedClosureResolution() - line 124: $container->singleton('class', function () { - line 127: $firstInstantiation = $container->make('class'); - line 128: $secondInstantiation = $container->make('class'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 132: public function testScopedClosureResolution() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 132: public function testScopedClosureResolution() - line 135: $container->scoped('class', function () { - line 138: $firstInstantiation = $container->make('class'); - line 139: $secondInstantiation = $container->make('class'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 143: public function testScopedIf() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 143: public function testScopedIf() - line 146: $container->scopedIf('class', function () { - line 149: $this->assertSame('foo', $container->make('class')); - line 150: $container->scopedIf('class', function () { - line 153: $this->assertSame('foo', $container->make('class')); - line 154: $this->assertNotSame('bar', $container->make('class')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 157: public function testScopedClosureResets() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 157: public function testScopedClosureResets() - line 160: $container->scoped('class', function () { - line 163: $firstInstantiation = $container->make('class'); - line 165: $container->forgetScopedInstances(); - line 167: $secondInstantiation = $container->make('class'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 157: public function testScopedClosureResets() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 171: public function testAutoConcreteResolution() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 171: public function testAutoConcreteResolution() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 177: public function testSharedConcreteResolution() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 177: public function testSharedConcreteResolution() - line 180: $container->singleton(ContainerConcreteStub::class); - line 182: $var1 = $container->make(ContainerConcreteStub::class); - line 183: $var2 = $container->make(ContainerConcreteStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 187: public function testScopedConcreteResolutionResets() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 187: public function testScopedConcreteResolutionResets() - line 190: $container->scoped(ContainerConcreteStub::class); - line 192: $var1 = $container->make(ContainerConcreteStub::class); - line 194: $container->forgetScopedInstances(); - line 196: $var2 = $container->make(ContainerConcreteStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 187: public function testScopedConcreteResolutionResets() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 201: public function testBindFailsLoudlyWithInvalidArgument() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 201: public function testBindFailsLoudlyWithInvalidArgument() - line 203: $this->expectException(TypeError::class); - line 207: $container->bind(ContainerConcreteStub::class, $concrete); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 201: public function testBindFailsLoudlyWithInvalidArgument() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 210: public function testAbstractToConcreteResolution() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 210: public function testAbstractToConcreteResolution() - line 213: $container->bind(IContainerContractStub::class, ContainerImplementationStub::class); - line 214: $class = $container->make(ContainerDependentStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 210: public function testAbstractToConcreteResolution() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 218: public function testNestedDependencyResolution() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 218: public function testNestedDependencyResolution() - line 221: $container->bind(IContainerContractStub::class, ContainerImplementationStub::class); - line 222: $class = $container->make(ContainerNestedDependentStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 218: public function testNestedDependencyResolution() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 227: public function testContainerIsPassedToResolvers() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 227: public function testContainerIsPassedToResolvers() - line 230: $container->bind('something', function ($c) { - line 233: $c = $container->make('something'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 237: public function testArrayAccess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 237: public function testArrayAccess() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 237: public function testArrayAccess() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 260: public function testAliases() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 260: public function testAliases() - line 264: $container->alias('foo', 'baz'); - line 265: $container->alias('baz', 'bat'); - line 266: $this->assertSame('bar', $container->make('foo')); - line 267: $this->assertSame('bar', $container->make('baz')); - line 268: $this->assertSame('bar', $container->make('bat')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 271: public function testAliasesWithArrayOfParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 271: public function testAliasesWithArrayOfParameters() - line 274: $container->bind('foo', function ($app, $config) { - line 277: $container->alias('foo', 'baz'); - line 278: $this->assertEquals([1, 2, 3], $container->make('baz', [1, 2, 3])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 281: public function testBindingsCanBeOverridden() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 281: public function testBindingsCanBeOverridden() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 281: public function testBindingsCanBeOverridden() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 299: public function testBindingAnInstanceAsShared() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 299: public function testBindingAnInstanceAsShared() - line 303: $container->instance('foo', $bound); - line 304: $object = $container->make('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 316: public function testResolutionOfClassWithDefaultParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 316: public function testResolutionOfClassWithDefaultParameters() - line 319: $instance = $container->make(ContainerClassWithDefaultValueStub::class); - line 323: $container->bind(ContainerConcreteStub::class, fn () => new ContainerConcreteStub); - line 324: $instance = $container->make(ContainerClassWithDefaultValueStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 328: public function testResolutionOfClassWithDefaultParametersAndContextualBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 328: public function testResolutionOfClassWithDefaultParametersAndContextualBindings() - line 332: $container->when(ContainerClassWithDefaultValueStub::class) - line 335: $instance = $container->make(ContainerClassWithDefaultValueStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 328: public function testResolutionOfClassWithDefaultParametersAndContextualBindings() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 339: public function testBound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 339: public function testBound() - line 342: $container->bind(ContainerConcreteStub::class, function () { - line 345: $this->assertTrue($container->bound(ContainerConcreteStub::class)); - line 346: $this->assertFalse($container->bound(IContainerContractStub::class)); - line 349: $container->bind(IContainerContractStub::class, ContainerConcreteStub::class); - line 350: $this->assertTrue($container->bound(IContainerContractStub::class)); - line 351: $this->assertFalse($container->bound(ContainerConcreteStub::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 354: public function testUnsetRemoveBoundInstances() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 354: public function testUnsetRemoveBoundInstances() - line 357: $container->instance('object', new stdClass); - line 360: $this->assertFalse($container->bound('object')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 363: public function testBoundInstanceAndAliasCheckViaArrayAccess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 363: public function testBoundInstanceAndAliasCheckViaArrayAccess() - line 366: $container->instance('object', new stdClass); - line 367: $container->alias('object', 'alias'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 363: public function testBoundInstanceAndAliasCheckViaArrayAccess() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 373: public function testReboundListeners() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 373: public function testReboundListeners() - line 378: $container->bind('foo', function () { - line 381: $container->rebinding('foo', function () { - line 384: $container->bind('foo', function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 382: $_SERVER['__test.rebind'] = true; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 375: unset($_SERVER['__test.rebind']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 373: public function testReboundListeners() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 391: public function testReboundListenersOnInstances() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 391: public function testReboundListenersOnInstances() - line 396: $container->instance('foo', function () { - line 399: $container->rebinding('foo', function () { - line 402: $container->instance('foo', function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 400: $_SERVER['__test.rebind'] = true; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 393: unset($_SERVER['__test.rebind']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 391: public function testReboundListenersOnInstances() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 409: public function testReboundListenersOnInstancesOnlyFiresIfWasAlreadyBound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 409: public function testReboundListenersOnInstancesOnlyFiresIfWasAlreadyBound() - line 414: $container->rebinding('foo', function () { - line 417: $container->instance('foo', function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 411: $_SERVER['__test.rebind'] = false; - line 415: $_SERVER['__test.rebind'] = true; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 409: public function testReboundListenersOnInstancesOnlyFiresIfWasAlreadyBound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 424: public function testInternalClassWithDefaultParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 424: public function testInternalClassWithDefaultParameters() - line 426: $this->expectException(BindingResolutionException::class); - line 427: $this->expectExceptionMessage('Unresolvable dependency resolving [Parameter #0 [ $first ]] in class Illuminate\Tests\Container\ContainerMixedPrimitiveStub'); - line 430: $container->make(ContainerMixedPrimitiveStub::class, []); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 424: public function testInternalClassWithDefaultParameters() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 433: public function testBindingResolutionExceptionMessage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 433: public function testBindingResolutionExceptionMessage() - line 435: $this->expectException(BindingResolutionException::class); - line 436: $this->expectExceptionMessage('Target [Illuminate\Tests\Container\IContainerContractStub] is not instantiable.'); - line 439: $container->make(IContainerContractStub::class, []); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 433: public function testBindingResolutionExceptionMessage() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 442: public function testBindingResolutionExceptionMessageIncludesBuildStack() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 442: public function testBindingResolutionExceptionMessageIncludesBuildStack() - line 444: $this->expectException(BindingResolutionException::class); - line 445: $this->expectExceptionMessage('Target [Illuminate\Tests\Container\IContainerContractStub] is not instantiable while building [Illuminate\Tests\Container\ContainerDependentStub].'); - line 448: $container->make(ContainerDependentStub::class, []); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 442: public function testBindingResolutionExceptionMessageIncludesBuildStack() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 451: public function testBindingResolutionExceptionMessageWhenClassDoesNotExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 451: public function testBindingResolutionExceptionMessageWhenClassDoesNotExist() - line 453: $this->expectException(BindingResolutionException::class); - line 454: $this->expectExceptionMessage('Target class [Foo\Bar\Baz\DummyClass] does not exist.'); - line 457: $container->build('Foo\Bar\Baz\DummyClass'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 451: public function testBindingResolutionExceptionMessageWhenClassDoesNotExist() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 460: public function testForgetInstanceForgetsInstance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 460: public function testForgetInstanceForgetsInstance() - line 464: $container->instance(ContainerConcreteStub::class, $containerConcreteStub); - line 465: $this->assertTrue($container->isShared(ContainerConcreteStub::class)); - line 466: $container->forgetInstance(ContainerConcreteStub::class); - line 467: $this->assertFalse($container->isShared(ContainerConcreteStub::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 470: public function testForgetInstancesForgetsAllInstances() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 470: public function testForgetInstancesForgetsAllInstances() - line 476: $container->instance('Instance1', $containerConcreteStub1); - line 477: $container->instance('Instance2', $containerConcreteStub2); - line 478: $container->instance('Instance3', $containerConcreteStub3); - line 479: $this->assertTrue($container->isShared('Instance1')); - line 480: $this->assertTrue($container->isShared('Instance2')); - line 481: $this->assertTrue($container->isShared('Instance3')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 488: public function testContainerFlushFlushesAllBindingsAliasesAndResolvedInstances() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 488: public function testContainerFlushFlushesAllBindingsAliasesAndResolvedInstances() - line 491: $container->bind('ConcreteStub', function () { - line 494: $container->alias('ConcreteStub', 'ContainerConcreteStub'); - line 495: $container->make('ConcreteStub'); - line 496: $this->assertTrue($container->resolved('ConcreteStub')); - line 497: $this->assertTrue($container->isAlias('ContainerConcreteStub')); - line 498: $this->assertArrayHasKey('ConcreteStub', $container->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 507: public function testResolvedResolvesAliasToBindingNameBeforeChecking() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 507: public function testResolvedResolvesAliasToBindingNameBeforeChecking() - line 510: $container->bind('ConcreteStub', function () { - line 513: $container->alias('ConcreteStub', 'foo'); - line 515: $this->assertFalse($container->resolved('ConcreteStub')); - line 516: $this->assertFalse($container->resolved('foo')); - line 518: $container->make('ConcreteStub'); - line 520: $this->assertTrue($container->resolved('ConcreteStub')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 524: public function testGetAlias() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 524: public function testGetAlias() - line 527: $container->alias('ConcreteStub', 'foo'); - line 528: $this->assertSame('ConcreteStub', $container->getAlias('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 531: public function testCurrentlyResolving() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 531: public function testCurrentlyResolving() - line 535: $container->afterResolvingAttribute(ContainerCurrentResolvingAttribute::class, function ($attr, $instance, $container) { - line 539: $container->when(ContainerCurrentResolvingConcrete::class) - line 543: $resolved = $container->make(ContainerCurrentResolvingConcrete::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 548: public function testGetAliasRecursive() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 548: public function testGetAliasRecursive() - line 551: $container->alias('ConcreteStub', 'foo'); - line 552: $container->alias('foo', 'bar'); - line 553: $container->alias('bar', 'baz'); - line 554: $this->assertSame('ConcreteStub', $container->getAlias('baz')); - line 555: $this->assertTrue($container->isAlias('baz')); - line 556: $this->assertTrue($container->isAlias('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 560: public function testItThrowsExceptionWhenAbstractIsSameAsAlias() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 560: public function testItThrowsExceptionWhenAbstractIsSameAsAlias() - line 562: $this->expectException('LogicException'); - line 563: $this->expectExceptionMessage('[name] is aliased to itself.'); - line 566: $container->alias('name', 'name'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 560: public function testItThrowsExceptionWhenAbstractIsSameAsAlias() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 569: public function testContainerGetFactory() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 569: public function testContainerGetFactory() - line 572: $container->bind('name', function () { - line 576: $factory = $container->factory('name'); - line 577: $this->assertEquals($container->make('name'), $factory()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 580: public function testMakeWithMethodIsAnAliasForMakeMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 580: public function testMakeWithMethodIsAnAliasForMakeMethod() - line 582: $mock = $this->getMockBuilder(Container::class) - line 587: ->method('make') - line 591: $result = $mock->makeWith(ContainerDefaultValueStub::class, ['default' => 'laurence']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 580: public function testMakeWithMethodIsAnAliasForMakeMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 596: public function testResolvingWithArrayOfParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 596: public function testResolvingWithArrayOfParameters() - line 599: $instance = $container->make(ContainerDefaultValueStub::class, ['default' => 'adam']); - line 602: $instance = $container->make(ContainerDefaultValueStub::class); - line 605: $container->bind('foo', function ($app, $config) { - line 609: $this->assertEquals([1, 2, 3], $container->make('foo', [1, 2, 3])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 622: public function testResolvingWithUsingAnInterface() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 622: public function testResolvingWithUsingAnInterface() - line 625: $container->bind(IContainerContractStub::class, ContainerInjectVariableStubWithInterfaceImplementation::class); - line 626: $instance = $container->make(IContainerContractStub::class, ['something' => 'laurence']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 630: public function testNestedParameterOverride() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 630: public function testNestedParameterOverride() - line 633: $container->bind('foo', function ($app, $config) { - line 636: $container->bind('bar', function ($app, $config) { - line 640: $this->assertEquals(['name' => 'Taylor'], $container->make('foo', ['something'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 643: public function testNestedParametersAreResetForFreshMake() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 643: public function testNestedParametersAreResetForFreshMake() - line 647: $container->bind('foo', function ($app, $config) { - line 651: $container->bind('bar', function ($app, $config) { - line 655: $this->assertEquals([], $container->make('foo', ['something'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 658: public function testSingletonBindingsNotRespectedWithMakeParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 658: public function testSingletonBindingsNotRespectedWithMakeParameters() - line 662: $container->singleton('foo', function ($app, $config) { - line 666: $this->assertEquals(['name' => 'taylor'], $container->make('foo', ['name' => 'taylor'])); - line 667: $this->assertEquals(['name' => 'abigail'], $container->make('foo', ['name' => 'abigail'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 670: public function testCanBuildWithoutParameterStackWithNoConstructors() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 670: public function testCanBuildWithoutParameterStackWithNoConstructors() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 676: public function testCanBuildWithoutParameterStackWithConstructors() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 676: public function testCanBuildWithoutParameterStackWithConstructors() - line 679: $container->bind(IContainerContractStub::class, ContainerImplementationStub::class); - line 680: $this->assertInstanceOf(ContainerDependentStub::class, $container->build(ContainerDependentStub::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 676: public function testCanBuildWithoutParameterStackWithConstructors() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 683: public function testContainerKnowsEntry() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 683: public function testContainerKnowsEntry() - line 686: $container->bind(IContainerContractStub::class, ContainerImplementationStub::class); - line 687: $this->assertTrue($container->has(IContainerContractStub::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 690: public function testContainerCanBindAnyWord() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 690: public function testContainerCanBindAnyWord() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 697: public function testContainerCanDynamicallySetService() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 697: public function testContainerCanDynamicallySetService() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 697: public function testContainerCanDynamicallySetService() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 706: public function testUnknownEntryThrowsException() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 706: public function testUnknownEntryThrowsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 714: public function testBoundEntriesThrowsContainerExceptionWhenNotResolvable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 714: public function testBoundEntriesThrowsContainerExceptionWhenNotResolvable() - line 716: $this->expectException(ContainerExceptionInterface::class); - line 719: $container->bind('Taylor', IContainerContractStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 714: public function testBoundEntriesThrowsContainerExceptionWhenNotResolvable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 724: public function testContainerCanResolveClasses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 724: public function testContainerCanResolveClasses() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 724: public function testContainerCanResolveClasses() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 732: public function testMethodLevelContextualBinding() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 732: public function testMethodLevelContextualBinding() - line 736: $container->bind(IContainerContractStub::class, ContainerImplementationStubTwo::class); - line 738: $container->when(ContainerContextualBindingCallTarget::class) - line 742: $result = $container->call([new ContainerContextualBindingCallTarget, 'work']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 732: public function testMethodLevelContextualBinding() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 747: public function testContainerSingletonAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 747: public function testContainerSingletonAttribute() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 781: public function testBindInterfaceToScoped() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 781: public function testBindInterfaceToScoped() - line 784: $container->resolveEnvironmentUsing(fn ($arr) => $arr === ['test']); - line 791: $container->resolveEnvironmentUsing(fn ($arr) => $arr === ['test2']); - line 795: $container->forgetScopedInstances(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 879: public function testScopedSingletonWithBind() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 879: public function testScopedSingletonWithBind() - line 882: $container->resolveEnvironmentUsing(fn ($environments) => true); - line 884: $original = $container->make(IsScoped::class); - line 885: $new = $container->make(IsScoped::class); - line 888: $container->forgetScopedInstances(); - line 889: $this->assertNotSame($original, $container->make(IsScoped::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 892: public function testSingletonWithBind() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 892: public function testSingletonWithBind() - line 895: $container->resolveEnvironmentUsing(fn ($environments) => true); - line 897: $original = $container->make(IsSingleton::class); - line 898: $new = $container->make(IsSingleton::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 903: public function testWithFactoryHasDependency() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 903: public function testWithFactoryHasDependency() - line 909: $container->bind(RequestDtoDependencyContract::class, RequestDtoDependency::class); - line 910: $r = $container->make(RequestDto::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 906: $_SERVER['__withFactory.email'] = 'taylor@laravel.com'; - line 907: $_SERVER['__withFactory.userId'] = 999; ❌ tests/Container/ContextualAttributeBindingTest.php - Test @ line 46: public function testDependencyCanBeResolvedFromAttributeBinding() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 46: public function testDependencyCanBeResolvedFromAttributeBinding() - line 50: $container->bind(ContainerTestContract::class, fn (): ContainerTestImplB => new ContainerTestImplB); - line 51: $container->whenHasAttribute(ContainerTestAttributeThatResolvesContractImpl::class, function (ContainerTestAttributeThatResolvesContractImpl $attribute) { - line 58: $classA = $container->make(ContainerTestHasAttributeThatResolvesToImplA::class); - line 63: $classB = $container->make(ContainerTestHasAttributeThatResolvesToImplB::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 46: public function testDependencyCanBeResolvedFromAttributeBinding() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 69: public function testSimpleDependencyCanBeResolvedCorrectlyFromGiveAttributeBinding() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 69: public function testSimpleDependencyCanBeResolvedCorrectlyFromGiveAttributeBinding() - line 73: $container->bind(ContainerTestContract::class, concrete: ContainerTestImplA::class); - line 75: $resolution = $container->make(GiveTestSimple::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 69: public function testSimpleDependencyCanBeResolvedCorrectlyFromGiveAttributeBinding() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 80: public function testComplexDependencyCanBeResolvedCorrectlyFromGiveAttributeBinding() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 80: public function testComplexDependencyCanBeResolvedCorrectlyFromGiveAttributeBinding() - line 84: $container->bind(ContainerTestContract::class, concrete: ContainerTestImplA::class); - line 86: $resolution = $container->make(GiveTestComplex::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 92: public function testScalarDependencyCanBeResolvedFromAttributeBinding() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 92: public function testScalarDependencyCanBeResolvedFromAttributeBinding() - line 95: $container->singleton('config', fn () => new Repository([ - line 101: $container->whenHasAttribute(ContainerTestConfigValue::class, function (ContainerTestConfigValue $attribute, Container $container) { - line 105: $class = $container->make(ContainerTestHasConfigValueProperty::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 111: public function testScalarDependencyCanBeResolvedFromAttributeResolveMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 111: public function testScalarDependencyCanBeResolvedFromAttributeResolveMethod() - line 114: $container->singleton('config', fn () => new Repository([ - line 120: $class = $container->make(ContainerTestHasConfigValueWithResolveProperty::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 135: public function testAuthedAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 135: public function testAuthedAttribute() - line 138: $container->singleton('auth', function () { - line 157: $container->make(AuthedTest::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 139: $manager = m::mock(AuthManager::class); - line 142: $guard = m::mock(GuardContract::class); - line 143: $guard->shouldReceive('user')->andReturn(m:mock(AuthenticatableContract::class)); - line 148: $guard = m::mock(GuardContract::class); - line 149: $guard->shouldReceive('user')->andReturn(m:mock(AuthenticatableContract::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 135: public function testAuthedAttribute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 160: public function testCacheAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 160: public function testCacheAttribute() - line 163: $container->singleton('cache', function () { - line 171: $container->make(CacheTest::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 164: $manager = m::mock(CacheManager::class); - line 165: $manager->shouldReceive('store')->with('foo')->andReturn(m::mock(CacheRepository::class)); - line 166: $manager->shouldReceive('store')->with('bar')->andReturn(m::mock(CacheRepository::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 160: public function testCacheAttribute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 174: public function testConfigAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 174: public function testConfigAttribute() - line 177: $container->singleton('config', function () { - line 185: $container->make(ConfigTest::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 178: $repository = m::mock(Repository::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 174: public function testConfigAttribute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 188: public function testDatabaseAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 188: public function testDatabaseAttribute() - line 191: $container->singleton('db', function () { - line 199: $container->make(DatabaseTest::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 192: $manager = m::mock(DatabaseManager::class); - line 193: $manager->shouldReceive('connection')->with('foo')->andReturn(m::mock(Connection::class)); - line 194: $manager->shouldReceive('connection')->with('bar')->andReturn(m::mock(Connection::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 188: public function testDatabaseAttribute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 202: public function testAuthAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 202: public function testAuthAttribute() - line 205: $container->singleton('auth', function () { - line 213: $container->make(GuardTest::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 206: $manager = m::mock(AuthManager::class); - line 207: $manager->shouldReceive('guard')->with('foo')->andReturn(m::mock(GuardContract::class)); - line 208: $manager->shouldReceive('guard')->with('bar')->andReturn(m::mock(GuardContract::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 202: public function testAuthAttribute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 216: public function testLogAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 216: public function testLogAttribute() - line 219: $container->singleton('log', function () { - line 227: $container->make(LogTest::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 220: $manager = m::mock(LogManager::class); - line 221: $manager->shouldReceive('channel')->with('foo')->andReturn(m::mock(LoggerInterface::class)); - line 222: $manager->shouldReceive('channel')->with('bar')->andReturn(m::mock(LoggerInterface::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 216: public function testLogAttribute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 230: public function testRouteParameterAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 230: public function testRouteParameterAttribute() - line 233: $container->singleton('request', function () { - line 241: $container->make(RouteParameterTest::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 234: $request = m::mock(Request::class); - line 235: $request->shouldReceive('route')->with('foo')->andReturn(m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 230: public function testRouteParameterAttribute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 273: public function testStorageAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 273: public function testStorageAttribute() - line 276: $container->singleton('filesystem', function () { - line 284: $container->make(StorageTest::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 277: $manager = m::mock(FilesystemManager::class); - line 278: $manager->shouldReceive('disk')->with('foo')->andReturn(m::mock(Filesystem::class)); - line 279: $manager->shouldReceive('disk')->with('bar')->andReturn(m::mock(Filesystem::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 273: public function testStorageAttribute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 298: public function testAttributeOnAppCall() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 298: public function testAttributeOnAppCall() - line 301: $container->singleton('config', fn () => new Repository([ - line 308: $value = $container->call(function (#[Config('app.timezone')] string $value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 298: public function testAttributeOnAppCall() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 321: public function testNestedAttributeOnAppCall() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 321: public function testNestedAttributeOnAppCall() - line 324: $container->singleton('config', fn () => new Repository([ - line 331: $value = $container->call(function (TimezoneObject $object) { - line 337: $value = $container->call(function (LocaleObject $object) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 344: public function testTagAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 344: public function testTagAttribute() - line 347: $container->bind('one', fn (): int => 1); - line 348: $container->bind('two', fn (): int => 2); - line 349: $container->tag(['one', 'two'], 'numbers'); - line 351: $value = $container->call(function (#[Tag('numbers')] RewindableGenerator $integers) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 344: public function testTagAttribute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Container/ContextualBindingTest.php - Test @ line 11: public function testContainerCanInjectDifferentImplementationsDependingOnContext() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 11: public function testContainerCanInjectDifferentImplementationsDependingOnContext() - line 15: $container->bind(IContainerContextContractStub::class, ContainerContextImplementationStub::class); - line 17: $container->when(ContainerTestContextInjectOne::class)->needs(IContainerContextContractStub::class)->give(ContainerContextImplementationStub::class); - line 18: $container->when(ContainerTestContextInjectTwo::class)->needs(IContainerContextContractStub::class)->give(ContainerContextImplementationStubTwo::class); - line 20: $one = $container->make(ContainerTestContextInjectOne::class); - line 21: $two = $container->make(ContainerTestContextInjectTwo::class); - line 29: $container->bind(IContainerContextContractStub::class, ContainerContextImplementationStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 11: public function testContainerCanInjectDifferentImplementationsDependingOnContext() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 56: public function testContextualBindingWorksForExistingInstancedBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 56: public function testContextualBindingWorksForExistingInstancedBindings() - line 60: $container->instance(IContainerContextContractStub::class, new ContainerImplementationStub); - line 62: $container->when(ContainerTestContextInjectOne::class)->needs(IContainerContextContractStub::class)->give(ContainerContextImplementationStubTwo::class); - line 64: $this->assertInstanceOf(ContainerContextImplementationStubTwo::class, $container->make(ContainerTestContextInjectOne::class)->impl); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 56: public function testContextualBindingWorksForExistingInstancedBindings() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 67: public function testContextualBindingWorksForNewlyInstancedBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 67: public function testContextualBindingWorksForNewlyInstancedBindings() - line 71: $container->when(ContainerTestContextInjectOne::class)->needs(IContainerContextContractStub::class)->give(ContainerContextImplementationStubTwo::class); - line 73: $container->instance(IContainerContextContractStub::class, new ContainerImplementationStub); - line 77: $container->make(ContainerTestContextInjectOne::class)->impl Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 67: public function testContextualBindingWorksForNewlyInstancedBindings() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 81: public function testContextualBindingWorksOnExistingAliasedInstances() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 81: public function testContextualBindingWorksOnExistingAliasedInstances() - line 85: $container->instance('stub', new ContainerImplementationStub); - line 86: $container->alias('stub', IContainerContextContractStub::class); - line 88: $container->when(ContainerTestContextInjectOne::class)->needs(IContainerContextContractStub::class)->give(ContainerContextImplementationStubTwo::class); - line 92: $container->make(ContainerTestContextInjectOne::class)->impl Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 81: public function testContextualBindingWorksOnExistingAliasedInstances() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 96: public function testContextualBindingWorksOnNewAliasedInstances() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 96: public function testContextualBindingWorksOnNewAliasedInstances() - line 100: $container->when(ContainerTestContextInjectOne::class)->needs(IContainerContextContractStub::class)->give(ContainerContextImplementationStubTwo::class); - line 102: $container->instance('stub', new ContainerImplementationStub); - line 103: $container->alias('stub', IContainerContextContractStub::class); - line 107: $container->make(ContainerTestContextInjectOne::class)->impl Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 96: public function testContextualBindingWorksOnNewAliasedInstances() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 111: public function testContextualBindingWorksOnNewAliasedBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 111: public function testContextualBindingWorksOnNewAliasedBindings() - line 115: $container->when(ContainerTestContextInjectOne::class)->needs(IContainerContextContractStub::class)->give(ContainerContextImplementationStubTwo::class); - line 117: $container->bind('stub', ContainerContextImplementationStub::class); - line 118: $container->alias('stub', IContainerContextContractStub::class); - line 122: $container->make(ContainerTestContextInjectOne::class)->impl Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 111: public function testContextualBindingWorksOnNewAliasedBindings() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 126: public function testContextualBindingDoesNotFollowStaleAliases() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 126: public function testContextualBindingDoesNotFollowStaleAliases() - line 130: $container->when(ContainerTestContextInjectOne::class)->needs('stale')->give(ContainerContextImplementationStub::class); - line 131: $container->when(ContainerTestContextInjectOne::class)->needs('live')->give(ContainerContextImplementationStubTwo::class); - line 133: $container->alias(IContainerContextContractStub::class, 'stale'); - line 134: $container->alias('unrelated', 'stale'); - line 135: $container->alias(IContainerContextContractStub::class, 'live'); - line 139: $container->make(ContainerTestContextInjectOne::class)->impl Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 126: public function testContextualBindingDoesNotFollowStaleAliases() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 143: public function testContextualBindingWorksForMultipleClasses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 143: public function testContextualBindingWorksForMultipleClasses() - line 147: $container->bind(IContainerContextContractStub::class, ContainerContextImplementationStub::class); - line 149: $container->when([ContainerTestContextInjectTwo::class, ContainerTestContextInjectThree::class])->needs(IContainerContextContractStub::class)->give(ContainerContextImplementationStubTwo::class); - line 153: $container->make(ContainerTestContextInjectOne::class)->impl - line 158: $container->make(ContainerTestContextInjectTwo::class)->impl - line 163: $container->make(ContainerTestContextInjectThree::class)->impl Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 143: public function testContextualBindingWorksForMultipleClasses() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 167: public function testContextualBindingDoesntOverrideNonContextualResolution() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 167: public function testContextualBindingDoesntOverrideNonContextualResolution() - line 171: $container->instance('stub', new ContainerContextImplementationStub); - line 172: $container->alias('stub', IContainerContextContractStub::class); - line 174: $container->when(ContainerTestContextInjectTwo::class)->needs(IContainerContextContractStub::class)->give(ContainerContextImplementationStubTwo::class); - line 178: $container->make(ContainerTestContextInjectTwo::class)->impl - line 183: $container->make(ContainerTestContextInjectOne::class)->impl Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 167: public function testContextualBindingDoesntOverrideNonContextualResolution() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 187: public function testContextuallyBoundInstancesAreNotUnnecessarilyRecreated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 187: public function testContextuallyBoundInstancesAreNotUnnecessarilyRecreated() - line 193: $container->instance(IContainerContextContractStub::class, new ContainerImplementationStub); - line 194: $container->instance(ContainerTestContextInjectInstantiations::class, new ContainerTestContextInjectInstantiations); - line 198: $container->when(ContainerTestContextInjectOne::class)->needs(IContainerContextContractStub::class)->give(ContainerTestContextInjectInstantiations::class); - line 200: $container->make(ContainerTestContextInjectOne::class); - line 201: $container->make(ContainerTestContextInjectOne::class); - line 202: $container->make(ContainerTestContextInjectOne::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 187: public function testContextuallyBoundInstancesAreNotUnnecessarilyRecreated() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 208: public function testContainerCanInjectSimpleVariable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 208: public function testContainerCanInjectSimpleVariable() - line 211: $container->when(ContainerInjectVariableStub::class)->needs('$something')->give(100); - line 212: $instance = $container->make(ContainerInjectVariableStub::class); - line 216: $container->when(ContainerInjectVariableStub::class)->needs('$something')->give(function ($container) { - line 219: $instance = $container->make(ContainerInjectVariableStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 223: public function testContextualBindingWorksWithAliasedTargets() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 223: public function testContextualBindingWorksWithAliasedTargets() - line 227: $container->bind(IContainerContextContractStub::class, ContainerContextImplementationStub::class); - line 228: $container->alias(IContainerContextContractStub::class, 'interface-stub'); - line 230: $container->alias(ContainerContextImplementationStub::class, 'stub-1'); - line 232: $container->when(ContainerTestContextInjectOne::class)->needs('interface-stub')->give('stub-1'); - line 233: $container->when(ContainerTestContextInjectTwo::class)->needs('interface-stub')->give(ContainerContextImplementationStubTwo::class); - line 235: $one = $container->make(ContainerTestContextInjectOne::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 223: public function testContextualBindingWorksWithAliasedTargets() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 242: public function testContextualBindingWorksForNestedOptionalDependencies() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 242: public function testContextualBindingWorksForNestedOptionalDependencies() - line 246: $container->when(ContainerTestContextInjectTwoInstances::class)->needs(ContainerTestContextInjectTwo::class)->give(function () { - line 250: $resolvedInstance = $container->make(ContainerTestContextInjectTwoInstances::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 242: public function testContextualBindingWorksForNestedOptionalDependencies() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 264: public function testContextualBindingWorksForVariadicDependencies() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 264: public function testContextualBindingWorksForVariadicDependencies() - line 268: $container->when(ContainerTestContextInjectVariadic::class)->needs(IContainerContextContractStub::class)->give(function ($c) { - line 275: $resolvedInstance = $container->make(ContainerTestContextInjectVariadic::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 291: public function testContextualBindingWorksForVariadicAfterNonVariadicDependencies() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 291: public function testContextualBindingWorksForVariadicAfterNonVariadicDependencies() - line 295: $container->when(ContainerTestContextInjectVariadicAfterNonVariadic::class)->needs(IContainerContextContractStub::class)->give(function ($c) { - line 302: $resolvedInstance = $container->make(ContainerTestContextInjectVariadicAfterNonVariadic::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 318: public function testContextualBindingWorksForVariadicDependenciesWithoutFactory() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 318: public function testContextualBindingWorksForVariadicDependenciesWithoutFactory() - line 322: $container->when(ContainerTestContextInjectVariadic::class)->needs(IContainerContextContractStub::class)->give([ - line 327: $resolvedInstance = $container->make(ContainerTestContextInjectVariadic::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 334: public function testContextualBindingGivesTagsForArrayWithNoTagsDefined() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 334: public function testContextualBindingGivesTagsForArrayWithNoTagsDefined() - line 338: $container->when(ContainerTestContextInjectArray::class)->needs('$stubs')->giveTagged('stub'); - line 340: $resolvedInstance = $container->make(ContainerTestContextInjectArray::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 345: public function testContextualBindingGivesTagsForVariadicWithNoTagsDefined() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 345: public function testContextualBindingGivesTagsForVariadicWithNoTagsDefined() - line 349: $container->when(ContainerTestContextInjectVariadic::class)->needs(IContainerContextContractStub::class)->giveTagged('stub'); - line 351: $resolvedInstance = $container->make(ContainerTestContextInjectVariadic::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 356: public function testContextualBindingGivesTagsForArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 356: public function testContextualBindingGivesTagsForArray() - line 360: $container->tag([ - line 365: $container->when(ContainerTestContextInjectArray::class)->needs('$stubs')->giveTagged('stub'); - line 367: $resolvedInstance = $container->make(ContainerTestContextInjectArray::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 374: public function testContextualBindingGivesTagsForVariadic() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 374: public function testContextualBindingGivesTagsForVariadic() - line 378: $container->tag([ - line 383: $container->when(ContainerTestContextInjectVariadic::class)->needs(IContainerContextContractStub::class)->giveTagged('stub'); - line 385: $resolvedInstance = $container->make(ContainerTestContextInjectVariadic::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 392: public function testContextualBindingGivesValuesFromConfigOptionalValueNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 392: public function testContextualBindingGivesValuesFromConfigOptionalValueNull() - line 396: $container->singleton('config', function () { - line 406: ->when(ContainerTestContextInjectFromConfigIndividualValues::class) - line 411: ->when(ContainerTestContextInjectFromConfigIndividualValues::class) - line 415: $resolvedInstance = $container->make(ContainerTestContextInjectFromConfigIndividualValues::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 422: public function testContextualBindingGivesValuesFromConfigOptionalValueSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 422: public function testContextualBindingGivesValuesFromConfigOptionalValueSet() - line 426: $container->singleton('config', function () { - line 437: ->when(ContainerTestContextInjectFromConfigIndividualValues::class) - line 442: ->when(ContainerTestContextInjectFromConfigIndividualValues::class) - line 447: ->when(ContainerTestContextInjectFromConfigIndividualValues::class) - line 451: $resolvedInstance = $container->make(ContainerTestContextInjectFromConfigIndividualValues::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 458: public function testContextualBindingGivesValuesFromConfigWithDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 458: public function testContextualBindingGivesValuesFromConfigWithDefault() - line 462: $container->singleton('config', function () { - line 471: ->when(ContainerTestContextInjectFromConfigIndividualValues::class) - line 476: ->when(ContainerTestContextInjectFromConfigIndividualValues::class) - line 480: $resolvedInstance = $container->make(ContainerTestContextInjectFromConfigIndividualValues::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 487: public function testContextualBindingGivesValuesFromConfigArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 487: public function testContextualBindingGivesValuesFromConfigArray() - line 491: $container->singleton('config', function () { - line 502: ->when(ContainerTestContextInjectFromConfigArray::class) - line 506: $resolvedInstance = $container->make(ContainerTestContextInjectFromConfigArray::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 513: public function testContextualBindingWorksForMethodInvocation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 513: public function testContextualBindingWorksForMethodInvocation() - line 518: ->when(ContainerTestContextInjectMethodArgument::class) - line 525: $valueResolvedUsingArraySyntax = $container->call([$object, 'method']); - line 529: $valueResolvedUsingFirstClassSyntax = $container->call($object->method(...)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 513: public function testContextualBindingWorksForMethodInvocation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Container/ResolvingCallbackTest.php - Test @ line 11: public function testResolvingCallbacksAreCalledForSpecificAbstracts() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 11: public function testResolvingCallbacksAreCalledForSpecificAbstracts() - line 14: $container->resolving('foo', function ($object) { - line 17: $container->bind('foo', function () { - line 20: $instance = $container->make('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 25: public function testResolvingCallbacksAreCalled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 25: public function testResolvingCallbacksAreCalled() - line 28: $container->resolving(function ($object) { - line 31: $container->bind('foo', function () { - line 34: $instance = $container->make('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 39: public function testResolvingCallbacksAreCalledForType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 39: public function testResolvingCallbacksAreCalledForType() - line 42: $container->resolving(stdClass::class, function ($object) { - line 45: $container->bind('foo', function () { - line 48: $instance = $container->make('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 53: public function testResolvingCallbacksShouldBeFiredWhenCalledWithAliases() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 53: public function testResolvingCallbacksShouldBeFiredWhenCalledWithAliases() - line 56: $container->alias(stdClass::class, 'std'); - line 57: $container->resolving('std', function ($object) { - line 60: $container->bind('foo', function () { - line 63: $instance = $container->make('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 68: public function testResolvingCallbacksAreCalledOnceForImplementation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 68: public function testResolvingCallbacksAreCalledOnceForImplementation() - line 73: $container->resolving(ResolvingContractStub::class, function () use (&$callCounter) { - line 77: $container->bind(ResolvingContractStub::class, ResolvingImplementationStub::class); - line 79: $container->make(ResolvingImplementationStub::class); - line 82: $container->make(ResolvingImplementationStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 68: public function testResolvingCallbacksAreCalledOnceForImplementation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 86: public function testGlobalResolvingCallbacksAreCalledOnceForImplementation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 86: public function testGlobalResolvingCallbacksAreCalledOnceForImplementation() - line 91: $container->resolving(function () use (&$callCounter) { - line 95: $container->bind(ResolvingContractStub::class, ResolvingImplementationStub::class); - line 97: $container->make(ResolvingImplementationStub::class); - line 100: $container->make(ResolvingContractStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 86: public function testGlobalResolvingCallbacksAreCalledOnceForImplementation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 104: public function testResolvingCallbacksAreCalledOnceForSingletonConcretes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 104: public function testResolvingCallbacksAreCalledOnceForSingletonConcretes() - line 109: $container->resolving(ResolvingContractStub::class, function () use (&$callCounter) { - line 113: $container->bind(ResolvingContractStub::class, ResolvingImplementationStub::class); - line 114: $container->bind(ResolvingImplementationStub::class); - line 116: $container->make(ResolvingImplementationStub::class); - line 119: $container->make(ResolvingImplementationStub::class); - line 122: $container->make(ResolvingContractStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 104: public function testResolvingCallbacksAreCalledOnceForSingletonConcretes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 126: public function testResolvingCallbacksCanStillBeAddedAfterTheFirstResolution() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 126: public function testResolvingCallbacksCanStillBeAddedAfterTheFirstResolution() - line 130: $container->bind(ResolvingContractStub::class, ResolvingImplementationStub::class); - line 132: $container->make(ResolvingImplementationStub::class); - line 135: $container->resolving(ResolvingContractStub::class, function () use (&$callCounter) { - line 139: $container->make(ResolvingImplementationStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 126: public function testResolvingCallbacksCanStillBeAddedAfterTheFirstResolution() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 143: public function testResolvingCallbacksAreCanceledWhenInterfaceGetsBoundToSomeOtherConcrete() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 143: public function testResolvingCallbacksAreCanceledWhenInterfaceGetsBoundToSomeOtherConcrete() - line 147: $container->bind(ResolvingContractStub::class, ResolvingImplementationStub::class); - line 150: $container->resolving(ResolvingImplementationStub::class, function () use (&$callCounter) { - line 154: $container->make(ResolvingContractStub::class); - line 157: $container->bind(ResolvingContractStub::class, ResolvingImplementationStubTwo::class); - line 158: $container->make(ResolvingContractStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 143: public function testResolvingCallbacksAreCanceledWhenInterfaceGetsBoundToSomeOtherConcrete() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 162: public function testResolvingCallbacksAreCalledOnceForStringAbstractions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 162: public function testResolvingCallbacksAreCalledOnceForStringAbstractions() - line 167: $container->resolving('foo', function () use (&$callCounter) { - line 171: $container->bind('foo', ResolvingImplementationStub::class); - line 173: $container->make('foo'); - line 176: $container->make('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 162: public function testResolvingCallbacksAreCalledOnceForStringAbstractions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 180: public function testResolvingCallbacksForConcretesAreCalledOnceForStringAbstractions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 180: public function testResolvingCallbacksForConcretesAreCalledOnceForStringAbstractions() - line 185: $container->resolving(ResolvingImplementationStub::class, function () use (&$callCounter) { - line 189: $container->bind('foo', ResolvingImplementationStub::class); - line 190: $container->bind('bar', ResolvingImplementationStub::class); - line 191: $container->bind(ResolvingContractStub::class, ResolvingImplementationStub::class); - line 193: $container->make(ResolvingImplementationStub::class); - line 196: $container->make('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 180: public function testResolvingCallbacksForConcretesAreCalledOnceForStringAbstractions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 206: public function testResolvingCallbacksAreCalledOnceForImplementation2() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 206: public function testResolvingCallbacksAreCalledOnceForImplementation2() - line 211: $container->resolving(ResolvingContractStub::class, function () use (&$callCounter) { - line 215: $container->bind(ResolvingContractStub::class, function () { - line 219: $container->make(ResolvingContractStub::class); - line 222: $container->make(ResolvingImplementationStub::class); - line 225: $container->make(ResolvingImplementationStub::class); - line 228: $container->make(ResolvingContractStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 206: public function testResolvingCallbacksAreCalledOnceForImplementation2() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 232: public function testRebindingDoesNotAffectResolvingCallbacks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 232: public function testRebindingDoesNotAffectResolvingCallbacks() - line 237: $container->resolving(ResolvingContractStub::class, function () use (&$callCounter) { - line 241: $container->bind(ResolvingContractStub::class, ResolvingImplementationStub::class); - line 242: $container->bind(ResolvingContractStub::class, function () { - line 246: $container->make(ResolvingContractStub::class); - line 249: $container->make(ResolvingImplementationStub::class); - line 252: $container->make(ResolvingImplementationStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 232: public function testRebindingDoesNotAffectResolvingCallbacks() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 259: public function testParametersPassedIntoResolvingCallbacks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 259: public function testParametersPassedIntoResolvingCallbacks() - line 263: $container->resolving(ResolvingContractStub::class, function ($obj, $app) use ($container) { - line 269: $container->afterResolving(ResolvingContractStub::class, function ($obj, $app) use ($container) { - line 275: $container->afterResolving(function ($obj, $app) use ($container) { - line 281: $container->bind(ResolvingContractStub::class, ResolvingImplementationStubTwo::class); - line 282: $container->make(ResolvingContractStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 259: public function testParametersPassedIntoResolvingCallbacks() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 285: public function testResolvingCallbacksAreCallWhenRebindHappens() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 285: public function testResolvingCallbacksAreCallWhenRebindHappens() - line 290: $container->resolving(ResolvingContractStub::class, function () use (&$resolvingCallCounter) { - line 295: $container->rebinding(ResolvingContractStub::class, function () use (&$rebindCallCounter) { - line 299: $container->bind(ResolvingContractStub::class, ResolvingImplementationStub::class); - line 301: $container->make(ResolvingContractStub::class); - line 305: $container->bind(ResolvingContractStub::class, ResolvingImplementationStubTwo::class); - line 309: $container->make(ResolvingImplementationStubTwo::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 285: public function testResolvingCallbacksAreCallWhenRebindHappens() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 322: public function testResolvingCallbacksArentCalledWhenNoRebindingsAreRegistered() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 322: public function testResolvingCallbacksArentCalledWhenNoRebindingsAreRegistered() - line 327: $container->resolving(ResolvingContractStub::class, function () use (&$callCounter) { - line 331: $container->bind(ResolvingContractStub::class, ResolvingImplementationStub::class); - line 333: $container->make(ResolvingContractStub::class); - line 336: $container->bind(ResolvingContractStub::class, ResolvingImplementationStubTwo::class); - line 339: $container->make(ResolvingImplementationStubTwo::class); - line 342: $container->bind(ResolvingContractStub::class, fn () => new ResolvingImplementationStubTwo); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 322: public function testResolvingCallbacksArentCalledWhenNoRebindingsAreRegistered() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 349: public function testRebindingDoesNotAffectMultipleResolvingCallbacks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 349: public function testRebindingDoesNotAffectMultipleResolvingCallbacks() - line 355: $container->resolving(ResolvingContractStub::class, function () use (&$callCounter) { - line 359: $container->resolving(ResolvingImplementationStubTwo::class, function () use (&$callCounter) { - line 363: $container->bind(ResolvingContractStub::class, ResolvingImplementationStub::class); - line 366: $container->make(ResolvingContractStub::class); - line 370: $container->make(ResolvingImplementationStub::class); - line 375: $container->make(ResolvingImplementationStubTwo::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 349: public function testRebindingDoesNotAffectMultipleResolvingCallbacks() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 379: public function testResolvingCallbacksAreCalledForInterfaces() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 379: public function testResolvingCallbacksAreCalledForInterfaces() - line 384: $container->resolving(ResolvingContractStub::class, function () use (&$callCounter) { - line 388: $container->bind(ResolvingContractStub::class, ResolvingImplementationStub::class); - line 390: $container->make(ResolvingContractStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 379: public function testResolvingCallbacksAreCalledForInterfaces() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 395: public function testResolvingCallbacksAreCalledForConcretesWhenAttachedOnInterface() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 395: public function testResolvingCallbacksAreCalledForConcretesWhenAttachedOnInterface() - line 400: $container->resolving(ResolvingImplementationStub::class, function () use (&$callCounter) { - line 404: $container->bind(ResolvingContractStub::class, ResolvingImplementationStub::class); - line 406: $container->make(ResolvingContractStub::class); - line 409: $container->make(ResolvingImplementationStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 395: public function testResolvingCallbacksAreCalledForConcretesWhenAttachedOnInterface() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 413: public function testResolvingCallbacksAreCalledForConcretesWhenAttachedOnConcretes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 413: public function testResolvingCallbacksAreCalledForConcretesWhenAttachedOnConcretes() - line 418: $container->resolving(ResolvingImplementationStub::class, function () use (&$callCounter) { - line 422: $container->bind(ResolvingContractStub::class, ResolvingImplementationStub::class); - line 424: $container->make(ResolvingContractStub::class); - line 427: $container->make(ResolvingImplementationStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 413: public function testResolvingCallbacksAreCalledForConcretesWhenAttachedOnConcretes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 431: public function testResolvingCallbacksAreCalledForConcretesWithNoBinding() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 431: public function testResolvingCallbacksAreCalledForConcretesWithNoBinding() - line 436: $container->resolving(ResolvingImplementationStub::class, function () use (&$callCounter) { - line 440: $container->make(ResolvingImplementationStub::class); - line 442: $container->make(ResolvingImplementationStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 431: public function testResolvingCallbacksAreCalledForConcretesWithNoBinding() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 446: public function testResolvingCallbacksAreCalledForInterFacesWithNoBinding() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 446: public function testResolvingCallbacksAreCalledForInterFacesWithNoBinding() - line 451: $container->resolving(ResolvingContractStub::class, function () use (&$callCounter) { - line 455: $container->make(ResolvingImplementationStub::class); - line 458: $container->make(ResolvingImplementationStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 446: public function testResolvingCallbacksAreCalledForInterFacesWithNoBinding() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 462: public function testAfterResolvingCallbacksAreCalledOnceForImplementation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 462: public function testAfterResolvingCallbacksAreCalledOnceForImplementation() - line 467: $container->afterResolving(ResolvingContractStub::class, function () use (&$callCounter) { - line 471: $container->bind(ResolvingContractStub::class, ResolvingImplementationStub::class); - line 473: $container->make(ResolvingImplementationStub::class); - line 476: $container->make(ResolvingContractStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 462: public function testAfterResolvingCallbacksAreCalledOnceForImplementation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 480: public function testBeforeResolvingCallbacksAreCalled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 480: public function testBeforeResolvingCallbacksAreCalled() - line 487: $container->bind(ResolvingContractStub::class, ResolvingImplementationStub::class); - line 490: $container->beforeResolving(ResolvingContractStub::class, function () use (&$callCounter) { - line 495: $container->make(ResolvingImplementationStub::class); - line 499: $container->make(ResolvingContractStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 480: public function testBeforeResolvingCallbacksAreCalled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 503: public function testGlobalBeforeResolvingCallbacksAreCalled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 503: public function testGlobalBeforeResolvingCallbacksAreCalled() - line 510: $container->beforeResolving(function () use (&$callCounter) { - line 515: $container->make(ResolvingImplementationStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 503: public function testGlobalBeforeResolvingCallbacksAreCalled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Container/RewindableGeneratorTest.php - Test @ line 10: public function testCountUsesProvidedValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 10: public function testCountUsesProvidedValue() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 10: public function testCountUsesProvidedValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 19: public function testCountUsesProvidedValueAsCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 19: public function testCountUsesProvidedValueAsCallback() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 19: public function testCountUsesProvidedValueAsCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Cookie/CookieTest.php - Test @ line 14: public function testCookiesAreCreatedWithProperOptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 19. Evidence: - line 14: public function testCookiesAreCreatedWithProperOptions() - line 16: $cookie = $this->getCreator(); - line 17: $cookie->setDefaultPathAndDomain('foo', 'bar'); - line 18: $c = $cookie->make('color', 'blue', 10, '/path', '/domain', true, false, false, 'lax'); - line 19: $this->assertSame('blue', $c->getValue()); - line 20: $this->assertFalse($c->isHttpOnly()); - line 21: $this->assertTrue($c->isSecure()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 52: public function testCookiesCanSetSecureOptionUsingDefaultPathAndDomain() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 52: public function testCookiesCanSetSecureOptionUsingDefaultPathAndDomain() - line 54: $cookie = $this->getCreator(); - line 55: $cookie->setDefaultPathAndDomain('/path', '/domain', true, 'lax'); - line 56: $c = $cookie->make('color', 'blue', 10, null, null, false); - line 57: $this->assertSame('blue', $c->getValue()); - line 58: $this->assertFalse($c->isSecure()); - line 59: $this->assertSame('/domain', $c->getDomain()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 157: public function testExpire() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 157: public function testExpire() - line 159: $cookieJar = $this->getCreator(); - line 160: $this->assertCount(0, $cookieJar->getQueuedCookies()); - line 162: $cookieJar->expire('foobar', '/path', '/domain'); - line 164: $cookie = $cookieJar->queued('foobar'); - line 165: $this->assertSame('foobar', $cookie->getName()); - line 166: $this->assertEquals(null, $cookie->getValue()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 215: public function testCookieJarIsMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 215: public function testCookieJarIsMacroable() - line 217: $cookie = $this->getCreator(); - line 218: $cookie->macro('foo', function () { - line 221: $this->assertSame('bar', $cookie->foo()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Cookie/Middleware/EncryptCookiesTest.php - Test @ line 49: public function testSetCookieEncryption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 49: public function testSetCookieEncryption() - line 54: ]); - line 58: $cookies = $response->headers->getCookies(); - line 60: $this->assertSame('encrypted_cookie', $cookies[0]->getName()); - line 61: $this->assertNotSame('value', $cookies[0]->getValue()); - line 62: $this->assertSame('encrypted[array_cookie]', $cookies[1]->getName()); - line 63: $this->assertNotSame('value', $cookies[1]->getValue()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 71: public function testQueuedCookieEncryption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 71: public function testQueuedCookieEncryption() - line 76: ]); - line 80: $cookies = $response->headers->getCookies(); - line 82: $this->assertSame('encrypted_cookie', $cookies[0]->getName()); - line 83: $this->assertNotSame('value', $cookies[0]->getValue()); - line 84: $this->assertSame('encrypted[array_cookie]', $cookies[1]->getName()); - line 85: $this->assertNotSame('value', $cookies[1]->getValue()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 104: public function testCookieDecryption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 104: public function testCookieDecryption() - line 107: 'encrypted_cookie' => $this->getEncryptedCookieValue('encrypted_cookie', 'value'), - line 116: ]; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseAbstractSchemaGrammarTest.php - Test @ line 17: public function testCreateDatabase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 17: public function testCreateDatabase() - line 19: $connection = m::mock(Connection::class); - line 23: $this->assertSame('create database "foo"', $grammar->compileCreateDatabase('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 19: $connection = m::mock(Connection::class); - Test @ line 26: public function testDropDatabaseIfExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 26: public function testDropDatabaseIfExists() - line 28: $connection = m::mock(Connection::class); - line 32: $this->assertSame('drop database if exists "foo"', $grammar->compileDropDatabaseIfExists('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 28: $connection = m::mock(Connection::class); ❌ tests/Database/DatabaseConcernsBuildsQueriesTraitTest.php - Test @ line 10: public function testTapCallbackInstance() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 10: public function testTapCallbackInstance() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseConcernsHasAttributesTest.php - Test @ line 28: public function testRelationsToArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 28: public function testRelationsToArray() - line 31: ->makePartial() - line 43: ], $mock->relationsToArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 30: $mock = m::mock(HasAttributesWithoutConstructor::class) - Test @ line 54: public function testUnsettingCachedAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 54: public function testUnsettingCachedAttribute() - line 57: $this->assertEquals('foo', $instance->getAttribute('cacheableProperty')); - line 58: $this->assertTrue($instance->cachedAttributeIsset('cacheableProperty')); - line 62: $this->assertFalse($instance->cachedAttributeIsset('cacheableProperty')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseConcernsPreventsCircularRecursionTest.php - Test @ line 18: public function testRecursiveCallsArePreventedWithoutPreventingSubsequentCalls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 18: public function testRecursiveCallsArePreventedWithoutPreventingSubsequentCalls() - line 25: $this->assertEquals(0, $instance->callStack()); - line 29: $this->assertEquals(1, $instance->callStack()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 34: public function testRecursiveDefaultCallbackIsCalledOnlyOnRecursion() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 34: public function testRecursiveDefaultCallbackIsCalledOnlyOnRecursion() - line 42: $this->assertEquals(['instance' => 1, 'default' => 0], $instance->callCallableDefaultStack()); - line 47: $this->assertEquals(['instance' => 2, 'default' => 1], $instance->callCallableDefaultStack()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 53: public function testRecursiveDefaultCallbackIsCalledOnlyOncePerCallStack() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 53: public function testRecursiveDefaultCallbackIsCalledOnlyOncePerCallStack() - line 67: $instance->callCallableDefaultStackRepeatedly(), - line 79: $instance->callCallableDefaultStackRepeatedly(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 86: public function testRecursiveCallsAreLimitedToIndividualInstances() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 86: public function testRecursiveCallsAreLimitedToIndividualInstances() - line 95: $instance->callStack(); - line 100: $instance->callStack(); - line 105: $other->callStack(); - line 110: $other->callStack(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 86: public function testRecursiveCallsAreLimitedToIndividualInstances() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 116: public function testRecursiveCallsToCircularReferenceCallsOtherInstanceOnce() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 116: public function testRecursiveCallsToCircularReferenceCallsOtherInstanceOnce() - line 125: $instance->callOtherStack(); - line 130: $instance->callOtherStack(); - line 135: $other->callOtherStack(); - line 140: $other->callOtherStack(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 116: public function testRecursiveCallsToCircularReferenceCallsOtherInstanceOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 146: public function testRecursiveCallsToCircularLinkedListCallsEachInstanceOnce() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 146: public function testRecursiveCallsToCircularLinkedListCallsEachInstanceOnce() - line 158: $instance->callOtherStack(); - line 164: $second->callOtherStack(); - line 170: $third->callOtherStack(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 146: public function testRecursiveCallsToCircularLinkedListCallsEachInstanceOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseConnectionFactoryTest.php - Test @ line 49: public function testConnectionCanBeCreated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 49: public function testConnectionCanBeCreated() - line 51: $this->assertInstanceOf(PDO::class, $this->db->getConnection()->getPdo()); - line 52: $this->assertInstanceOf(PDO::class, $this->db->getConnection()->getReadPdo()); - line 53: $this->assertInstanceOf(PDO::class, $this->db->getConnection('read_write')->getPdo()); - line 54: $this->assertInstanceOf(PDO::class, $this->db->getConnection('read_write')->getReadPdo()); - line 55: $this->assertInstanceOf(PDO::class, $this->db->getConnection('url')->getPdo()); - line 56: $this->assertInstanceOf(PDO::class, $this->db->getConnection('url')->getReadPdo()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testConnectionCanBeCreated() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 59: public function testConnectionFromUrlHasProperConfig() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 59: public function testConnectionFromUrlHasProperConfig() - line 61: $this->db->addConnection([ - line 86: ], $this->db->getConnection('url-config')->getConfig()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 89: public function testSingleConnectionNotCreatedUntilNeeded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 89: public function testSingleConnectionNotCreatedUntilNeeded() - line 91: $connection = $this->db->getConnection(); - line 95: $this->assertNotInstanceOf(PDO::class, $pdo->getValue($connection)); - line 96: $this->assertNotInstanceOf(PDO::class, $readPdo->getValue($connection)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 89: public function testSingleConnectionNotCreatedUntilNeeded() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 99: public function testReadWriteConnectionsNotCreatedUntilNeeded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 99: public function testReadWriteConnectionsNotCreatedUntilNeeded() - line 101: $connection = $this->db->getConnection('read_write'); - line 105: $this->assertNotInstanceOf(PDO::class, $pdo->getValue($connection)); - line 106: $this->assertNotInstanceOf(PDO::class, $readPdo->getValue($connection)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 99: public function testReadWriteConnectionsNotCreatedUntilNeeded() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 109: public function testIfDriverIsntSetExceptionIsThrown() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 109: public function testIfDriverIsntSetExceptionIsThrown() - line 111: $this->expectException(InvalidArgumentException::class); - line 112: $this->expectExceptionMessage('A driver must be specified.'); - line 115: $factory->createConnector(['foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 114: $factory = new ConnectionFactory($container = m::mock(Container::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 109: public function testIfDriverIsntSetExceptionIsThrown() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 118: public function testExceptionIsThrownOnUnsupportedDriver() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 118: public function testExceptionIsThrownOnUnsupportedDriver() - line 120: $this->expectException(InvalidArgumentException::class); - line 121: $this->expectExceptionMessage('Unsupported driver [foo]'); - line 125: $factory->createConnector(['driver' => 'foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 123: $factory = new ConnectionFactory($container = m::mock(Container::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 118: public function testExceptionIsThrownOnUnsupportedDriver() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 128: public function testCustomConnectorsCanBeResolvedViaContainer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 128: public function testCustomConnectorsCanBeResolvedViaContainer() - line 130: $factory = new ConnectionFactory($container = m::mock(Container::class)); - line 134: $this->assertSame('connector', $factory->createConnector(['driver' => 'foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 130: $factory = new ConnectionFactory($container = m::mock(Container::class)); - Test @ line 137: public function testSqliteForeignKeyConstraints() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 137: public function testSqliteForeignKeyConstraints() - line 139: $this->db->addConnection([ - line 143: $this->assertEquals(0, $this->db->getConnection()->select('PRAGMA foreign_keys')[0]->foreign_keys); - line 145: $this->assertEquals(1, $this->db->getConnection('constraints_set')->select('PRAGMA foreign_keys')[0]->foreign_keys); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 148: public function testSqliteBusyTimeout() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 148: public function testSqliteBusyTimeout() - line 150: $this->db->addConnection([ - line 155: $this->assertNotSame(1234, $this->db->getConnection()->select('PRAGMA busy_timeout')[0]->timeout); - line 157: $this->assertSame(1234, $this->db->getConnection('busy_timeout_set')->select('PRAGMA busy_timeout')[0]->timeout); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 160: public function testSqliteSynchronous() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 160: public function testSqliteSynchronous() - line 162: $this->db->addConnection([ - line 166: $this->assertSame(2, $this->db->getConnection()->select('PRAGMA synchronous')[0]->synchronous); - line 168: $this->assertSame(1, $this->db->getConnection('synchronous_set')->select('PRAGMA synchronous')[0]->synchronous); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseConnectionTest.php - Test @ line 36: public function testSettingDefaultCallsGetDefaultGrammar() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 36: public function testSettingDefaultCallsGetDefaultGrammar() - line 38: $connection = $this->getMockConnection(); - line 40: $connection->expects($this->once())->method('getDefaultQueryGrammar')->willReturn($mock); - line 41: $connection->useDefaultQueryGrammar(); - line 42: $this->assertEquals($mock, $connection->getQueryGrammar()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 39: $mock = m::mock(stdClass::class); - Test @ line 45: public function testSettingDefaultCallsGetDefaultPostProcessor() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 45: public function testSettingDefaultCallsGetDefaultPostProcessor() - line 47: $connection = $this->getMockConnection(); - line 49: $connection->expects($this->once())->method('getDefaultPostProcessor')->willReturn($mock); - line 50: $connection->useDefaultPostProcessor(); - line 51: $this->assertEquals($mock, $connection->getPostProcessor()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 48: $mock = m::mock(stdClass::class); - Test @ line 54: public function testSelectOneCallsSelectAndReturnsSingleResult() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 54: public function testSelectOneCallsSelectAndReturnsSingleResult() - line 56: $connection = $this->getMockConnection(['select']); - line 57: $connection->expects($this->once())->method('select')->with('foo', ['bar' => 'baz'])->willReturn(['foo']); - line 58: $this->assertSame('foo', $connection->selectOne('foo', ['bar' => 'baz'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 61: public function testScalarCallsSelectOneAndReturnsSingleResult() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 61: public function testScalarCallsSelectOneAndReturnsSingleResult() - line 63: $connection = $this->getMockConnection(['selectOne']); - line 64: $connection->expects($this->once())->method('selectOne')->with('select count(*) from tbl')->willReturn((object) ['count(*)' => 5]); - line 65: $this->assertSame(5, $connection->scalar('select count(*) from tbl')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 68: public function testScalarThrowsExceptionIfMultipleColumnsAreSelected() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 68: public function testScalarThrowsExceptionIfMultipleColumnsAreSelected() - line 70: $connection = $this->getMockConnection(['selectOne']); - line 71: $connection->expects($this->once())->method('selectOne')->with('select a, b from tbl')->willReturn((object) ['a' => 'a', 'b' => 'b']); - line 72: $this->expectException(MultipleColumnsSelectedException::class); - line 73: $connection->scalar('select a, b from tbl'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 68: public function testScalarThrowsExceptionIfMultipleColumnsAreSelected() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 76: public function testScalarReturnsNullIfUnderlyingSelectReturnsNoRows() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 76: public function testScalarReturnsNullIfUnderlyingSelectReturnsNoRows() - line 78: $connection = $this->getMockConnection(['selectOne']); - line 79: $connection->expects($this->once())->method('selectOne')->with('select foo from tbl where 0=1')->willReturn(null); - line 80: $this->assertNull($connection->scalar('select foo from tbl where 0=1')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 76: public function testScalarReturnsNullIfUnderlyingSelectReturnsNoRows() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 83: public function testSelectProperlyCallsPDO() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 83: public function testSelectProperlyCallsPDO() - line 85: $pdo = $this->getMockBuilder(DatabaseConnectionTestMockPDO::class)->onlyMethods(['prepare'])->getMock(); - line 86: $writePdo = $this->getMockBuilder(DatabaseConnectionTestMockPDO::class)->onlyMethods(['prepare'])->getMock(); - line 87: $writePdo->expects($this->never())->method('prepare'); - line 88: $statement = $this->getMockBuilder('PDOStatement') - line 91: $statement->expects($this->once())->method('setFetchMode'); - line 92: $statement->expects($this->once())->method('bindValue')->with('foo', 'bar', 2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 83: public function testSelectProperlyCallsPDO() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 107: public function testSelectResultsetsReturnsMultipleRowset() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 107: public function testSelectResultsetsReturnsMultipleRowset() - line 109: $pdo = $this->getMockBuilder(DatabaseConnectionTestMockPDO::class)->onlyMethods(['prepare'])->getMock(); - line 110: $writePdo = $this->getMockBuilder(DatabaseConnectionTestMockPDO::class)->onlyMethods(['prepare'])->getMock(); - line 111: $writePdo->expects($this->never())->method('prepare'); - line 112: $statement = $this->getMockBuilder('PDOStatement') - line 115: $statement->expects($this->once())->method('setFetchMode'); - line 116: $statement->expects($this->once())->method('bindValue')->with(1, 'foo', 2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 107: public function testSelectResultsetsReturnsMultipleRowset() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 136: public function testInsertCallsTheStatementMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 136: public function testInsertCallsTheStatementMethod() - line 138: $connection = $this->getMockConnection(['statement']); - line 139: $connection->expects($this->once())->method('statement')->with($this->equalTo('foo'), $this->equalTo(['bar']))->willReturn('baz'); - line 140: $results = $connection->insert('foo', ['bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 136: public function testInsertCallsTheStatementMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 144: public function testUpdateCallsTheAffectingStatementMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 144: public function testUpdateCallsTheAffectingStatementMethod() - line 146: $connection = $this->getMockConnection(['affectingStatement']); - line 147: $connection->expects($this->once())->method('affectingStatement')->with($this->equalTo('foo'), $this->equalTo(['bar']))->willReturn('baz'); - line 148: $results = $connection->update('foo', ['bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 144: public function testUpdateCallsTheAffectingStatementMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 152: public function testDeleteCallsTheAffectingStatementMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 152: public function testDeleteCallsTheAffectingStatementMethod() - line 154: $connection = $this->getMockConnection(['affectingStatement']); - line 155: $connection->expects($this->once())->method('affectingStatement')->with($this->equalTo('foo'), $this->equalTo(['bar']))->willReturn(true); - line 156: $results = $connection->delete('foo', ['bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 152: public function testDeleteCallsTheAffectingStatementMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 160: public function testStatementProperlyCallsPDO() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 160: public function testStatementProperlyCallsPDO() - line 162: $pdo = $this->getMockBuilder(DatabaseConnectionTestMockPDO::class)->onlyMethods(['prepare'])->getMock(); - line 163: $statement = $this->getMockBuilder('PDOStatement')->onlyMethods(['execute', 'bindValue'])->getMock(); - line 164: $statement->expects($this->once())->method('bindValue')->with(1, 'bar', 2); - line 165: $statement->expects($this->once())->method('execute')->willReturn(true); - line 166: $pdo->expects($this->once())->method('prepare')->with($this->equalTo('foo'))->willReturn($statement); - line 167: $mock = $this->getMockConnection(['prepareBindings'], $pdo); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 160: public function testStatementProperlyCallsPDO() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 177: public function testAffectingStatementProperlyCallsPDO() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 177: public function testAffectingStatementProperlyCallsPDO() - line 179: $pdo = $this->getMockBuilder(DatabaseConnectionTestMockPDO::class)->onlyMethods(['prepare'])->getMock(); - line 180: $statement = $this->getMockBuilder('PDOStatement')->onlyMethods(['execute', 'rowCount', 'bindValue'])->getMock(); - line 181: $statement->expects($this->once())->method('bindValue')->with('foo', 'bar', 2); - line 182: $statement->expects($this->once())->method('execute'); - line 183: $statement->expects($this->once())->method('rowCount')->willReturn(42); - line 184: $pdo->expects($this->once())->method('prepare')->with('foo')->willReturn($statement); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 177: public function testAffectingStatementProperlyCallsPDO() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 195: public function testTransactionLevelNotIncrementedOnTransactionException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 195: public function testTransactionLevelNotIncrementedOnTransactionException() - line 197: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - line 198: $pdo->expects($this->once())->method('beginTransaction')->will($this->throwException(new Exception)); - line 199: $connection = $this->getMockConnection([], $pdo); - line 201: $connection->beginTransaction(); - line 203: $this->assertEquals(0, $connection->transactionLevel()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 197: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - Test @ line 207: public function testBeginTransactionMethodRetriesOnFailure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 207: public function testBeginTransactionMethodRetriesOnFailure() - line 209: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - line 210: $pdo->method('beginTransaction') - line 212: $connection = $this->getMockConnection(['reconnect'], $pdo); - line 213: $connection->expects($this->once())->method('reconnect'); - line 214: $connection->beginTransaction(); - line 215: $this->assertEquals(1, $connection->transactionLevel()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 209: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - Test @ line 218: public function testBeginTransactionMethodReconnectsMissingConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 218: public function testBeginTransactionMethodReconnectsMissingConnection() - line 220: $connection = $this->getMockConnection(); - line 221: $connection->setReconnector(function ($connection) { - line 225: $connection->disconnect(); - line 226: $connection->beginTransaction(); - line 227: $this->assertEquals(1, $connection->transactionLevel()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 222: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - Test @ line 230: public function testBeginTransactionMethodNeverRetriesIfWithinTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 230: public function testBeginTransactionMethodNeverRetriesIfWithinTransaction() - line 232: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - line 233: $pdo->expects($this->once())->method('beginTransaction'); - line 234: $pdo->expects($this->once())->method('exec')->will($this->throwException(new Exception)); - line 235: $connection = $this->getMockConnection(['reconnect'], $pdo); - line 236: $queryGrammar = $this->createMock(Grammar::class); - line 237: $queryGrammar->expects($this->once())->method('compileSavepoint')->willReturn('trans1'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 232: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - line 236: $queryGrammar = $this->createMock(Grammar::class); - Test @ line 250: public function testSwapPDOWithOpenTransactionResetsTransactionLevel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 250: public function testSwapPDOWithOpenTransactionResetsTransactionLevel() - line 252: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - line 253: $pdo->expects($this->once())->method('beginTransaction')->willReturn(true); - line 254: $connection = $this->getMockConnection([], $pdo); - line 255: $connection->beginTransaction(); - line 256: $connection->disconnect(); - line 257: $this->assertEquals(0, $connection->transactionLevel()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 252: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - Test @ line 260: public function testBeganTransactionFiresEventsIfSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 260: public function testBeganTransactionFiresEventsIfSet() - line 262: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - line 263: $connection = $this->getMockConnection(['getName'], $pdo); - line 264: $connection->expects($this->any())->method('getName')->willReturn('name'); - line 265: $connection->setEventDispatcher($events = m::mock(Dispatcher::class)); - line 267: $connection->beginTransaction(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 262: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - line 265: $connection->setEventDispatcher($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 260: public function testBeganTransactionFiresEventsIfSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 270: public function testCommittedFiresEventsIfSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 270: public function testCommittedFiresEventsIfSet() - line 272: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - line 273: $connection = $this->getMockConnection(['getName'], $pdo); - line 274: $connection->expects($this->any())->method('getName')->willReturn('name'); - line 275: $connection->setEventDispatcher($events = m::mock(Dispatcher::class)); - line 277: $connection->commit(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 272: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - line 275: $connection->setEventDispatcher($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 270: public function testCommittedFiresEventsIfSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 280: public function testCommittingFiresEventsIfSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 280: public function testCommittingFiresEventsIfSet() - line 282: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - line 283: $connection = $this->getMockConnection(['getName', 'transactionLevel'], $pdo); - line 284: $connection->expects($this->any())->method('getName')->willReturn('name'); - line 285: $connection->expects($this->any())->method('transactionLevel')->willReturn(1); - line 286: $connection->setEventDispatcher($events = m::mock(Dispatcher::class)); - line 289: $connection->commit(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 282: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - line 286: $connection->setEventDispatcher($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 280: public function testCommittingFiresEventsIfSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 292: public function testRollBackedFiresEventsIfSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 292: public function testRollBackedFiresEventsIfSet() - line 294: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - line 295: $connection = $this->getMockConnection(['getName'], $pdo); - line 296: $connection->expects($this->any())->method('getName')->willReturn('name'); - line 297: $connection->beginTransaction(); - line 298: $connection->setEventDispatcher($events = m::mock(Dispatcher::class)); - line 300: $connection->rollBack(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 294: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - line 298: $connection->setEventDispatcher($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 292: public function testRollBackedFiresEventsIfSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 303: public function testRedundantRollBackFiresNoEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 303: public function testRedundantRollBackFiresNoEvent() - line 305: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - line 306: $connection = $this->getMockConnection(['getName'], $pdo); - line 307: $connection->expects($this->any())->method('getName')->willReturn('name'); - line 308: $connection->setEventDispatcher($events = m::mock(Dispatcher::class)); - line 309: $events->shouldNotReceive('dispatch'); - line 310: $connection->rollBack(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 305: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - line 308: $connection->setEventDispatcher($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 303: public function testRedundantRollBackFiresNoEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 313: public function testTransactionMethodRunsSuccessfully() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 313: public function testTransactionMethodRunsSuccessfully() - line 315: $pdo = $this->getMockBuilder(DatabaseConnectionTestMockPDO::class)->onlyMethods(['beginTransaction', 'commit'])->getMock(); - line 316: $mock = $this->getMockConnection([], $pdo); - line 317: $pdo->expects($this->once())->method('beginTransaction'); - line 318: $pdo->expects($this->once())->method('commit'); - line 319: $result = $mock->transaction(function ($db) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 313: public function testTransactionMethodRunsSuccessfully() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 325: public function testTransactionRetriesOnSerializationFailure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 325: public function testTransactionRetriesOnSerializationFailure() - line 327: $this->expectException(PDOException::class); - line 328: $this->expectExceptionMessage('Serialization failure'); - line 330: $pdo = $this->getMockBuilder(DatabaseConnectionTestMockPDO::class)->onlyMethods(['beginTransaction', 'commit', 'rollBack'])->getMock(); - line 331: $mock = $this->getMockConnection([], $pdo); - line 332: $pdo->expects($this->exactly(3))->method('commit')->will($this->throwException(new DatabaseConnectionTestMockPDOException('Serialization failure', '40001'))); - line 333: $pdo->expects($this->exactly(3))->method('beginTransaction'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 325: public function testTransactionRetriesOnSerializationFailure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 339: public function testTransactionMethodRetriesOnDeadlock() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 339: public function testTransactionMethodRetriesOnDeadlock() - line 341: $this->expectException(QueryException::class); - line 342: $this->expectExceptionMessage('Deadlock found when trying to get lock (Connection: conn, SQL: )'); - line 344: $pdo = $this->getMockBuilder(DatabaseConnectionTestMockPDO::class)->onlyMethods(['inTransaction', 'beginTransaction', 'commit', 'rollBack'])->getMock(); - line 345: $mock = $this->getMockConnection([], $pdo); - line 346: $pdo->method('inTransaction')->willReturn(true); - line 347: $pdo->expects($this->exactly(3))->method('beginTransaction'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 339: public function testTransactionMethodRetriesOnDeadlock() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 355: public function testTransactionMethodRollsbackAndThrows() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 355: public function testTransactionMethodRollsbackAndThrows() - line 357: $pdo = $this->getMockBuilder(DatabaseConnectionTestMockPDO::class)->onlyMethods(['inTransaction', 'beginTransaction', 'commit', 'rollBack'])->getMock(); - line 358: $mock = $this->getMockConnection([], $pdo); - line 360: $pdo->method('inTransaction')->willReturn(true); - line 361: $pdo->expects($this->once())->method('beginTransaction'); - line 362: $pdo->expects($this->once())->method('rollBack'); - line 363: $pdo->expects($this->never())->method('commit'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 373: public function testOnLostConnectionPDOIsNotSwappedWithinATransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 373: public function testOnLostConnectionPDOIsNotSwappedWithinATransaction() - line 375: $this->expectException(QueryException::class); - line 376: $this->expectExceptionMessage('server has gone away (Connection: , SQL: foo)'); - line 382: $statement->shouldReceive('execute')->once()->andThrow(new PDOException('server has gone away')); - line 385: $connection->beginTransaction(); - line 386: $connection->statement('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 378: $pdo = m::mock(PDO::class); - line 380: $statement = m::mock(PDOStatement::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 373: public function testOnLostConnectionPDOIsNotSwappedWithinATransaction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 389: public function testOnLostConnectionPDOIsSwappedOutsideTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 389: public function testOnLostConnectionPDOIsSwappedOutsideTransaction() - line 391: $pdo = m::mock(PDO::class); - line 394: $statement->shouldReceive('execute')->once()->andThrow(new PDOException('server has gone away')); - line 403: $connection->setReconnector(function ($connection) use (&$called) { - line 407: $this->assertTrue($connection->statement('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 391: $pdo = m::mock(PDO::class); - line 393: $statement = m::mock(PDOStatement::class); - Test @ line 412: public function testRunMethodRetriesOnFailure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 412: public function testRunMethodRetriesOnFailure() - line 414: $method = (new ReflectionClass(Connection::class))->getMethod('run'); - line 416: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - line 417: $mock = $this->getMockConnection(['tryAgainIfCausedByLostConnection'], $pdo); - line 418: $mock->expects($this->once())->method('tryAgainIfCausedByLostConnection'); - line 420: $method->invokeArgs($mock, ['', [], function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 416: $pdo = $this->createMock(DatabaseConnectionTestMockPDO::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 412: public function testRunMethodRetriesOnFailure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 425: public function testRunMethodNeverRetriesIfWithinTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 425: public function testRunMethodNeverRetriesIfWithinTransaction() - line 427: $this->expectException(QueryException::class); - line 428: $this->expectExceptionMessage('(Connection: conn, SQL: ) (Connection: , SQL: )'); - line 430: $method = (new ReflectionClass(Connection::class))->getMethod('run'); - line 432: $pdo = $this->getMockBuilder(DatabaseConnectionTestMockPDO::class)->onlyMethods(['beginTransaction'])->getMock(); - line 433: $mock = $this->getMockConnection(['tryAgainIfCausedByLostConnection'], $pdo); - line 434: $pdo->expects($this->once())->method('beginTransaction'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 425: public function testRunMethodNeverRetriesIfWithinTransaction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 443: public function testFromCreatesNewQueryBuilder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 443: public function testFromCreatesNewQueryBuilder() - line 445: $conn = $this->getMockConnection(); - line 446: $conn->setQueryGrammar(m::mock(Grammar::class)); - line 447: $conn->setPostProcessor(m::mock(Processor::class)); - line 448: $builder = $conn->table('users'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 446: $conn->setQueryGrammar(m::mock(Grammar::class)); - line 447: $conn->setPostProcessor(m::mock(Processor::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 443: public function testFromCreatesNewQueryBuilder() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 453: public function testPrepareBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 453: public function testPrepareBindings() - line 455: $date = m::mock(DateTime::class); - line 458: $conn = $this->getMockConnection(); - line 461: $conn->setQueryGrammar($grammar); - line 462: $result = $conn->prepareBindings($bindings); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 455: $date = m::mock(DateTime::class); - line 459: $grammar = m::mock(Grammar::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 453: public function testPrepareBindings() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 466: public function testLogQueryFiresEventsIfSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 466: public function testLogQueryFiresEventsIfSet() - line 468: $connection = $this->getMockConnection(); - line 469: $connection->logQuery('foo', [], time()); - line 470: $connection->setEventDispatcher($events = m::mock(Dispatcher::class)); - line 472: $connection->logQuery('foo', [], null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 470: $connection->setEventDispatcher($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 466: public function testLogQueryFiresEventsIfSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 475: public function testBeforeExecutingHooksCanBeRegistered() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 475: public function testBeforeExecutingHooksCanBeRegistered() - line 477: $this->expectException(Exception::class); - line 478: $this->expectExceptionMessage('The callback was fired'); - line 480: $connection = $this->getMockConnection(); - line 481: $connection->beforeExecuting(function () { - line 484: $connection->select('foo bar', ['baz']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 475: public function testBeforeExecutingHooksCanBeRegistered() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 487: public function testBeforeStartingTransactionHooksCanBeRegistered() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 487: public function testBeforeStartingTransactionHooksCanBeRegistered() - line 489: $this->expectException(Exception::class); - line 490: $this->expectExceptionMessage('The callback was fired'); - line 492: $connection = $this->getMockConnection(); - line 493: $connection->beforeStartingTransaction(function () { - line 496: $connection->beginTransaction(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 487: public function testBeforeStartingTransactionHooksCanBeRegistered() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 499: public function testPretendOnlyLogsQueries() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 499: public function testPretendOnlyLogsQueries() - line 501: $connection = $this->getMockConnection(); - line 502: $queries = $connection->pretend(function ($connection) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 499: public function testPretendOnlyLogsQueries() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 509: public function testSchemaBuilderCanBeCreated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 509: public function testSchemaBuilderCanBeCreated() - line 511: $connection = $this->getMockConnection(); - line 512: $schema = $connection->getSchemaBuilder(); - line 514: $this->assertSame($connection, $schema->getConnection()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 517: public function testGetRawQueryLog() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 517: public function testGetRawQueryLog() - line 519: $mock = $this->getMockConnection(['getQueryLog']); - line 520: $mock->expects($this->once())->method('getQueryLog')->willReturn([ - line 530: $queryGrammar = $this->createMock(Grammar::class); - line 532: ->method('substituteBindingsIntoRawSql') - line 535: $mock->setQueryGrammar($queryGrammar); - line 537: $log = $mock->getRawQueryLog(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 530: $queryGrammar = $this->createMock(Grammar::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 517: public function testGetRawQueryLog() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseConnectorTest.php - Test @ line 25: public function testOptionResolution() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 25: public function testOptionResolution() - line 28: $connector->setDefaultOptions([0 => 'foo', 1 => 'bar']); - line 29: $this->assertEquals([0 => 'baz', 1 => 'bar', 2 => 'boom'], $connector->getOptions(['options' => [0 => 'baz', 2 => 'boom']])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 33: public function testMySqlConnectCallsCreateConnectionWithProperArguments($dsn, $config) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 33: public function testMySqlConnectCallsCreateConnectionWithProperArguments($dsn, $config) - line 35: $connector = $this->getMockBuilder(MySqlConnector::class)->onlyMethods(['createConnection', 'getOptions'])->getMock(); - line 37: $connector->expects($this->once())->method('getOptions')->with($this->equalTo($config))->willReturn(['options']); - line 38: $connector->expects($this->once())->method('createConnection')->with($this->equalTo($dsn), $this->equalTo($config), $this->equalTo(['options']))->willReturn($connection); - line 41: $result = $connector->connect($config); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 36: $connection = m::mock(PDO::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 33: public function testMySqlConnectCallsCreateConnectionWithProperArguments($dsn, $config) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 55: public function testMySqlConnectCallsCreateConnectionWithIsolationLevel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 55: public function testMySqlConnectCallsCreateConnectionWithIsolationLevel() - line 60: $connector = $this->getMockBuilder(MySqlConnector::class)->onlyMethods(['createConnection', 'getOptions'])->getMock(); - line 62: $connector->expects($this->once())->method('getOptions')->with($this->equalTo($config))->willReturn(['options']); - line 63: $connector->expects($this->once())->method('createConnection')->with($this->equalTo($dsn), $this->equalTo($config), $this->equalTo(['options']))->willReturn($connection); - line 67: $result = $connector->connect($config); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 61: $connection = m::mock(PDO::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 55: public function testMySqlConnectCallsCreateConnectionWithIsolationLevel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 72: public function testPostgresConnectCallsCreateConnectionWithProperArguments() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 72: public function testPostgresConnectCallsCreateConnectionWithProperArguments() - line 76: $connector = $this->getMockBuilder(PostgresConnector::class)->onlyMethods(['createConnection', 'getOptions'])->getMock(); - line 78: $connector->expects($this->once())->method('getOptions')->with($this->equalTo($config))->willReturn(['options']); - line 79: $connector->expects($this->once())->method('createConnection')->with($this->equalTo($dsn), $this->equalTo($config), $this->equalTo(['options']))->willReturn($connection); - line 81: $connection->shouldReceive('prepare')->zeroOrMoreTimes()->andReturn($statement); - line 82: $statement->shouldReceive('execute')->zeroOrMoreTimes(); - line 83: $result = $connector->connect($config); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 77: $connection = m::mock(stdClass::class); - line 80: $statement = m::mock(PDOStatement::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 72: public function testPostgresConnectCallsCreateConnectionWithProperArguments() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 93: public function testPostgresSearchPathIsSet($searchPath, $expectedSql) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 93: public function testPostgresSearchPathIsSet($searchPath, $expectedSql) - line 97: $connector = $this->getMockBuilder(PostgresConnector::class)->onlyMethods(['createConnection', 'getOptions'])->getMock(); - line 99: $connector->expects($this->once())->method('getOptions')->with($this->equalTo($config))->willReturn(['options']); - line 100: $connector->expects($this->once())->method('createConnection')->with($this->equalTo($dsn), $this->equalTo($config), $this->equalTo(['options']))->willReturn($connection); - line 104: $result = $connector->connect($config); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 98: $connection = m::mock(stdClass::class); - line 101: $statement = m::mock(PDOStatement::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 93: public function testPostgresSearchPathIsSet($searchPath, $expectedSql) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 179: public function testPostgresSearchPathFallbackToConfigKeySchema() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 179: public function testPostgresSearchPathFallbackToConfigKeySchema() - line 183: $connector = $this->getMockBuilder(PostgresConnector::class)->onlyMethods(['createConnection', 'getOptions'])->getMock(); - line 185: $connector->expects($this->once())->method('getOptions')->with($this->equalTo($config))->willReturn(['options']); - line 186: $connector->expects($this->once())->method('createConnection')->with($this->equalTo($dsn), $this->equalTo($config), $this->equalTo(['options']))->willReturn($connection); - line 190: $result = $connector->connect($config); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 184: $connection = m::mock(stdClass::class); - line 187: $statement = m::mock(PDOStatement::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 179: public function testPostgresSearchPathFallbackToConfigKeySchema() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 195: public function testPostgresApplicationNameIsSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 195: public function testPostgresApplicationNameIsSet() - line 199: $connector = $this->getMockBuilder(PostgresConnector::class)->onlyMethods(['createConnection', 'getOptions'])->getMock(); - line 201: $connector->expects($this->once())->method('getOptions')->with($this->equalTo($config))->willReturn(['options']); - line 202: $connector->expects($this->once())->method('createConnection')->with($this->equalTo($dsn), $this->equalTo($config), $this->equalTo(['options']))->willReturn($connection); - line 204: $connection->shouldReceive('prepare')->zeroOrMoreTimes()->andReturn($statement); - line 205: $statement->shouldReceive('execute')->zeroOrMoreTimes(); - line 206: $result = $connector->connect($config); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 200: $connection = m::mock(stdClass::class); - line 203: $statement = m::mock(PDOStatement::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 195: public function testPostgresApplicationNameIsSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 211: public function testPostgresApplicationUseAlternativeDatabaseName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 211: public function testPostgresApplicationUseAlternativeDatabaseName() - line 215: $connector = $this->getMockBuilder(PostgresConnector::class)->onlyMethods(['createConnection', 'getOptions'])->getMock(); - line 217: $connector->expects($this->once())->method('getOptions')->with($this->equalTo($config))->willReturn(['options']); - line 218: $connector->expects($this->once())->method('createConnection')->with($this->equalTo($dsn), $this->equalTo($config), $this->equalTo(['options']))->willReturn($connection); - line 220: $connection->shouldReceive('prepare')->zeroOrMoreTimes()->andReturn($statement); - line 221: $statement->shouldReceive('execute')->zeroOrMoreTimes(); - line 222: $result = $connector->connect($config); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 216: $connection = m::mock(stdClass::class); - line 219: $statement = m::mock(PDOStatement::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 211: public function testPostgresApplicationUseAlternativeDatabaseName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 227: public function testPostgresApplicationUseAlternativeDatabaseNameAndPort() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 227: public function testPostgresApplicationUseAlternativeDatabaseNameAndPort() - line 231: $connector = $this->getMockBuilder(PostgresConnector::class)->onlyMethods(['createConnection', 'getOptions'])->getMock(); - line 233: $connector->expects($this->once())->method('getOptions')->with($this->equalTo($config))->willReturn(['options']); - line 234: $connector->expects($this->once())->method('createConnection')->with($this->equalTo($dsn), $this->equalTo($config), $this->equalTo(['options']))->willReturn($connection); - line 236: $connection->shouldReceive('prepare')->zeroOrMoreTimes()->andReturn($statement); - line 237: $statement->shouldReceive('execute')->zeroOrMoreTimes(); - line 238: $result = $connector->connect($config); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 232: $connection = m::mock(stdClass::class); - line 235: $statement = m::mock(PDOStatement::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 227: public function testPostgresApplicationUseAlternativeDatabaseNameAndPort() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 243: public function testPostgresConnectorReadsIsolationLevelFromConfig() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 243: public function testPostgresConnectorReadsIsolationLevelFromConfig() - line 247: $connector = $this->getMockBuilder(PostgresConnector::class)->onlyMethods(['createConnection', 'getOptions'])->getMock(); - line 249: $connector->expects($this->once())->method('getOptions')->with($this->equalTo($config))->willReturn(['options']); - line 250: $connector->expects($this->once())->method('createConnection')->with($this->equalTo($dsn), $this->equalTo($config), $this->equalTo(['options']))->willReturn($connection); - line 253: $statement->shouldReceive('execute')->zeroOrMoreTimes(); - line 254: $connection->shouldReceive('exec')->zeroOrMoreTimes(); - line 255: $result = $connector->connect($config); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 248: $connection = m::mock(PDO::class); - line 251: $statement = m::mock(PDOStatement::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 243: public function testPostgresConnectorReadsIsolationLevelFromConfig() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 260: public function testSQLiteMemoryDatabasesMayBeConnectedTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 260: public function testSQLiteMemoryDatabasesMayBeConnectedTo() - line 264: $connector = $this->getMockBuilder(SQLiteConnector::class)->onlyMethods(['createConnection', 'getOptions'])->getMock(); - line 266: $connector->expects($this->once())->method('getOptions')->with($this->equalTo($config))->willReturn(['options']); - line 267: $connector->expects($this->once())->method('createConnection')->with($this->equalTo($dsn), $this->equalTo($config), $this->equalTo(['options']))->willReturn($connection); - line 268: $result = $connector->connect($config); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 265: $connection = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 260: public function testSQLiteMemoryDatabasesMayBeConnectedTo() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 273: public function testSQLiteNamedMemoryDatabasesMayBeConnectedTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 273: public function testSQLiteNamedMemoryDatabasesMayBeConnectedTo() - line 277: $connector = $this->getMockBuilder(SQLiteConnector::class)->onlyMethods(['createConnection', 'getOptions'])->getMock(); - line 279: $connector->expects($this->once())->method('getOptions')->with($this->equalTo($config))->willReturn(['options']); - line 280: $connector->expects($this->once())->method('createConnection')->with($this->equalTo($dsn), $this->equalTo($config), $this->equalTo(['options']))->willReturn($connection); - line 281: $result = $connector->connect($config); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 278: $connection = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 273: public function testSQLiteNamedMemoryDatabasesMayBeConnectedTo() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 286: public function testSQLiteFileDatabasesMayBeConnectedTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 286: public function testSQLiteFileDatabasesMayBeConnectedTo() - line 290: $connector = $this->getMockBuilder(SQLiteConnector::class)->onlyMethods(['createConnection', 'getOptions'])->getMock(); - line 292: $connector->expects($this->once())->method('getOptions')->with($this->equalTo($config))->willReturn(['options']); - line 293: $connector->expects($this->once())->method('createConnection')->with($this->equalTo($dsn), $this->equalTo($config), $this->equalTo(['options']))->willReturn($connection); - line 294: $result = $connector->connect($config); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 291: $connection = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 286: public function testSQLiteFileDatabasesMayBeConnectedTo() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 299: public function testSqlServerConnectCallsCreateConnectionWithProperArguments() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 299: public function testSqlServerConnectCallsCreateConnectionWithProperArguments() - line 302: $dsn = $this->getDsn($config); - line 303: $connector = $this->getMockBuilder(SqlServerConnector::class)->onlyMethods(['createConnection', 'getOptions'])->getMock(); - line 305: $connector->expects($this->once())->method('getOptions')->with($this->equalTo($config))->willReturn(['options']); - line 306: $connector->expects($this->once())->method('createConnection')->with($this->equalTo($dsn), $this->equalTo($config), $this->equalTo(['options']))->willReturn($connection); - line 307: $result = $connector->connect($config); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 304: $connection = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 299: public function testSqlServerConnectCallsCreateConnectionWithProperArguments() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 312: public function testSqlServerConnectCallsCreateConnectionWithOptionalArguments() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 312: public function testSqlServerConnectCallsCreateConnectionWithOptionalArguments() - line 315: $dsn = $this->getDsn($config); - line 316: $connector = $this->getMockBuilder(SqlServerConnector::class)->onlyMethods(['createConnection', 'getOptions'])->getMock(); - line 318: $connector->expects($this->once())->method('getOptions')->with($this->equalTo($config))->willReturn(['options']); - line 319: $connector->expects($this->once())->method('createConnection')->with($this->equalTo($dsn), $this->equalTo($config), $this->equalTo(['options']))->willReturn($connection); - line 320: $result = $connector->connect($config); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 317: $connection = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 312: public function testSqlServerConnectCallsCreateConnectionWithOptionalArguments() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 326: public function testSqlServerConnectCallsCreateConnectionWithPreferredODBC() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 326: public function testSqlServerConnectCallsCreateConnectionWithPreferredODBC() - line 329: $dsn = $this->getDsn($config); - line 330: $connector = $this->getMockBuilder(SqlServerConnector::class)->onlyMethods(['createConnection', 'getOptions'])->getMock(); - line 332: $connector->expects($this->once())->method('getOptions')->with($this->equalTo($config))->willReturn(['options']); - line 333: $connector->expects($this->once())->method('createConnection')->with($this->equalTo($dsn), $this->equalTo($config), $this->equalTo(['options']))->willReturn($connection); - line 334: $result = $connector->connect($config); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 331: $connection = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 326: public function testSqlServerConnectCallsCreateConnectionWithPreferredODBC() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseEloquentBelongsToManyAggregateTest.php - Test @ line 27: public function testWithSumDifferentTables() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 27: public function testWithSumDifferentTables() - line 29: $this->seedData(); - line 32: ->withSum('products as total_products', 'order_product.quantity') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 38: public function testWithSumSameTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 38: public function testWithSumSameTable() - line 40: $this->seedData(); - line 43: ->withSum('allocatedTo as total_allocated', 'allocations.amount') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 49: public function testWithSumExpression() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 49: public function testWithSumExpression() - line 51: $this->seedData(); - line 54: ->withSum('allocatedTo as total_allocated', new Expression('allocations.amount * 2')) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentBelongsToManyChunkByIdTest.php - Test @ line 53: public function testBelongsToChunkById() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 53: public function testBelongsToChunkById() - line 55: $this->seedData(); - line 57: $user = BelongsToManyChunkByIdTestTestUser::query()->first(); - line 60: $user->articles()->chunkById(1, function (Collection $collection) use (&$i) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 68: public function testBelongsToChunkByIdDesc() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 68: public function testBelongsToChunkByIdDesc() - line 70: $this->seedData(); - line 72: $user = BelongsToManyChunkByIdTestTestUser::query()->first(); - line 75: $user->articles()->chunkByIdDesc(1, function (Collection $collection) use (&$i) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentBelongsToManyEachByIdTest.php - Test @ line 52: public function testBelongsToEachById() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 52: public function testBelongsToEachById() - line 54: $this->seedData(); - line 56: $user = BelongsToManyEachByIdTestTestUser::query()->first(); - line 59: $user->articles()->eachById(function (BelongsToManyEachByIdTestTestArticle $model) use (&$i) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 52: public function testBelongsToEachById() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseEloquentBelongsToManyLazyByIdTest.php - Test @ line 51: public function testBelongsToLazyById() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 51: public function testBelongsToLazyById() - line 53: $this->seedData(); - line 55: $user = BelongsToManyLazyByIdTestTestUser::query()->first(); - line 58: $user->articles()->lazyById(1)->each(function ($model) use (&$i) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 51: public function testBelongsToLazyById() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseEloquentBelongsToManySyncReturnValueTypeTest.php - Test @ line 79: public function testSyncReturnValueType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 79: public function testSyncReturnValueType() - line 81: $this->seedData(); - line 83: $user = BelongsToManySyncTestTestUser::query()->first(); - line 84: $articleIDs = BelongsToManySyncTestTestArticle::all()->pluck('id')->toArray(); - line 86: $changes = $user->articles()->sync($articleIDs); - line 88: collect($changes['attached'])->map(function ($id) { - line 92: $user->articles->each(function (BelongsToManySyncTestTestArticle $article) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 97: public function testSyncWithPivotDefaultsReturnValueType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 97: public function testSyncWithPivotDefaultsReturnValueType() - line 99: $this->seedData(); - line 101: $user = BelongsToManySyncTestTestUser::query()->first(); - line 102: $articleIDs = BelongsToManySyncTestTestArticle::all()->pluck('id')->toArray(); - line 104: $changes = $user->articles()->syncWithPivotValues($articleIDs, ['visible' => true]); - line 106: collect($changes['attached'])->each(function ($id) { - line 110: $user->articles->each(function (BelongsToManySyncTestTestArticle $article) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentBelongsToManySyncTouchesParentTest.php - Test @ line 80: public function testSyncWithDetachedValuesShouldTouch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 80: public function testSyncWithDetachedValuesShouldTouch() - line 82: $this->seedData(); - line 86: $article->users()->sync([1, 2, 3]); - line 87: $this->assertSame('2021-07-19 10:13:14', $article->updated_at->format('Y-m-d H:i:s')); - line 90: $result = $article->users()->sync([1, 2]); - line 92: $this->assertSame('3', (string) collect($result['detached'])->first()); - line 94: $article->refresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentBelongsToManyWithCastedAttributesTest.php - Test @ line 21: public function testModelsAreProperlyMatchedToParents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 21: public function testModelsAreProperlyMatchedToParents() - line 23: $relation = $this->getRelation(); - line 25: $model1->shouldReceive('hasAttribute')->passthru(); - line 27: $model1->shouldReceive('getAttribute')->with('foo')->passthru(); - line 32: $model1->shouldReceive('getRelationValue', 'relationLoaded', 'relationResolver', 'setRelation', 'isRelation')->passthru(); - line 35: $model2->shouldReceive('hasAttribute')->passthru(); - line 37: $model2->shouldReceive('getAttribute')->with('foo')->passthru(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 24: $model1 = m::mock(Model::class); - line 34: $model2 = m::mock(Model::class); ❌ tests/Database/DatabaseEloquentBelongsToManyWithDefaultAttributesTest.php - Test @ line 20: public function testWithPivotValueMethodSetsWhereConditionsForFetching() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 20: public function testWithPivotValueMethodSetsWhereConditionsForFetching() - line 22: $relation = $this->getMockBuilder(BelongsToMany::class)->onlyMethods(['touchIfTouching'])->setConstructorArgs($this->getRelationArguments())->getMock(); - line 23: $relation->withPivotValue(['is_admin' => 1]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 20: public function testWithPivotValueMethodSetsWhereConditionsForFetching() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 26: public function testWithPivotValueMethodSetsDefaultArgumentsForInsertion() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 26: public function testWithPivotValueMethodSetsDefaultArgumentsForInsertion() - line 28: $relation = $this->getMockBuilder(BelongsToMany::class)->onlyMethods(['touchIfTouching'])->setConstructorArgs($this->getRelationArguments())->getMock(); - line 29: $relation->withPivotValue(['is_admin' => 1]); - line 34: $relation->getQuery()->getQuery()->shouldReceive('newQuery')->once()->andReturn($query); - line 36: $relation->attach(1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 31: $query = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 26: public function testWithPivotValueMethodSetsDefaultArgumentsForInsertion() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseEloquentBelongsToTest.php - Test @ line 24: public function testBelongsToWithDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 24: public function testBelongsToWithDefault() - line 26: $relation = $this->getRelation()->withDefault(); - line 28: $this->builder->shouldReceive('first')->once()->andReturnNull(); - line 34: $this->assertSame($newModel, $relation->getResults()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 37: public function testBelongsToWithDynamicDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 37: public function testBelongsToWithDynamicDefault() - line 39: $relation = $this->getRelation()->withDefault(function ($newModel) { - line 43: $this->builder->shouldReceive('first')->once()->andReturnNull(); - line 49: $this->assertSame($newModel, $relation->getResults()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 54: public function testBelongsToWithArrayDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 54: public function testBelongsToWithArrayDefault() - line 56: $relation = $this->getRelation()->withDefault(['username' => 'taylor']); - line 58: $this->builder->shouldReceive('first')->once()->andReturnNull(); - line 64: $this->assertSame($newModel, $relation->getResults()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 69: public function testEagerConstraintsAreProperlyAdded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 69: public function testEagerConstraintsAreProperlyAdded() - line 71: $relation = $this->getRelation(); - line 72: $relation->getRelated()->shouldReceive('getKeyName')->andReturn('id'); - line 73: $relation->getRelated()->shouldReceive('getKeyType')->andReturn('int'); - line 74: $relation->getQuery()->shouldReceive('whereIntegerInRaw')->once()->with('relation.id', ['foreign.value', 'foreign.value.two']); - line 76: $relation->addEagerConstraints($models); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 69: public function testEagerConstraintsAreProperlyAdded() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 79: public function testIdsInEagerConstraintsCanBeZero() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 79: public function testIdsInEagerConstraintsCanBeZero() - line 81: $relation = $this->getRelation(); - line 82: $relation->getRelated()->shouldReceive('getKeyName')->andReturn('id'); - line 83: $relation->getRelated()->shouldReceive('getKeyType')->andReturn('int'); - line 84: $relation->getQuery()->shouldReceive('whereIntegerInRaw')->once()->with('relation.id', [0, 'foreign.value']); - line 86: $relation->addEagerConstraints($models); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 79: public function testIdsInEagerConstraintsCanBeZero() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 89: public function testIdsInEagerConstraintsCanBeBackedEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 89: public function testIdsInEagerConstraintsCanBeBackedEnum() - line 91: $relation = $this->getRelation(); - line 92: $relation->getRelated()->shouldReceive('getKeyName')->andReturn('id'); - line 93: $relation->getRelated()->shouldReceive('getKeyType')->andReturn('int'); - line 94: $relation->getQuery()->shouldReceive('whereIntegerInRaw')->once()->with('relation.id', [5, 'foreign.value']); - line 96: $relation->addEagerConstraints($models); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 89: public function testIdsInEagerConstraintsCanBeBackedEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 99: public function testRelationIsProperlyInitialized() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 99: public function testRelationIsProperlyInitialized() - line 101: $relation = $this->getRelation(); - line 104: $models = $relation->initRelation([$model], 'foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 102: $model = m::mock(Model::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 99: public function testRelationIsProperlyInitialized() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 109: public function testModelsAreProperlyMatchedToParents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 109: public function testModelsAreProperlyMatchedToParents() - line 111: $relation = $this->getRelation(); - line 156: $models = $relation->match( - line 162: $this->assertEquals(1, $models[0]->foo->getAttribute('id')); - line 163: $this->assertEquals(2, $models[1]->foo->getAttribute('id')); - line 164: $this->assertSame('3', (string) $models[2]->foo->getAttribute('id')); - line 165: $this->assertEquals(5, $models[3]->foo->getAttribute('id')->value); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 168: public function testAssociateMethodSetsForeignKeyOnModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 168: public function testAssociateMethodSetsForeignKeyOnModel() - line 170: $parent = m::mock(Model::class); - line 172: $relation = $this->getRelation($parent); - line 178: $relation->associate($associate); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 170: $parent = m::mock(Model::class); - line 173: $associate = m::mock(Model::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 168: public function testAssociateMethodSetsForeignKeyOnModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 181: public function testDissociateMethodUnsetsForeignKeyOnModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 181: public function testDissociateMethodUnsetsForeignKeyOnModel() - line 183: $parent = m::mock(Model::class); - line 185: $relation = $this->getRelation($parent); - line 191: $relation->dissociate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 183: $parent = m::mock(Model::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 181: public function testDissociateMethodUnsetsForeignKeyOnModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 194: public function testAssociateMethodSetsForeignKeyOnModelById() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 194: public function testAssociateMethodSetsForeignKeyOnModelById() - line 196: $parent = m::mock(Model::class); - line 198: $relation = $this->getRelation($parent); - line 202: $parent->shouldReceive('isDirty')->never(); - line 203: $parent->shouldReceive('unsetRelation')->once()->with($relation->getRelationName()); - line 205: $relation->associate(1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 196: $parent = m::mock(Model::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 194: public function testAssociateMethodSetsForeignKeyOnModelById() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 208: public function testDefaultEagerConstraintsWhenIncrementing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 208: public function testDefaultEagerConstraintsWhenIncrementing() - line 210: $relation = $this->getRelation(); - line 211: $relation->getRelated()->shouldReceive('getKeyName')->andReturn('id'); - line 212: $relation->getRelated()->shouldReceive('getKeyType')->andReturn('int'); - line 213: $relation->getQuery()->shouldReceive('whereIntegerInRaw')->once()->with('relation.id', m::mustBe([])); - line 215: $relation->addEagerConstraints($models); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 208: public function testDefaultEagerConstraintsWhenIncrementing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 218: public function testDefaultEagerConstraintsWhenIncrementingAndNonIntKeyType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 218: public function testDefaultEagerConstraintsWhenIncrementingAndNonIntKeyType() - line 220: $relation = $this->getRelation(null, 'string'); - line 221: $relation->getQuery()->shouldReceive('whereIn')->once()->with('relation.id', m::mustBe([])); - line 223: $relation->addEagerConstraints($models); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 218: public function testDefaultEagerConstraintsWhenIncrementingAndNonIntKeyType() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 226: public function testDefaultEagerConstraintsWhenNotIncrementing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 226: public function testDefaultEagerConstraintsWhenNotIncrementing() - line 228: $relation = $this->getRelation(); - line 229: $relation->getRelated()->shouldReceive('getKeyName')->andReturn('id'); - line 230: $relation->getRelated()->shouldReceive('getKeyType')->andReturn('int'); - line 231: $relation->getQuery()->shouldReceive('whereIntegerInRaw')->once()->with('relation.id', m::mustBe([])); - line 233: $relation->addEagerConstraints($models); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 226: public function testDefaultEagerConstraintsWhenNotIncrementing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 236: public function testIsNotNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 236: public function testIsNotNull() - line 238: $relation = $this->getRelation(); - line 240: $this->related->shouldReceive('getConnectionName')->never(); - line 242: $this->assertFalse($relation->is(null)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 245: public function testIsModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 245: public function testIsModel() - line 247: $relation = $this->getRelation(); - line 256: $this->assertTrue($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 251: $model = m::mock(Model::class); - Test @ line 259: public function testIsModelWithIntegerParentKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 259: public function testIsModelWithIntegerParentKey() - line 261: $parent = m::mock(Model::class); - line 268: $relation = $this->getRelation($parent); - line 277: $this->assertTrue($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 261: $parent = m::mock(Model::class); - line 272: $model = m::mock(Model::class); - Test @ line 280: public function testIsModelWithIntegerRelatedKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 280: public function testIsModelWithIntegerRelatedKey() - line 282: $parent = m::mock(Model::class); - line 289: $relation = $this->getRelation($parent); - line 298: $this->assertTrue($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 282: $parent = m::mock(Model::class); - line 293: $model = m::mock(Model::class); - Test @ line 301: public function testIsModelWithIntegerKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 301: public function testIsModelWithIntegerKeys() - line 303: $parent = m::mock(Model::class); - line 310: $relation = $this->getRelation($parent); - line 319: $this->assertTrue($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 303: $parent = m::mock(Model::class); - line 314: $model = m::mock(Model::class); - Test @ line 322: public function testIsNotModelWithNullParentKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 322: public function testIsNotModelWithNullParentKey() - line 324: $parent = m::mock(Model::class); - line 331: $relation = $this->getRelation($parent); - line 333: $this->related->shouldReceive('getConnectionName')->never(); - line 337: $model->shouldReceive('getTable')->never(); - line 338: $model->shouldReceive('getConnectionName')->never(); - line 340: $this->assertFalse($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 324: $parent = m::mock(Model::class); - line 335: $model = m::mock(Model::class); - Test @ line 343: public function testIsNotModelWithNullRelatedKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 343: public function testIsNotModelWithNullRelatedKey() - line 345: $relation = $this->getRelation(); - line 347: $this->related->shouldReceive('getConnectionName')->never(); - line 351: $model->shouldReceive('getTable')->never(); - line 352: $model->shouldReceive('getConnectionName')->never(); - line 354: $this->assertFalse($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 349: $model = m::mock(Model::class); - Test @ line 357: public function testIsNotModelWithAnotherKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 357: public function testIsNotModelWithAnotherKey() - line 359: $relation = $this->getRelation(); - line 361: $this->related->shouldReceive('getConnectionName')->never(); - line 365: $model->shouldReceive('getTable')->never(); - line 366: $model->shouldReceive('getConnectionName')->never(); - line 368: $this->assertFalse($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 363: $model = m::mock(Model::class); - Test @ line 371: public function testIsNotModelWithAnotherTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 371: public function testIsNotModelWithAnotherTable() - line 373: $relation = $this->getRelation(); - line 375: $this->related->shouldReceive('getConnectionName')->never(); - line 380: $model->shouldReceive('getConnectionName')->never(); - line 382: $this->assertFalse($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 377: $model = m::mock(Model::class); - Test @ line 385: public function testIsNotModelWithAnotherConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 385: public function testIsNotModelWithAnotherConnection() - line 387: $relation = $this->getRelation(); - line 396: $this->assertFalse($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 391: $model = m::mock(Model::class); ❌ tests/Database/DatabaseEloquentBuilderTest.php - Test @ line 39: public function testFindMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 39: public function testFindMethod() - line 41: $builder = m::mock(Builder::class.'[first]', [$this->getMockQueryBuilder()]); - line 42: $model = $this->getMockModel(); - line 43: $builder->setModel($model); - line 45: $builder->getQuery()->shouldReceive('where')->once()->with('foo_table.foo', '=', 'bar'); - line 48: $result = $builder->find('bar', ['column']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 39: public function testFindMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 52: public function testFindSoleMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 52: public function testFindSoleMethod() - line 54: $builder = m::mock(Builder::class.'[sole]', [$this->getMockQueryBuilder()]); - line 55: $model = $this->getMockModel(); - line 56: $builder->setModel($model); - line 58: $builder->getQuery()->shouldReceive('where')->once()->with('foo_table.foo', '=', 'bar'); - line 61: $result = $builder->findSole('bar', ['column']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 52: public function testFindSoleMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 65: public function testFindManyMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 19. Evidence: - line 65: public function testFindManyMethod() - line 68: $builder = m::mock(Builder::class.'[get]', [$this->getMockQueryBuilder()]); - line 69: $model = $this->getMockModel(); - line 71: $builder->setModel($model); - line 72: $builder->getQuery()->shouldReceive('whereIntegerInRaw')->once()->with('foo_table.foo', ['one', 'two']); - line 75: $result = $builder->findMany(['one', 'two'], ['column']); - line 79: $builder = m::mock(Builder::class.'[get]', [$this->getMockQueryBuilder()]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 65: public function testFindManyMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 102: public function testFindOrNewMethodModelFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 102: public function testFindOrNewMethodModelFound() - line 104: $model = $this->getMockModel(); - line 108: $builder = m::mock(Builder::class.'[first]', [$this->getMockQueryBuilder()]); - line 109: $builder->setModel($model); - line 110: $builder->getQuery()->shouldReceive('where')->once()->with('foo_table.foo', '=', 'bar'); - line 113: $expected = $model->findOrNew('bar', ['column']); - line 114: $result = $builder->find('bar', ['column']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 102: public function testFindOrNewMethodModelFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 118: public function testFindOrNewMethodModelNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 118: public function testFindOrNewMethodModelNotFound() - line 120: $model = $this->getMockModel(); - line 124: $builder = m::mock(Builder::class.'[first]', [$this->getMockQueryBuilder()]); - line 125: $builder->setModel($model); - line 126: $builder->getQuery()->shouldReceive('where')->once()->with('foo_table.foo', '=', 'bar'); - line 129: $result = $model->findOrNew('bar', ['column']); - line 130: $findResult = $builder->find('bar', ['column']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 122: $model->shouldReceive('findOrNew')->once()->andReturn(m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 118: public function testFindOrNewMethodModelNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 135: public function testFindOrFailMethodThrowsModelNotFoundException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 135: public function testFindOrFailMethodThrowsModelNotFoundException() - line 137: $this->expectException(ModelNotFoundException::class); - line 139: $builder = m::mock(Builder::class.'[first]', [$this->getMockQueryBuilder()]); - line 140: $model = $this->getMockModel(); - line 142: $builder->setModel($model); - line 143: $builder->getQuery()->shouldReceive('where')->once()->with('foo_table.foo', '=', 'bar'); - line 145: $builder->findOrFail('bar', ['column']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 135: public function testFindOrFailMethodThrowsModelNotFoundException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 148: public function testFindOrFailMethodWithManyThrowsModelNotFoundException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 148: public function testFindOrFailMethodWithManyThrowsModelNotFoundException() - line 150: $this->expectException(ModelNotFoundException::class); - line 152: $model = $this->getMockModel(); - line 156: $builder = m::mock(Builder::class.'[get]', [$this->getMockQueryBuilder()]); - line 157: $builder->setModel($model); - line 158: $builder->getQuery()->shouldReceive('whereIntegerInRaw')->once()->with('foo_table.foo', [1, 2]); - line 160: $builder->findOrFail([1, 2], ['column']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 148: public function testFindOrFailMethodWithManyThrowsModelNotFoundException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 163: public function testFindOrFailMethodWithManyUsingCollectionThrowsModelNotFoundException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 163: public function testFindOrFailMethodWithManyUsingCollectionThrowsModelNotFoundException() - line 165: $this->expectException(ModelNotFoundException::class); - line 167: $model = $this->getMockModel(); - line 171: $builder = m::mock(Builder::class.'[get]', [$this->getMockQueryBuilder()]); - line 172: $builder->setModel($model); - line 173: $builder->getQuery()->shouldReceive('whereIntegerInRaw')->once()->with('foo_table.foo', [1, 2]); - line 175: $builder->findOrFail(new Collection([1, 2]), ['column']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 163: public function testFindOrFailMethodWithManyUsingCollectionThrowsModelNotFoundException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 178: public function testFindOrMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 178: public function testFindOrMethod() - line 180: $builder = m::mock(Builder::class.'[first]', [$this->getMockQueryBuilder()]); - line 181: $model = $this->getMockModel(); - line 183: $builder->setModel($model); - line 184: $builder->getQuery()->shouldReceive('where')->with('foo_table.foo', '=', 1)->twice(); - line 185: $builder->getQuery()->shouldReceive('where')->with('foo_table.foo', '=', 2)->once(); - line 190: $this->assertSame($model, $builder->findOr(1, fn () => 'callback result')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 195: public function testFindOrMethodWithMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 195: public function testFindOrMethodWithMany() - line 197: $builder = m::mock(Builder::class.'[get]', [$this->getMockQueryBuilder()]); - line 198: $model1 = $this->getMockModel(); - line 199: $model2 = $this->getMockModel(); - line 202: $builder->setModel($model1); - line 203: $builder->getQuery()->shouldReceive('whereIntegerInRaw')->with('foo_table.foo', [1, 2])->twice(); - line 204: $builder->getQuery()->shouldReceive('whereIntegerInRaw')->with('foo_table.foo', [1, 2, 3])->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 195: public function testFindOrMethodWithMany() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 223: public function testFindOrMethodWithManyUsingCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 223: public function testFindOrMethodWithManyUsingCollection() - line 225: $builder = m::mock(Builder::class.'[get]', [$this->getMockQueryBuilder()]); - line 226: $model1 = $this->getMockModel(); - line 227: $model2 = $this->getMockModel(); - line 230: $builder->setModel($model1); - line 231: $builder->getQuery()->shouldReceive('whereIntegerInRaw')->with('foo_table.foo', [1, 2])->twice(); - line 232: $builder->getQuery()->shouldReceive('whereIntegerInRaw')->with('foo_table.foo', [1, 2, 3])->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 223: public function testFindOrMethodWithManyUsingCollection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 251: public function testFirstOrFailMethodThrowsModelNotFoundException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 251: public function testFirstOrFailMethodThrowsModelNotFoundException() - line 253: $this->expectException(ModelNotFoundException::class); - line 255: $builder = m::mock(Builder::class.'[first]', [$this->getMockQueryBuilder()]); - line 256: $builder->setModel($this->getMockModel()); - line 258: $builder->firstOrFail(['column']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 251: public function testFirstOrFailMethodThrowsModelNotFoundException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 261: public function testFindWithMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 261: public function testFindWithMany() - line 263: $builder = m::mock(Builder::class.'[get]', [$this->getMockQueryBuilder()]); - line 264: $model = $this->getMockModel(); - line 266: $builder->getQuery()->shouldReceive('whereIntegerInRaw')->once()->with('foo_table.foo', [1, 2]); - line 267: $builder->setModel($model); - line 270: $result = $builder->find([1, 2], ['column']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 261: public function testFindWithMany() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 274: public function testFindWithManyUsingCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 274: public function testFindWithManyUsingCollection() - line 277: $builder = m::mock(Builder::class.'[get]', [$this->getMockQueryBuilder()]); - line 278: $model = $this->getMockModel(); - line 280: $builder->getQuery()->shouldReceive('whereIntegerInRaw')->once()->with('foo_table.foo', [1, 2]); - line 281: $builder->setModel($model); - line 284: $result = $builder->find($ids, ['column']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 274: public function testFindWithManyUsingCollection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 288: public function testFirstMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 288: public function testFirstMethod() - line 290: $builder = m::mock(Builder::class.'[get,take]', [$this->getMockQueryBuilder()]); - line 291: $builder->shouldReceive('limit')->with(1)->andReturnSelf(); - line 294: $result = $builder->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 288: public function testFirstMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 298: public function testQualifyColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 298: public function testQualifyColumn() - line 300: $builder = new Builder(m::mock(BaseBuilder::class)); - line 303: $builder->setModel(new EloquentBuilderTestStubStringPrimaryKey); - line 305: $this->assertSame('foo_table.column', $builder->qualifyColumn('column')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 300: $builder = new Builder(m::mock(BaseBuilder::class)); - Test @ line 308: public function testQualifyColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 308: public function testQualifyColumns() - line 310: $builder = new Builder(m::mock(BaseBuilder::class)); - line 313: $builder->setModel(new EloquentBuilderTestStubStringPrimaryKey); - line 315: $this->assertEquals(['foo_table.column', 'foo_table.name'], $builder->qualifyColumns(['column', 'name'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 310: $builder = new Builder(m::mock(BaseBuilder::class)); - Test @ line 318: public function testGetMethodLoadsModelsAndHydratesEagerRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 318: public function testGetMethodLoadsModelsAndHydratesEagerRelations() - line 320: $builder = m::mock(Builder::class.'[getModels,eagerLoadRelations]', [$this->getMockQueryBuilder()]); - line 321: $builder->shouldReceive('applyScopes')->andReturnSelf(); - line 324: $builder->setModel($this->getMockModel()); - line 325: $builder->getModel()->shouldReceive('newCollection')->with(['bar', 'baz'])->andReturn(new Collection(['bar', 'baz'])); - line 328: $this->assertEquals(['bar', 'baz'], $results->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 331: public function testGetMethodDoesntHydrateEagerRelationsWhenNoResultsAreReturned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 331: public function testGetMethodDoesntHydrateEagerRelationsWhenNoResultsAreReturned() - line 333: $builder = m::mock(Builder::class.'[getModels,eagerLoadRelations]', [$this->getMockQueryBuilder()]); - line 334: $builder->shouldReceive('applyScopes')->andReturnSelf(); - line 336: $builder->shouldReceive('eagerLoadRelations')->never(); - line 337: $builder->setModel($this->getMockModel()); - line 338: $builder->getModel()->shouldReceive('newCollection')->with([])->andReturn(new Collection([])); - line 341: $this->assertEquals([], $results->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 344: public function testValueMethodWithModelFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 344: public function testValueMethodWithModelFound() - line 346: $builder = m::mock(Builder::class.'[first]', [$this->getMockQueryBuilder()]); - line 351: $this->assertSame('foo', $builder->value('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 354: public function testValueMethodWithModelNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 354: public function testValueMethodWithModelNotFound() - line 356: $builder = m::mock(Builder::class.'[first]', [$this->getMockQueryBuilder()]); - line 359: $this->assertNull($builder->value('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 354: public function testValueMethodWithModelNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 362: public function testValueOrFailMethodWithModelFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 362: public function testValueOrFailMethodWithModelFound() - line 364: $builder = m::mock(Builder::class.'[first]', [$this->getMockQueryBuilder()]); - line 369: $this->assertSame('foo', $builder->valueOrFail('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 372: public function testValueOrFailMethodWithModelNotFoundThrowsModelNotFoundException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 372: public function testValueOrFailMethodWithModelNotFoundThrowsModelNotFoundException() - line 374: $this->expectException(ModelNotFoundException::class); - line 376: $builder = m::mock(Builder::class.'[first]', [$this->getMockQueryBuilder()]); - line 377: $model = $this->getMockModel(); - line 379: $builder->setModel($model); - line 380: $builder->getQuery()->shouldReceive('where')->once()->with('foo_table.foo', '=', 'bar'); - line 382: $builder->whereKey('bar')->valueOrFail('column'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 372: public function testValueOrFailMethodWithModelNotFoundThrowsModelNotFoundException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 385: public function testChunkWithLastChunkComplete() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 385: public function testChunkWithLastChunkComplete() - line 387: $builder = m::mock(Builder::class.'[getOffset,getLimit,offset,limit,get]', [$this->getMockQueryBuilder()]); - line 388: $builder->getQuery()->orders[] = ['column' => 'foobar', 'direction' => 'asc']; - line 396: $builder->shouldReceive('offset')->once()->with(0)->andReturnSelf(); - line 397: $builder->shouldReceive('offset')->once()->with(2)->andReturnSelf(); - line 398: $builder->shouldReceive('offset')->once()->with(4)->andReturnSelf(); - line 399: $builder->shouldReceive('limit')->times(3)->with(2)->andReturnSelf(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 402: $callbackAssertor = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 385: public function testChunkWithLastChunkComplete() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 412: public function testChunkWithLastChunkPartial() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 412: public function testChunkWithLastChunkPartial() - line 414: $builder = m::mock(Builder::class.'[getOffset,getLimit,offset,limit,get]', [$this->getMockQueryBuilder()]); - line 415: $builder->getQuery()->orders[] = ['column' => 'foobar', 'direction' => 'asc']; - line 421: $builder->shouldReceive('offset')->once()->with(0)->andReturnSelf(); - line 422: $builder->shouldReceive('offset')->once()->with(2)->andReturnSelf(); - line 423: $builder->shouldReceive('limit')->twice()->with(2)->andReturnSelf(); - line 430: $builder->chunk(2, function ($results) use ($callbackAssertor) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 426: $callbackAssertor = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 412: public function testChunkWithLastChunkPartial() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 435: public function testChunkCanBeStoppedByReturningFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 435: public function testChunkCanBeStoppedByReturningFalse() - line 437: $builder = m::mock(Builder::class.'[getOffset,getLimit,offset,limit,get]', [$this->getMockQueryBuilder()]); - line 438: $builder->getQuery()->orders[] = ['column' => 'foobar', 'direction' => 'asc']; - line 445: $builder->shouldReceive('offset')->once()->with(0)->andReturnSelf(); - line 446: $builder->shouldReceive('limit')->once()->with(2)->andReturnSelf(); - line 451: $callbackAssertor->shouldReceive('doSomething')->never()->with($chunk2); - line 453: $builder->chunk(2, function ($results) use ($callbackAssertor) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 449: $callbackAssertor = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 435: public function testChunkCanBeStoppedByReturningFalse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 460: public function testChunkWithCountZero() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 460: public function testChunkWithCountZero() - line 462: $builder = m::mock(Builder::class.'[getOffset,getLimit,offset,limit,get]', [$this->getMockQueryBuilder()]); - line 463: $builder->getQuery()->orders[] = ['column' => 'foobar', 'direction' => 'asc']; - line 467: $builder->shouldReceive('offset')->never(); - line 468: $builder->shouldReceive('limit')->never(); - line 469: $builder->shouldReceive('get')->never(); - line 471: $builder->chunk(0, function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 460: public function testChunkWithCountZero() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 476: public function testChunkPaginatesUsingIdWithLastChunkComplete() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 476: public function testChunkPaginatesUsingIdWithLastChunkComplete() - line 478: $builder = m::mock(Builder::class.'[getOffset,getLimit,forPageAfterId,get]', [$this->getMockQueryBuilder()]); - line 479: $builder->getQuery()->orders[] = ['column' => 'foobar', 'direction' => 'asc']; - line 484: $builder->shouldReceive('getOffset')->andReturnNull(); - line 485: $builder->shouldReceive('getLimit')->andReturnNull(); - line 486: $builder->shouldReceive('forPageAfterId')->once()->with(2, 0, 'someIdField')->andReturnSelf(); - line 487: $builder->shouldReceive('forPageAfterId')->once()->with(2, 2, 'someIdField')->andReturnSelf(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 491: $callbackAssertor = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 476: public function testChunkPaginatesUsingIdWithLastChunkComplete() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 501: public function testChunkPaginatesUsingIdWithLastChunkPartial() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 501: public function testChunkPaginatesUsingIdWithLastChunkPartial() - line 503: $builder = m::mock(Builder::class.'[getOffset,getLimit,forPageAfterId,get]', [$this->getMockQueryBuilder()]); - line 504: $builder->getQuery()->orders[] = ['column' => 'foobar', 'direction' => 'asc']; - line 508: $builder->shouldReceive('getOffset')->andReturnNull(); - line 509: $builder->shouldReceive('getLimit')->andReturnNull(); - line 510: $builder->shouldReceive('forPageAfterId')->once()->with(2, 0, 'someIdField')->andReturnSelf(); - line 511: $builder->shouldReceive('forPageAfterId')->once()->with(2, 2, 'someIdField')->andReturnSelf(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 514: $callbackAssertor = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 501: public function testChunkPaginatesUsingIdWithLastChunkPartial() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 523: public function testChunkPaginatesUsingIdWithCountZero() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 523: public function testChunkPaginatesUsingIdWithCountZero() - line 525: $builder = m::mock(Builder::class.'[getOffset,getLimit,forPageAfterId,get]', [$this->getMockQueryBuilder()]); - line 526: $builder->getQuery()->orders[] = ['column' => 'foobar', 'direction' => 'asc']; - line 528: $builder->shouldReceive('getOffset')->andReturnNull(); - line 529: $builder->shouldReceive('getLimit')->andReturnNull(); - line 530: $builder->shouldReceive('forPageAfterId')->never(); - line 531: $builder->shouldReceive('get')->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 533: $callbackAssertor = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 523: public function testChunkPaginatesUsingIdWithCountZero() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 541: public function testLazyWithLastChunkComplete() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 541: public function testLazyWithLastChunkComplete() - line 543: $builder = m::mock(Builder::class.'[forPage,get]', [$this->getMockQueryBuilder()]); - line 544: $builder->getQuery()->orders[] = ['column' => 'foobar', 'direction' => 'asc']; - line 546: $builder->shouldReceive('forPage')->once()->with(1, 2)->andReturnSelf(); - line 547: $builder->shouldReceive('forPage')->once()->with(2, 2)->andReturnSelf(); - line 548: $builder->shouldReceive('forPage')->once()->with(3, 2)->andReturnSelf(); - line 557: $builder->lazy(2)->all() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 561: public function testLazyWithLastChunkPartial() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 561: public function testLazyWithLastChunkPartial() - line 563: $builder = m::mock(Builder::class.'[forPage,get]', [$this->getMockQueryBuilder()]); - line 564: $builder->getQuery()->orders[] = ['column' => 'foobar', 'direction' => 'asc']; - line 566: $builder->shouldReceive('forPage')->once()->with(1, 2)->andReturnSelf(); - line 567: $builder->shouldReceive('forPage')->once()->with(2, 2)->andReturnSelf(); - line 575: $builder->lazy(2)->all() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 579: public function testLazyIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 579: public function testLazyIsLazy() - line 581: $builder = m::mock(Builder::class.'[forPage,get]', [$this->getMockQueryBuilder()]); - line 582: $builder->getQuery()->orders[] = ['column' => 'foobar', 'direction' => 'asc']; - line 584: $builder->shouldReceive('forPage')->once()->with(1, 2)->andReturnSelf(); - line 587: $this->assertEquals(['foo1', 'foo2'], $builder->lazy(2)->take(2)->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 590: public function testLazyByIdWithLastChunkComplete() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 590: public function testLazyByIdWithLastChunkComplete() - line 592: $builder = m::mock(Builder::class.'[forPageAfterId,get]', [$this->getMockQueryBuilder()]); - line 593: $builder->getQuery()->orders[] = ['column' => 'foobar', 'direction' => 'asc']; - line 598: $builder->shouldReceive('forPageAfterId')->once()->with(2, 0, 'someIdField')->andReturnSelf(); - line 599: $builder->shouldReceive('forPageAfterId')->once()->with(2, 2, 'someIdField')->andReturnSelf(); - line 600: $builder->shouldReceive('forPageAfterId')->once()->with(2, 11, 'someIdField')->andReturnSelf(); - line 610: $builder->lazyById(2, 'someIdField')->all() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 614: public function testLazyByIdWithLastChunkPartial() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 614: public function testLazyByIdWithLastChunkPartial() - line 616: $builder = m::mock(Builder::class.'[forPageAfterId,get]', [$this->getMockQueryBuilder()]); - line 617: $builder->getQuery()->orders[] = ['column' => 'foobar', 'direction' => 'asc']; - line 621: $builder->shouldReceive('forPageAfterId')->once()->with(2, 0, 'someIdField')->andReturnSelf(); - line 622: $builder->shouldReceive('forPageAfterId')->once()->with(2, 2, 'someIdField')->andReturnSelf(); - line 631: $builder->lazyById(2, 'someIdField')->all() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 635: public function testLazyByIdIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 635: public function testLazyByIdIsLazy() - line 637: $builder = m::mock(Builder::class.'[forPageAfterId,get]', [$this->getMockQueryBuilder()]); - line 638: $builder->getQuery()->orders[] = ['column' => 'foobar', 'direction' => 'asc']; - line 641: $builder->shouldReceive('forPageAfterId')->once()->with(2, 0, 'someIdField')->andReturnSelf(); - line 649: $builder->lazyById(2, 'someIdField')->take(2)->all() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 653: public function testPluckReturnsTheMutatedAttributesOfAModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 653: public function testPluckReturnsTheMutatedAttributesOfAModel() - line 655: $builder = $this->getBuilder(); - line 656: $builder->getQuery()->shouldReceive('pluck')->with('name', '')->andReturn(new BaseCollection(['bar', 'baz'])); - line 657: $builder->setModel($this->getMockModel()); - line 658: $builder->getModel()->shouldReceive('hasAnyGetMutator')->with('name')->andReturn(true); - line 659: $builder->getModel()->shouldReceive('newFromBuilder')->with(['name' => 'bar'])->andReturn(new EloquentBuilderTestPluckStub(['name' => 'bar'])); - line 660: $builder->getModel()->shouldReceive('newFromBuilder')->with(['name' => 'baz'])->andReturn(new EloquentBuilderTestPluckStub(['name' => 'baz'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 665: public function testPluckReturnsTheCastedAttributesOfAModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 665: public function testPluckReturnsTheCastedAttributesOfAModel() - line 667: $builder = $this->getBuilder(); - line 668: $builder->getQuery()->shouldReceive('pluck')->with('name', '')->andReturn(new BaseCollection(['bar', 'baz'])); - line 669: $builder->setModel($this->getMockModel()); - line 670: $builder->getModel()->shouldReceive('hasAnyGetMutator')->with('name')->andReturn(false); - line 671: $builder->getModel()->shouldReceive('hasCast')->with('name')->andReturn(true); - line 672: $builder->getModel()->shouldReceive('newFromBuilder')->with(['name' => 'bar'])->andReturn(new EloquentBuilderTestPluckStub(['name' => 'bar'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 678: public function testPluckReturnsTheDateAttributesOfAModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 678: public function testPluckReturnsTheDateAttributesOfAModel() - line 680: $builder = $this->getBuilder(); - line 681: $builder->getQuery()->shouldReceive('pluck')->with('created_at', '')->andReturn(new BaseCollection(['2010-01-01 00:00:00', '2011-01-01 00:00:00'])); - line 682: $builder->setModel($this->getMockModel()); - line 683: $builder->getModel()->shouldReceive('hasAnyGetMutator')->with('created_at')->andReturn(false); - line 684: $builder->getModel()->shouldReceive('hasCast')->with('created_at')->andReturn(false); - line 685: $builder->getModel()->shouldReceive('getDates')->andReturn(['created_at']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 692: public function testQualifiedPluckReturnsTheMutatedAttributesOfAModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 692: public function testQualifiedPluckReturnsTheMutatedAttributesOfAModel() - line 694: $model = $this->getMockModel(); - line 697: $builder = $this->getBuilder(); - line 698: $builder->getQuery()->shouldReceive('pluck')->with($model->qualifyColumn('name'), '')->andReturn(new BaseCollection(['bar', 'baz'])); - line 699: $builder->setModel($model); - line 700: $builder->getModel()->shouldReceive('hasAnyGetMutator')->with('name')->andReturn(true); - line 701: $builder->getModel()->shouldReceive('newFromBuilder')->with(['name' => 'bar'])->andReturn(new EloquentBuilderTestPluckStub(['name' => 'bar'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 707: public function testQualifiedPluckReturnsTheCastedAttributesOfAModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 707: public function testQualifiedPluckReturnsTheCastedAttributesOfAModel() - line 709: $model = $this->getMockModel(); - line 712: $builder = $this->getBuilder(); - line 713: $builder->getQuery()->shouldReceive('pluck')->with($model->qualifyColumn('name'), '')->andReturn(new BaseCollection(['bar', 'baz'])); - line 714: $builder->setModel($model); - line 715: $builder->getModel()->shouldReceive('hasAnyGetMutator')->with('name')->andReturn(false); - line 716: $builder->getModel()->shouldReceive('hasCast')->with('name')->andReturn(true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 723: public function testQualifiedPluckReturnsTheDateAttributesOfAModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 723: public function testQualifiedPluckReturnsTheDateAttributesOfAModel() - line 725: $model = $this->getMockModel(); - line 728: $builder = $this->getBuilder(); - line 729: $builder->getQuery()->shouldReceive('pluck')->with($model->qualifyColumn('created_at'), '')->andReturn(new BaseCollection(['2010-01-01 00:00:00', '2011-01-01 00:00:00'])); - line 730: $builder->setModel($model); - line 731: $builder->getModel()->shouldReceive('hasAnyGetMutator')->with('created_at')->andReturn(false); - line 732: $builder->getModel()->shouldReceive('hasCast')->with('created_at')->andReturn(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 740: public function testPluckWithoutModelGetterJustReturnsTheAttributesFoundInDatabase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 740: public function testPluckWithoutModelGetterJustReturnsTheAttributesFoundInDatabase() - line 742: $builder = $this->getBuilder(); - line 743: $builder->getQuery()->shouldReceive('pluck')->with('name', '')->andReturn(new BaseCollection(['bar', 'baz'])); - line 744: $builder->setModel($this->getMockModel()); - line 745: $builder->getModel()->shouldReceive('hasAnyGetMutator')->with('name')->andReturn(false); - line 746: $builder->getModel()->shouldReceive('hasCast')->with('name')->andReturn(false); - line 747: $builder->getModel()->shouldReceive('getDates')->andReturn(['created_at']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 752: public function testLocalMacrosAreCalledOnBuilder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 752: public function testLocalMacrosAreCalledOnBuilder() - line 756: m::mock(ConnectionInterface::class), - line 760: $builder->macro('fooBar', function ($builder) { - line 765: $result = $builder->fooBar(); - line 767: $this->assertTrue($builder->hasMacro('fooBar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 761: $_SERVER['__test.builder'] = $builder; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 754: unset($_SERVER['__test.builder']); - line 770: unset($_SERVER['__test.builder']); - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 756: m::mock(ConnectionInterface::class), - line 757: m::mock(Grammar::class), - line 758: m::mock(Processor::class) - Test @ line 773: public function testGlobalMacrosAreCalledOnBuilder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 773: public function testGlobalMacrosAreCalledOnBuilder() - line 775: Builder::macro('foo', function ($bar) { - line 780: return $this->getQuery(); - line 783: $builder = $this->getBuilder(); - line 786: $this->assertSame('bar', $builder->foo('bar')); - line 787: $this->assertEquals($builder->bam(), $builder->getQuery()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 790: public function testMissingStaticMacrosThrowsProperException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 790: public function testMissingStaticMacrosThrowsProperException() - line 792: $this->expectException(BadMethodCallException::class); - line 793: $this->expectExceptionMessage('Call to undefined method Illuminate\Database\Eloquent\Builder::missingMacro()'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 790: public function testMissingStaticMacrosThrowsProperException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 798: public function testGetModelsProperlyHydratesModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 798: public function testGetModelsProperlyHydratesModels() - line 800: $builder = m::mock(Builder::class.'[get]', [$this->getMockQueryBuilder()]); - line 803: $builder->getQuery()->shouldReceive('get')->once()->with(['foo'])->andReturn(new BaseCollection($records)); - line 806: $builder->setModel($model); - line 808: $models = $builder->getModels(['foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 798: public function testGetModelsProperlyHydratesModels() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 813: public function testEagerLoadRelationsLoadTopLevelRelationships() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 813: public function testEagerLoadRelationsLoadTopLevelRelationships() - line 815: $builder = m::mock(Builder::class.'[eagerLoadRelation]', [$this->getMockQueryBuilder()]); - line 822: $builder->setEagerLoads(['foo' => $nop1, 'foo.bar' => $nop2]); - line 823: $builder->shouldAllowMockingProtectedMethods()->shouldReceive('eagerLoadRelation')->with(['models'], 'foo', $nop1)->andReturn(['foo']); - line 825: $results = $builder->eagerLoadRelations(['models']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 813: public function testEagerLoadRelationsLoadTopLevelRelationships() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 829: public function testEagerLoadRelationsCanBeFlushed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 829: public function testEagerLoadRelationsCanBeFlushed() - line 831: $builder = m::mock(Builder::class.'[eagerLoadRelation]', [$this->getMockQueryBuilder()]); - line 833: $builder->setEagerLoads(['foo']); - line 835: $this->assertSame(['foo'], $builder->getEagerLoads()); - line 837: $builder->withoutEagerLoads(); - line 839: $this->assertEmpty($builder->getEagerLoads()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 842: public function testRelationshipEagerLoadProcess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 842: public function testRelationshipEagerLoadProcess() - line 844: $builder = m::mock(Builder::class.'[getRelation]', [$this->getMockQueryBuilder()]); - line 845: $builder->setEagerLoads(['orders' => function ($query) { - line 854: $results = $builder->eagerLoadRelations(['models']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 846: $_SERVER['__eloquent.constrain'] = $query; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 858: unset($_SERVER['__eloquent.constrain']); - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 848: $relation = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 842: public function testRelationshipEagerLoadProcess() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 861: public function testRelationshipEagerLoadProcessForImplicitlyEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 861: public function testRelationshipEagerLoadProcessForImplicitlyEmpty() - line 863: $queryBuilder = $this->getMockQueryBuilder(); - line 865: $builder->setEagerLoads(['parentFoo' => function ($query) { - line 869: $this->mockConnectionForModel($model, 'SQLite'); - line 875: $relation = m::mock($model->parentFoo()); - line 879: $results = $builder->eagerLoadRelations($models); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 866: $_SERVER['__eloquent.constrain'] = $query; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 881: unset($_SERVER['__eloquent.constrain']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 861: public function testRelationshipEagerLoadProcessForImplicitlyEmpty() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 884: public function testGetRelationProperlySetsNestedRelationships() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 884: public function testGetRelationProperlySetsNestedRelationships() - line 886: $builder = $this->getBuilder(); - line 887: $builder->setModel($this->getMockModel()); - line 888: $builder->getModel()->shouldReceive('newInstance->orders')->once()->andReturn($relation = m::mock(stdClass::class)); - line 892: $builder->setEagerLoads(['orders' => null, 'orders.lines' => null, 'orders.lines.details' => null]); - line 894: $builder->getRelation('orders'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 888: $builder->getModel()->shouldReceive('newInstance->orders')->once()->andReturn($relation = m::mock(stdClass::class)); - line 889: $relationQuery = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 884: public function testGetRelationProperlySetsNestedRelationships() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 897: public function testGetRelationProperlySetsNestedRelationshipsWithSimilarNames() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 897: public function testGetRelationProperlySetsNestedRelationshipsWithSimilarNames() - line 899: $builder = $this->getBuilder(); - line 900: $builder->setModel($this->getMockModel()); - line 901: $builder->getModel()->shouldReceive('newInstance->orders')->once()->andReturn($relation = m::mock(stdClass::class)); - line 902: $builder->getModel()->shouldReceive('newInstance->ordersGroups')->once()->andReturn($groupsRelation = m::mock(stdClass::class)); - line 911: $builder->setEagerLoads(['orders' => null, 'ordersGroups' => null, 'ordersGroups.lines' => null, 'ordersGroups.lines.details' => null]); - line 913: $builder->getRelation('orders'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 901: $builder->getModel()->shouldReceive('newInstance->orders')->once()->andReturn($relation = m::mock(stdClass::class)); - line 902: $builder->getModel()->shouldReceive('newInstance->ordersGroups')->once()->andReturn($groupsRelation = m::mock(stdClass::class)); - line 904: $relationQuery = m::mock(stdClass::class); - line 907: $groupRelationQuery = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 897: public function testGetRelationProperlySetsNestedRelationshipsWithSimilarNames() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 917: public function testGetRelationThrowsException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 917: public function testGetRelationThrowsException() - line 919: $this->expectException(RelationNotFoundException::class); - line 921: $builder = $this->getBuilder(); - line 922: $builder->setModel($this->getMockModel()); - line 924: $builder->getRelation('invalid'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 917: public function testGetRelationThrowsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 927: public function testEagerLoadParsingSetsProperRelationships() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 927: public function testEagerLoadParsingSetsProperRelationships() - line 929: $builder = $this->getBuilder(); - line 931: $eagers = $builder->getEagerLoads(); - line 937: $builder = $this->getBuilder(); - line 939: $eagers = $builder->getEagerLoads(); - line 945: $builder = $this->getBuilder(); - line 947: $eagers = $builder->getEagerLoads(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 982: public function testQueryPassThru() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 21. Evidence: - line 982: public function testQueryPassThru() - line 984: $builder = $this->getBuilder(); - line 985: $builder->getQuery()->shouldReceive('foobar')->once()->andReturn('foo'); - line 987: $this->assertInstanceOf(Builder::class, $builder->foobar()); - line 989: $builder = $this->getBuilder(); - line 990: $builder->getQuery()->shouldReceive('insert')->once()->with(['bar'])->andReturn('foo'); - line 992: $this->assertSame('foo', $builder->insert(['bar'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1020: public function testQueryScopes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1020: public function testQueryScopes() - line 1022: $builder = $this->getBuilder(); - line 1023: $builder->getQuery()->shouldReceive('from'); - line 1024: $builder->getQuery()->shouldReceive('where')->once()->with('foo', 'bar'); - line 1025: $builder->setModel($model = new EloquentBuilderTestScopeStub); - line 1026: $result = $builder->approved(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1031: public function testQueryDynamicScopes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1031: public function testQueryDynamicScopes() - line 1033: $builder = $this->getBuilder(); - line 1034: $builder->getQuery()->shouldReceive('from'); - line 1035: $builder->getQuery()->shouldReceive('where')->once()->with('bar', 'foo'); - line 1036: $builder->setModel($model = new EloquentBuilderTestDynamicScopeStub); - line 1037: $result = $builder->dynamic('bar', 'foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1042: public function testQueryDynamicScopesNamed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1042: public function testQueryDynamicScopesNamed() - line 1044: $builder = $this->getBuilder(); - line 1045: $builder->getQuery()->shouldReceive('from'); - line 1046: $builder->getQuery()->shouldReceive('where')->once()->with('foo', 'foo'); - line 1047: $builder->setModel($model = new EloquentBuilderTestDynamicScopeStub); - line 1048: $result = $builder->dynamic(bar: 'foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1053: public function testNestedWhere() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1053: public function testNestedWhere() - line 1055: $nestedQuery = m::mock(Builder::class); - line 1056: $nestedRawQuery = $this->getMockQueryBuilder(); - line 1059: $model = $this->getMockModel()->makePartial(); - line 1061: $builder = $this->getBuilder(); - line 1062: $builder->getQuery()->shouldReceive('from'); - line 1063: $builder->setModel($model); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1055: $nestedQuery = m::mock(Builder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1053: public function testNestedWhere() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1073: public function testRealNestedWhereWithScopes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1073: public function testRealNestedWhereWithScopes() - line 1076: $this->mockConnectionForModel($model, 'SQLite'); - line 1077: $query = $model->newQuery()->where('foo', '=', 'bar')->where(function ($query) { - line 1080: $this->assertSame('select * from "table" where "foo" = ? and ("baz" > ?) and "table"."deleted_at" is null', $query->toSql()); - line 1081: $this->assertEquals(['bar', 9000], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1084: public function testRealNestedWhereWithScopesMacro() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1084: public function testRealNestedWhereWithScopesMacro() - line 1087: $this->mockConnectionForModel($model, 'SQLite'); - line 1088: $query = $model->newQuery()->where('foo', '=', 'bar')->where(function ($query) { - line 1091: $this->assertSame('select * from "table" where "foo" = ? and ("baz" > ? and "table"."deleted_at" is not null)', $query->toSql()); - line 1092: $this->assertEquals(['bar', 9000], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1095: public function testRealNestedWhereWithMultipleScopesAndOneDeadScope() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1095: public function testRealNestedWhereWithMultipleScopesAndOneDeadScope() - line 1098: $this->mockConnectionForModel($model, 'SQLite'); - line 1099: $query = $model->newQuery()->empty()->where('foo', '=', 'bar')->empty()->where(function ($query) { - line 1102: $this->assertSame('select * from "table" where "foo" = ? and ("baz" > ?) and "table"."deleted_at" is null', $query->toSql()); - line 1103: $this->assertEquals(['bar', 9000], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1106: public function testSimpleWhereNot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1106: public function testSimpleWhereNot() - line 1109: $this->mockConnectionForModel($model, 'SQLite'); - line 1110: $query = $model->newQuery()->whereNot('name', 'foo')->whereNot('name', '<>', 'bar'); - line 1111: $this->assertEquals('select * from "table" where not "name" = ? and not "name" <> ?', $query->toSql()); - line 1112: $this->assertEquals(['foo', 'bar'], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1115: public function testWhereNot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1115: public function testWhereNot() - line 1117: $nestedQuery = m::mock(Builder::class); - line 1118: $nestedRawQuery = $this->getMockQueryBuilder(); - line 1121: $model = $this->getMockModel()->makePartial(); - line 1123: $builder = $this->getBuilder(); - line 1124: $builder->getQuery()->shouldReceive('from'); - line 1125: $builder->setModel($model); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1117: $nestedQuery = m::mock(Builder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1115: public function testWhereNot() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1135: public function testSimpleOrWhereNot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1135: public function testSimpleOrWhereNot() - line 1138: $this->mockConnectionForModel($model, 'SQLite'); - line 1139: $query = $model->newQuery()->orWhereNot('name', 'foo')->orWhereNot('name', '<>', 'bar'); - line 1140: $this->assertEquals('select * from "table" where not "name" = ? or not "name" <> ?', $query->toSql()); - line 1141: $this->assertEquals(['foo', 'bar'], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1144: public function testOrWhereNot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1144: public function testOrWhereNot() - line 1146: $nestedQuery = m::mock(Builder::class); - line 1147: $nestedRawQuery = $this->getMockQueryBuilder(); - line 1150: $model = $this->getMockModel()->makePartial(); - line 1152: $builder = $this->getBuilder(); - line 1153: $builder->getQuery()->shouldReceive('from'); - line 1154: $builder->setModel($model); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1146: $nestedQuery = m::mock(Builder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1144: public function testOrWhereNot() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1164: public function testRealQueryHigherOrderOrWhereScopes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1164: public function testRealQueryHigherOrderOrWhereScopes() - line 1167: $this->mockConnectionForModel($model, 'SQLite'); - line 1168: $query = $model->newQuery()->one()->orWhere->two(); - line 1169: $this->assertSame('select * from "table" where "one" = ? or ("two" = ?)', $query->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1172: public function testRealQueryChainedHigherOrderOrWhereScopes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1172: public function testRealQueryChainedHigherOrderOrWhereScopes() - line 1175: $this->mockConnectionForModel($model, 'SQLite'); - line 1176: $query = $model->newQuery()->one()->orWhere->two()->orWhere->three(); - line 1177: $this->assertSame('select * from "table" where "one" = ? or ("two" = ?) or ("three" = ?)', $query->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1180: public function testRealQueryHigherOrderWhereNotScopes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1180: public function testRealQueryHigherOrderWhereNotScopes() - line 1183: $this->mockConnectionForModel($model, 'SQLite'); - line 1184: $query = $model->newQuery()->one()->whereNot->two(); - line 1185: $this->assertSame('select * from "table" where "one" = ? and not ("two" = ?)', $query->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1188: public function testRealQueryChainedHigherOrderWhereNotScopes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1188: public function testRealQueryChainedHigherOrderWhereNotScopes() - line 1191: $this->mockConnectionForModel($model, 'SQLite'); - line 1192: $query = $model->newQuery()->one()->whereNot->two()->whereNot->three(); - line 1193: $this->assertSame('select * from "table" where "one" = ? and not ("two" = ?) and not ("three" = ?)', $query->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1196: public function testRealQueryHigherOrderOrWhereNotScopes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1196: public function testRealQueryHigherOrderOrWhereNotScopes() - line 1199: $this->mockConnectionForModel($model, 'SQLite'); - line 1200: $query = $model->newQuery()->one()->orWhereNot->two(); - line 1201: $this->assertSame('select * from "table" where "one" = ? or not ("two" = ?)', $query->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1204: public function testRealQueryChainedHigherOrderOrWhereNotScopes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1204: public function testRealQueryChainedHigherOrderOrWhereNotScopes() - line 1207: $this->mockConnectionForModel($model, 'SQLite'); - line 1208: $query = $model->newQuery()->one()->orWhereNot->two()->orWhereNot->three(); - line 1209: $this->assertSame('select * from "table" where "one" = ? or not ("two" = ?) or not ("three" = ?)', $query->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1212: public function testSimpleWhere() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1212: public function testSimpleWhere() - line 1214: $builder = $this->getBuilder(); - line 1215: $builder->getQuery()->shouldReceive('where')->once()->with('foo', '=', 'bar'); - line 1216: $result = $builder->where('foo', '=', 'bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1220: public function testPostgresOperatorsWhere() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1220: public function testPostgresOperatorsWhere() - line 1222: $builder = $this->getBuilder(); - line 1223: $builder->getQuery()->shouldReceive('where')->once()->with('foo', '@>', 'bar'); - line 1224: $result = $builder->where('foo', '@>', 'bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1228: public function testWhereBelongsTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 1228: public function testWhereBelongsTo() - line 1240: $builder = $this->getBuilder(); - line 1242: $builder->setModel($related); - line 1243: $builder->getQuery()->shouldReceive('whereIn')->once()->with('eloquent_builder_test_where_belongs_to_stubs.parent_id', [2], 'and'); - line 1245: $result = $builder->whereBelongsTo($parent); - line 1248: $builder = $this->getBuilder(); - line 1250: $builder->setModel($related); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1281: public function testWhereAttachedTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1281: public function testWhereAttachedTo() - line 1287: $builder = EloquentBuilderTestModelParentStub::whereAttachedTo($related, 'roles'); - line 1289: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where exists (select * from "eloquent_builder_test_model_far_related_stubs" inner join "user_role" on "eloquent_builder_test_model_far_related_stubs"."id" = "user_role"."related_id" where "eloquent_builder_test_model_parent_stubs"."id" = "user_role"."self_id" and "eloquent_builder_test_model_far_related_stubs"."id" in (49))', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1292: public function testWhereAttachedToCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1292: public function testWhereAttachedToCollection() - line 1302: $builder = EloquentBuilderTestModelFarRelatedStub::whereAttachedTo(new Collection([$model1, $model2]), 'roles'); - line 1304: $this->assertSame('select * from "eloquent_builder_test_model_far_related_stubs" where exists (select * from "eloquent_builder_test_model_parent_stubs" inner join "user_role" on "eloquent_builder_test_model_parent_stubs"."id" = "user_role"."self_id" where "eloquent_builder_test_model_far_related_stubs"."id" = "user_role"."related_id" and "eloquent_builder_test_model_parent_stubs"."id" in (3, 4))', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1307: public function testDeleteOverride() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1307: public function testDeleteOverride() - line 1309: $builder = $this->getBuilder(); - line 1310: $builder->onDelete(function ($builder) { - line 1313: $this->assertEquals(['foo' => $builder], $builder->delete()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1316: public function testWithCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1316: public function testWithCount() - line 1320: $builder = $model->withCount('foo'); - line 1322: $this->assertSame('select "eloquent_builder_test_model_parent_stubs".*, (select count(*) from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_count" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1325: public function testWithCountAndSelect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1325: public function testWithCountAndSelect() - line 1329: $builder = $model->select('id')->withCount('foo'); - line 1331: $this->assertSame('select "id", (select count(*) from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_count" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1334: public function testWithCountSecondRelationWithClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1334: public function testWithCountSecondRelationWithClosure() - line 1338: $builder = $model->withCount(['address', 'foo' => function ($query) { - line 1342: $this->assertSame('select "eloquent_builder_test_model_parent_stubs".*, (select count(*) from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "address_count", (select count(*) from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id" and "active" = ?) as "foo_count" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1345: public function testWithCountAndMergedWheres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1345: public function testWithCountAndMergedWheres() - line 1349: $builder = $model->select('id')->withCount(['activeFoo' => function ($q) { - line 1353: $this->assertSame('select "id", (select count(*) from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id" and "bam" > ? and "active" = ?) as "active_foo_count" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); - line 1354: $this->assertEquals(['qux', true], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1357: public function testWithCountAndGlobalScope() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1357: public function testWithCountAndGlobalScope() - line 1361: return $query->addSelect('id'); - line 1364: $builder = $model->select('id')->withCount(['foo']); - line 1371: $this->assertSame('select "id", (select count(*) from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_count" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1374: public function testWithMin() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1374: public function testWithMin() - line 1378: $builder = $model->withMin('foo', 'price'); - line 1380: $this->assertSame('select "eloquent_builder_test_model_parent_stubs".*, (select min("eloquent_builder_test_model_close_related_stubs"."price") from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_min_price" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1383: public function testWithMinExpression() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1383: public function testWithMinExpression() - line 1387: $builder = $model->withMin('foo', new Expression('price - discount')); - line 1389: $this->assertSame('select "eloquent_builder_test_model_parent_stubs".*, (select min(price - discount) from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_min_price_discount" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1392: public function testWithMinOnBelongsToMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1392: public function testWithMinOnBelongsToMany() - line 1396: $builder = $model->withMin('roles', 'id'); - line 1398: $this->assertSame('select "eloquent_builder_test_model_parent_stubs".*, (select min("eloquent_builder_test_model_far_related_stubs"."id") from "eloquent_builder_test_model_far_related_stubs" inner join "user_role" on "eloquent_builder_test_model_far_related_stubs"."id" = "user_role"."related_id" where "eloquent_builder_test_model_parent_stubs"."id" = "user_role"."self_id") as "roles_min_id" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1416: public function testWithMax() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1416: public function testWithMax() - line 1420: $builder = $model->withMax('foo', 'price'); - line 1422: $this->assertSame('select "eloquent_builder_test_model_parent_stubs".*, (select max("eloquent_builder_test_model_close_related_stubs"."price") from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_max_price" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1425: public function testWithMaxExpression() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1425: public function testWithMaxExpression() - line 1429: $builder = $model->withMax('foo', new Expression('price - discount')); - line 1431: $this->assertSame('select "eloquent_builder_test_model_parent_stubs".*, (select max(price - discount) from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_max_price_discount" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1434: public function testWithAvg() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1434: public function testWithAvg() - line 1438: $builder = $model->withAvg('foo', 'price'); - line 1440: $this->assertSame('select "eloquent_builder_test_model_parent_stubs".*, (select avg("eloquent_builder_test_model_close_related_stubs"."price") from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_avg_price" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1443: public function testWitAvgExpression() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1443: public function testWitAvgExpression() - line 1447: $builder = $model->withAvg('foo', new Expression('price - discount')); - line 1449: $this->assertSame('select "eloquent_builder_test_model_parent_stubs".*, (select avg(price - discount) from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_avg_price_discount" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1452: public function testWithCountAndConstraintsAndHaving() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1452: public function testWithCountAndConstraintsAndHaving() - line 1456: $builder = $model->where('bar', 'baz'); - line 1457: $builder->withCount(['foo' => function ($q) { - line 1461: $this->assertSame('select "eloquent_builder_test_model_parent_stubs".*, (select count(*) from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id" and "bam" > ?) as "foo_count" from "eloquent_builder_test_model_parent_stubs" where "bar" = ? having "foo_count" >= ?', $builder->toSql()); - line 1462: $this->assertEquals(['qux', 'baz', 1], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1465: public function testWithCountAndRename() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1465: public function testWithCountAndRename() - line 1469: $builder = $model->withCount('foo as foo_bar'); - line 1471: $this->assertSame('select "eloquent_builder_test_model_parent_stubs".*, (select count(*) from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_bar" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1474: public function testWithCountMultipleAndPartialRename() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1474: public function testWithCountMultipleAndPartialRename() - line 1478: $builder = $model->withCount(['foo as foo_bar', 'foo']); - line 1480: $this->assertSame('select "eloquent_builder_test_model_parent_stubs".*, (select count(*) from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_bar", (select count(*) from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_count" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1483: public function testWithAggregateAlias() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1483: public function testWithAggregateAlias() - line 1487: $builder = $model->withAggregate('foo', new Expression('TIMESTAMPDIFF(SECOND, `created_at`, `updated_at`)'), 'sum'); - line 1491: $builder->toSql() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1495: public function testWithAggregateAndSelfRelationConstrain() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1495: public function testWithAggregateAndSelfRelationConstrain() - line 1498: return $model->hasMany(EloquentBuilderTestStub::class, 'parent_id', 'id')->where('enum_value', new stdClass); - line 1502: $this->mockConnectionForModel($model, ''); - line 1503: $relationHash = $model->children()->getRelationCountHash(false); - line 1505: $builder = $model->withCount('children'); - line 1507: $this->assertSame(vsprintf('select "table".*, (select count(*) from "table" as "%s" where "table"."id" = "%s"."parent_id" and "enum_value" = ?) as "children_count" from "table"', [$relationHash, $relationHash]), $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1510: public function testWithExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1510: public function testWithExists() - line 1514: $builder = $model->withExists('foo'); - line 1516: $this->assertSame('select "eloquent_builder_test_model_parent_stubs".*, exists(select * from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_exists" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1519: public function testWithExistsAndSelect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1519: public function testWithExistsAndSelect() - line 1523: $builder = $model->select('id')->withExists('foo'); - line 1525: $this->assertSame('select "id", exists(select * from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_exists" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1528: public function testWithExistsAndMergedWheres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1528: public function testWithExistsAndMergedWheres() - line 1532: $builder = $model->select('id')->withExists(['activeFoo' => function ($q) { - line 1536: $this->assertSame('select "id", exists(select * from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id" and "bam" > ? and "active" = ?) as "active_foo_exists" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); - line 1537: $this->assertEquals(['qux', true], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1540: public function testWithExistsAndGlobalScope() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1540: public function testWithExistsAndGlobalScope() - line 1544: return $query->addSelect('id'); - line 1547: $builder = $model->select('id')->withExists(['foo']); - line 1554: $this->assertSame('select "id", exists(select * from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_exists" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1557: public function testWithExistsOnBelongsToMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1557: public function testWithExistsOnBelongsToMany() - line 1561: $builder = $model->withExists('roles'); - line 1563: $this->assertSame('select "eloquent_builder_test_model_parent_stubs".*, exists(select * from "eloquent_builder_test_model_far_related_stubs" inner join "user_role" on "eloquent_builder_test_model_far_related_stubs"."id" = "user_role"."related_id" where "eloquent_builder_test_model_parent_stubs"."id" = "user_role"."self_id") as "roles_exists" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1581: public function testWithExistsAndRename() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1581: public function testWithExistsAndRename() - line 1585: $builder = $model->withExists('foo as foo_bar'); - line 1587: $this->assertSame('select "eloquent_builder_test_model_parent_stubs".*, exists(select * from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_bar" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1590: public function testWithExistsMultipleAndPartialRename() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1590: public function testWithExistsMultipleAndPartialRename() - line 1594: $builder = $model->withExists(['foo as foo_bar', 'foo']); - line 1596: $this->assertSame('select "eloquent_builder_test_model_parent_stubs".*, exists(select * from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_bar", exists(select * from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_exists" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1599: public function testHasWithConstraintsAndHavingInSubquery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1599: public function testHasWithConstraintsAndHavingInSubquery() - line 1603: $builder = $model->where('bar', 'baz'); - line 1604: $builder->whereHas('foo', function ($q) { - line 1608: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where "bar" = ? and exists (select * from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id" having "bam" > ?) and "quux" = ?', $builder->toSql()); - line 1609: $this->assertEquals(['baz', 'qux', 'quuux'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1612: public function testHasWithConstraintsWithOrWhereAndHavingInSubquery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1612: public function testHasWithConstraintsWithOrWhereAndHavingInSubquery() - line 1616: $builder = $model->where('name', 'larry'); - line 1617: $builder->whereHas('address', function ($q) { - line 1623: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where "name" = ? and exists (select * from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id" and ("zipcode" = ? or "zipcode" = ?) having "street" = ?) and "age" = ?', $builder->toSql()); - line 1624: $this->assertEquals(['larry', '90210', '90220', 'fooside dr', 29], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1627: public function testHasWithConstraintsWithOrWhereAndSubqueryInRelationFromClause() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1627: public function testHasWithConstraintsWithOrWhereAndSubqueryInRelationFromClause() - line 1630: return $model->address()->fromSub(EloquentBuilderTestModelCloseRelatedStub::query(), 'eloquent_builder_test_model_close_related_stubs'); - line 1635: $builder = $model->where('name', 'larry'); - line 1636: $builder->whereHas('addressAsExpression', function ($q) { - line 1642: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where "name" = ? and exists (select * from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id" and ("zipcode" = ? or "zipcode" = ?) having "street" = ?) and "age" = ?', $builder->toSql()); - line 1643: $this->assertEquals(['larry', '90210', '90220', 'fooside dr', 29], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1646: public function testHasWithConstraintsAndJoinAndHavingInSubquery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1646: public function testHasWithConstraintsAndJoinAndHavingInSubquery() - line 1649: $builder = $model->where('bar', 'baz'); - line 1650: $builder->whereHas('foo', function ($q) { - line 1657: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where "bar" = ? and exists (select * from "eloquent_builder_test_model_close_related_stubs" inner join "quuuux" on "quuuuux" = ? where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id" having "bam" > ?) and "quux" = ?', $builder->toSql()); - line 1658: $this->assertEquals(['baz', 'quuuuuux', 'qux', 'quuux'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1661: public function testHasWithConstraintsAndHavingInSubqueryWithCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1661: public function testHasWithConstraintsAndHavingInSubqueryWithCount() - line 1665: $builder = $model->where('bar', 'baz'); - line 1666: $builder->whereHas('foo', function ($q) { - line 1670: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where "bar" = ? and (select count(*) from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id" having "bam" > ?) >= 2 and "quux" = ?', $builder->toSql()); - line 1671: $this->assertEquals(['baz', 'qux', 'quuux'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1674: public function testWithCountAndConstraintsWithBindingInSelectSub() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1674: public function testWithCountAndConstraintsWithBindingInSelectSub() - line 1678: $builder = $model->newQuery(); - line 1679: $builder->withCount(['foo' => function ($q) use ($model) { - line 1683: $this->assertSame('select "eloquent_builder_test_model_parent_stubs".*, (select count(*) from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_count" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); - line 1684: $this->assertSame([], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1687: public function testWithExistsAndConstraintsWithBindingInSelectSub() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1687: public function testWithExistsAndConstraintsWithBindingInSelectSub() - line 1691: $builder = $model->newQuery(); - line 1692: $builder->withExists(['foo' => function ($q) use ($model) { - line 1696: $this->assertSame('select "eloquent_builder_test_model_parent_stubs".*, exists(select * from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id") as "foo_exists" from "eloquent_builder_test_model_parent_stubs"', $builder->toSql()); - line 1697: $this->assertSame([], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1700: public function testHasNestedWithConstraints() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1700: public function testHasNestedWithConstraints() - line 1704: $builder = $model->whereHas('foo', function ($q) { - line 1710: $result = $model->whereHas('foo.bar', function ($q) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1717: public function testHasNested() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1717: public function testHasNested() - line 1721: $builder = $model->whereHas('foo', function ($q) { - line 1725: $result = $model->has('foo.bar')->toSql(); - line 1727: $this->assertEquals($builder->toSql(), $result); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1730: public function testHasNestedWithMorphTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1730: public function testHasNestedWithMorphTo() - line 1733: $connection = $this->mockConnectionForModel($model, ''); - line 1735: $morphToKey = $model->morph()->getMorphType(); - line 1742: $builder = $model->orWhereHasMorph('morph', [EloquentBuilderTestModelFarRelatedStub::class], function ($q) { - line 1748: $results = $model->has('morph.baz')->toSql(); - line 1753: $builderSql = $builder->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1730: public function testHasNestedWithMorphTo() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1759: public function testHasNestedWithMorphToAndMultipleSubRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1759: public function testHasNestedWithMorphToAndMultipleSubRelations() - line 1762: $connection = $this->mockConnectionForModel($model, ''); - line 1764: $morphToKey = $model->morph()->getMorphType(); - line 1771: $builder = $model->orWhereHasMorph('morph', [EloquentBuilderTestModelFarRelatedStub::class], function ($q) { - line 1777: $results = $model->has('morph.baz.bam')->toSql(); - line 1782: $builderSql = $builder->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1759: public function testHasNestedWithMorphToAndMultipleSubRelations() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1788: public function testOrHasNested() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1788: public function testOrHasNested() - line 1792: $builder = $model->whereHas('foo', function ($q) { - line 1798: $result = $model->has('foo.bar')->orHas('foo.baz')->toSql(); - line 1800: $this->assertEquals($builder->toSql(), $result); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1803: public function testSelfHasNested() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1803: public function testSelfHasNested() - line 1807: $nestedSql = $model->whereHas('parentFoo', function ($q) { - line 1811: $dotSql = $model->has('parentFoo.childFoo')->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1838: public function testDoesntHave() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1838: public function testDoesntHave() - line 1842: $builder = $model->doesntHave('foo'); - line 1844: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where not exists (select * from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id")', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1847: public function testDoesntHaveNested() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1847: public function testDoesntHaveNested() - line 1851: $builder = $model->doesntHave('foo.bar'); - line 1853: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where not exists (select * from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id" and exists (select * from "eloquent_builder_test_model_far_related_stubs" where "eloquent_builder_test_model_close_related_stubs"."id" = "eloquent_builder_test_model_far_related_stubs"."eloquent_builder_test_model_close_related_stub_id"))', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1856: public function testOrDoesntHave() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1856: public function testOrDoesntHave() - line 1860: $builder = $model->where('bar', 'baz')->orDoesntHave('foo'); - line 1862: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where "bar" = ? or not exists (select * from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id")', $builder->toSql()); - line 1863: $this->assertEquals(['baz'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1866: public function testWhereDoesntHave() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1866: public function testWhereDoesntHave() - line 1870: $builder = $model->whereDoesntHave('foo', function ($query) { - line 1874: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where not exists (select * from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id" and "bar" = ?)', $builder->toSql()); - line 1875: $this->assertEquals(['baz'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1878: public function testOrWhereDoesntHave() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1878: public function testOrWhereDoesntHave() - line 1882: $builder = $model->where('bar', 'baz')->orWhereDoesntHave('foo', function ($query) { - line 1886: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where "bar" = ? or not exists (select * from "eloquent_builder_test_model_close_related_stubs" where "eloquent_builder_test_model_parent_stubs"."foo_id" = "eloquent_builder_test_model_close_related_stubs"."id" and "qux" = ?)', $builder->toSql()); - line 1887: $this->assertEquals(['baz', 'quux'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1890: public function testWhereMorphedTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1890: public function testWhereMorphedTo() - line 1893: $this->mockConnectionForModel($model, ''); - line 1898: $builder = $model->whereMorphedTo('morph', $relatedModel); - line 1900: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where (("eloquent_builder_test_model_parent_stubs"."morph_type" = ? and "eloquent_builder_test_model_parent_stubs"."morph_id" in (?)))', $builder->toSql()); - line 1901: $this->assertEquals([$relatedModel->getMorphClass(), $relatedModel->getKey()], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1904: public function testWhereMorphedToCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1904: public function testWhereMorphedToCollection() - line 1907: $this->mockConnectionForModel($model, ''); - line 1915: $builder = $model->whereMorphedTo('morph', new Collection([$firstRelatedModel, $secondRelatedModel])); - line 1917: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where (("eloquent_builder_test_model_parent_stubs"."morph_type" = ? and "eloquent_builder_test_model_parent_stubs"."morph_id" in (?, ?)))', $builder->toSql()); - line 1918: $this->assertEquals([$firstRelatedModel->getMorphClass(), $firstRelatedModel->getKey(), $secondRelatedModel->getKey()], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1921: public function testWhereMorphedToCollectionWithDifferentModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1921: public function testWhereMorphedToCollectionWithDifferentModels() - line 1924: $this->mockConnectionForModel($model, ''); - line 1935: $builder = $model->whereMorphedTo('morph', [$firstRelatedModel, $secondRelatedModel, $thirdRelatedModel]); - line 1937: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where (("eloquent_builder_test_model_parent_stubs"."morph_type" = ? and "eloquent_builder_test_model_parent_stubs"."morph_id" in (?, ?)) or ("eloquent_builder_test_model_parent_stubs"."morph_type" = ? and "eloquent_builder_test_model_parent_stubs"."morph_id" in (?)))', $builder->toSql()); - line 1938: $this->assertEquals([$firstRelatedModel->getMorphClass(), $firstRelatedModel->getKey(), $thirdRelatedModel->getKey(), $secondRelatedModel->getMorphClass(), $secondRelatedModel->id], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1941: public function testWhereMorphedToNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1941: public function testWhereMorphedToNull() - line 1944: $this->mockConnectionForModel($model, ''); - line 1946: $builder = $model->whereMorphedTo('morph', null); - line 1947: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where "eloquent_builder_test_model_parent_stubs"."morph_type" is null', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1950: public function testWhereNotMorphedTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1950: public function testWhereNotMorphedTo() - line 1953: $this->mockConnectionForModel($model, ''); - line 1958: $builder = $model->whereNotMorphedTo('morph', $relatedModel); - line 1960: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where not (("eloquent_builder_test_model_parent_stubs"."morph_type" <=> ? and "eloquent_builder_test_model_parent_stubs"."morph_id" in (?)))', $builder->toSql()); - line 1961: $this->assertEquals([$relatedModel->getMorphClass(), $relatedModel->getKey()], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1964: public function testWhereNotMorphedToCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1964: public function testWhereNotMorphedToCollection() - line 1967: $this->mockConnectionForModel($model, ''); - line 1975: $builder = $model->whereNotMorphedTo('morph', new Collection([$firstRelatedModel, $secondRelatedModel])); - line 1977: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where not (("eloquent_builder_test_model_parent_stubs"."morph_type" <=> ? and "eloquent_builder_test_model_parent_stubs"."morph_id" in (?, ?)))', $builder->toSql()); - line 1978: $this->assertEquals([$firstRelatedModel->getMorphClass(), $firstRelatedModel->getKey(), $secondRelatedModel->getKey()], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1981: public function testWhereNotMorphedToCollectionWithDifferentModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1981: public function testWhereNotMorphedToCollectionWithDifferentModels() - line 1984: $this->mockConnectionForModel($model, ''); - line 1995: $builder = $model->whereNotMorphedTo('morph', [$firstRelatedModel, $secondRelatedModel, $thirdRelatedModel]); - line 1997: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where not (("eloquent_builder_test_model_parent_stubs"."morph_type" <=> ? and "eloquent_builder_test_model_parent_stubs"."morph_id" in (?, ?)) or ("eloquent_builder_test_model_parent_stubs"."morph_type" <=> ? and "eloquent_builder_test_model_parent_stubs"."morph_id" in (?)))', $builder->toSql()); - line 1998: $this->assertEquals([$firstRelatedModel->getMorphClass(), $firstRelatedModel->getKey(), $thirdRelatedModel->getKey(), $secondRelatedModel->getMorphClass(), $secondRelatedModel->id], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2001: public function testOrWhereMorphedTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2001: public function testOrWhereMorphedTo() - line 2004: $this->mockConnectionForModel($model, ''); - line 2009: $builder = $model->where('bar', 'baz')->orWhereMorphedTo('morph', $relatedModel); - line 2011: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where "bar" = ? or (("eloquent_builder_test_model_parent_stubs"."morph_type" = ? and "eloquent_builder_test_model_parent_stubs"."morph_id" in (?)))', $builder->toSql()); - line 2012: $this->assertEquals(['baz', $relatedModel->getMorphClass(), $relatedModel->getKey()], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2015: public function testOrWhereMorphedToCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2015: public function testOrWhereMorphedToCollection() - line 2018: $this->mockConnectionForModel($model, ''); - line 2026: $builder = $model->where('bar', 'baz')->orWhereMorphedTo('morph', new Collection([$firstRelatedModel, $secondRelatedModel])); - line 2028: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where "bar" = ? or (("eloquent_builder_test_model_parent_stubs"."morph_type" = ? and "eloquent_builder_test_model_parent_stubs"."morph_id" in (?, ?)))', $builder->toSql()); - line 2029: $this->assertEquals(['baz', $firstRelatedModel->getMorphClass(), $firstRelatedModel->getKey(), $secondRelatedModel->getKey()], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2032: public function testOrWhereMorphedToCollectionWithDifferentModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2032: public function testOrWhereMorphedToCollectionWithDifferentModels() - line 2035: $this->mockConnectionForModel($model, ''); - line 2046: $builder = $model->where('bar', 'baz')->orWhereMorphedTo('morph', [$firstRelatedModel, $secondRelatedModel, $thirdRelatedModel]); - line 2048: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where "bar" = ? or (("eloquent_builder_test_model_parent_stubs"."morph_type" = ? and "eloquent_builder_test_model_parent_stubs"."morph_id" in (?, ?)) or ("eloquent_builder_test_model_parent_stubs"."morph_type" = ? and "eloquent_builder_test_model_parent_stubs"."morph_id" in (?)))', $builder->toSql()); - line 2049: $this->assertEquals(['baz', $firstRelatedModel->getMorphClass(), $firstRelatedModel->getKey(), $thirdRelatedModel->getKey(), $secondRelatedModel->getMorphClass(), $secondRelatedModel->id], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2052: public function testOrWhereMorphedToNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2052: public function testOrWhereMorphedToNull() - line 2055: $this->mockConnectionForModel($model, ''); - line 2057: $builder = $model->where('bar', 'baz')->orWhereMorphedTo('morph', null); - line 2059: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where "bar" = ? or "eloquent_builder_test_model_parent_stubs"."morph_type" is null', $builder->toSql()); - line 2060: $this->assertEquals(['baz'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2063: public function testOrWhereNotMorphedTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2063: public function testOrWhereNotMorphedTo() - line 2066: $this->mockConnectionForModel($model, ''); - line 2071: $builder = $model->where('bar', 'baz')->orWhereNotMorphedTo('morph', $relatedModel); - line 2073: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where "bar" = ? or not (("eloquent_builder_test_model_parent_stubs"."morph_type" <=> ? and "eloquent_builder_test_model_parent_stubs"."morph_id" in (?)))', $builder->toSql()); - line 2074: $this->assertEquals(['baz', $relatedModel->getMorphClass(), $relatedModel->getKey()], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2077: public function testOrWhereNotMorphedToCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2077: public function testOrWhereNotMorphedToCollection() - line 2080: $this->mockConnectionForModel($model, ''); - line 2088: $builder = $model->where('bar', 'baz')->orWhereNotMorphedTo('morph', new Collection([$firstRelatedModel, $secondRelatedModel])); - line 2090: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where "bar" = ? or not (("eloquent_builder_test_model_parent_stubs"."morph_type" <=> ? and "eloquent_builder_test_model_parent_stubs"."morph_id" in (?, ?)))', $builder->toSql()); - line 2091: $this->assertEquals(['baz', $firstRelatedModel->getMorphClass(), $firstRelatedModel->getKey(), $secondRelatedModel->getKey()], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2094: public function testOrWhereNotMorphedToCollectionWithDifferentModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2094: public function testOrWhereNotMorphedToCollectionWithDifferentModels() - line 2097: $this->mockConnectionForModel($model, ''); - line 2108: $builder = $model->where('bar', 'baz')->orWhereNotMorphedTo('morph', [$firstRelatedModel, $secondRelatedModel, $thirdRelatedModel]); - line 2110: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where "bar" = ? or not (("eloquent_builder_test_model_parent_stubs"."morph_type" <=> ? and "eloquent_builder_test_model_parent_stubs"."morph_id" in (?, ?)) or ("eloquent_builder_test_model_parent_stubs"."morph_type" <=> ? and "eloquent_builder_test_model_parent_stubs"."morph_id" in (?)))', $builder->toSql()); - line 2111: $this->assertEquals(['baz', $firstRelatedModel->getMorphClass(), $firstRelatedModel->getKey(), $thirdRelatedModel->getKey(), $secondRelatedModel->getMorphClass(), $secondRelatedModel->id], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2114: public function testWhereMorphedToClass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2114: public function testWhereMorphedToClass() - line 2117: $this->mockConnectionForModel($model, ''); - line 2119: $builder = $model->whereMorphedTo('morph', EloquentBuilderTestModelCloseRelatedStub::class); - line 2121: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where "eloquent_builder_test_model_parent_stubs"."morph_type" = ?', $builder->toSql()); - line 2122: $this->assertEquals([EloquentBuilderTestModelCloseRelatedStub::class], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2125: public function testWhereNotMorphedToClass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2125: public function testWhereNotMorphedToClass() - line 2128: $this->mockConnectionForModel($model, ''); - line 2130: $builder = $model->whereNotMorphedTo('morph', EloquentBuilderTestModelCloseRelatedStub::class); - line 2132: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where not "eloquent_builder_test_model_parent_stubs"."morph_type" <=> ?', $builder->toSql()); - line 2133: $this->assertEquals([EloquentBuilderTestModelCloseRelatedStub::class], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2136: public function testOrWhereMorphedToClass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2136: public function testOrWhereMorphedToClass() - line 2139: $this->mockConnectionForModel($model, ''); - line 2141: $builder = $model->where('bar', 'baz')->orWhereMorphedTo('morph', EloquentBuilderTestModelCloseRelatedStub::class); - line 2143: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where "bar" = ? or "eloquent_builder_test_model_parent_stubs"."morph_type" = ?', $builder->toSql()); - line 2144: $this->assertEquals(['baz', EloquentBuilderTestModelCloseRelatedStub::class], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2147: public function testOrWhereNotMorphedToClass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2147: public function testOrWhereNotMorphedToClass() - line 2150: $this->mockConnectionForModel($model, ''); - line 2152: $builder = $model->where('bar', 'baz')->orWhereNotMorphedTo('morph', EloquentBuilderTestModelCloseRelatedStub::class); - line 2154: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where "bar" = ? or not "eloquent_builder_test_model_parent_stubs"."morph_type" <=> ?', $builder->toSql()); - line 2155: $this->assertEquals(['baz', EloquentBuilderTestModelCloseRelatedStub::class], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2158: public function testWhereNotMorphedToWithSQLite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2158: public function testWhereNotMorphedToWithSQLite() - line 2161: $this->mockConnectionForModel($model, 'SQLite'); - line 2166: $builder = $model->whereNotMorphedTo('morph', $relatedModel); - line 2168: $this->assertStringNotContainsString('<=>', $builder->toSql()); - line 2169: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where not (("eloquent_builder_test_model_parent_stubs"."morph_type" IS ? and "eloquent_builder_test_model_parent_stubs"."morph_id" in (?)))', $builder->toSql()); - line 2170: $this->assertEquals([$relatedModel->getMorphClass(), $relatedModel->getKey()], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2173: public function testWhereNotMorphedToClassWithSQLite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2173: public function testWhereNotMorphedToClassWithSQLite() - line 2176: $this->mockConnectionForModel($model, 'SQLite'); - line 2178: $builder = $model->whereNotMorphedTo('morph', EloquentBuilderTestModelCloseRelatedStub::class); - line 2180: $this->assertStringNotContainsString('<=>', $builder->toSql()); - line 2181: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where not "eloquent_builder_test_model_parent_stubs"."morph_type" IS ?', $builder->toSql()); - line 2182: $this->assertEquals([EloquentBuilderTestModelCloseRelatedStub::class], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2185: public function testWhereMorphedToAlias() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2185: public function testWhereMorphedToAlias() - line 2188: $this->mockConnectionForModel($model, ''); - line 2194: $builder = $model->whereMorphedTo('morph', EloquentBuilderTestModelCloseRelatedStub::class); - line 2196: $this->assertSame('select * from "eloquent_builder_test_model_parent_stubs" where "eloquent_builder_test_model_parent_stubs"."morph_type" = ?', $builder->toSql()); - line 2197: $this->assertEquals(['alias'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2202: public function testWhereKeyMethodWithInt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2202: public function testWhereKeyMethodWithInt() - line 2204: $model = $this->getMockModel(); - line 2205: $builder = $this->getBuilder()->setModel($model); - line 2206: $keyName = $model->getQualifiedKeyName(); - line 2211: $builder->getQuery()->shouldReceive('where')->once()->with($keyName, '=', $int); - line 2213: $builder->whereKey($int); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2202: public function testWhereKeyMethodWithInt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2216: public function testWhereKeyMethodWithStringZero() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2216: public function testWhereKeyMethodWithStringZero() - line 2219: $builder = $this->getBuilder()->setModel($model); - line 2220: $keyName = $model->getQualifiedKeyName(); - line 2224: $builder->getQuery()->shouldReceive('where')->once()->with($keyName, '=', (string) $int); - line 2226: $builder->whereKey($int); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2216: public function testWhereKeyMethodWithStringZero() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2229: public function testWhereKeyMethodWithStringNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2229: public function testWhereKeyMethodWithStringNull() - line 2232: $builder = $this->getBuilder()->setModel($model); - line 2233: $keyName = $model->getQualifiedKeyName(); - line 2235: $builder->getQuery()->shouldReceive('where')->once()->with($keyName, '=', m::on(function ($argument) { - line 2239: $builder->whereKey(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2229: public function testWhereKeyMethodWithStringNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2242: public function testWhereKeyMethodWithArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2242: public function testWhereKeyMethodWithArray() - line 2244: $model = $this->getMockModel(); - line 2246: $builder = $this->getBuilder()->setModel($model); - line 2247: $keyName = $model->getQualifiedKeyName(); - line 2251: $builder->getQuery()->shouldReceive('whereIntegerInRaw')->once()->with($keyName, $array); - line 2253: $builder->whereKey($array); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2242: public function testWhereKeyMethodWithArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2256: public function testWhereKeyMethodWithCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2256: public function testWhereKeyMethodWithCollection() - line 2258: $model = $this->getMockModel(); - line 2260: $builder = $this->getBuilder()->setModel($model); - line 2261: $keyName = $model->getQualifiedKeyName(); - line 2265: $builder->getQuery()->shouldReceive('whereIntegerInRaw')->once()->with($keyName, $collection); - line 2267: $builder->whereKey($collection); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2256: public function testWhereKeyMethodWithCollection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2270: public function testWhereKeyMethodWithModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2270: public function testWhereKeyMethodWithModel() - line 2273: $builder = $this->getBuilder()->setModel($model); - line 2274: $keyName = $model->getQualifiedKeyName(); - line 2276: $builder->getQuery()->shouldReceive('where')->once()->with($keyName, '=', m::on(function ($argument) { - line 2280: $builder->whereKey(new class extends Model Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2270: public function testWhereKeyMethodWithModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2286: public function testWhereKeyNotMethodWithStringZero() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2286: public function testWhereKeyNotMethodWithStringZero() - line 2289: $builder = $this->getBuilder()->setModel($model); - line 2290: $keyName = $model->getQualifiedKeyName(); - line 2294: $builder->getQuery()->shouldReceive('where')->once()->with($keyName, '!=', (string) $int); - line 2296: $builder->whereKeyNot($int); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2286: public function testWhereKeyNotMethodWithStringZero() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2299: public function testWhereKeyNotMethodWithStringNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2299: public function testWhereKeyNotMethodWithStringNull() - line 2302: $builder = $this->getBuilder()->setModel($model); - line 2303: $keyName = $model->getQualifiedKeyName(); - line 2305: $builder->getQuery()->shouldReceive('where')->once()->with($keyName, '!=', m::on(function ($argument) { - line 2309: $builder->whereKeyNot(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2299: public function testWhereKeyNotMethodWithStringNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2312: public function testWhereKeyNotMethodWithInt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2312: public function testWhereKeyNotMethodWithInt() - line 2314: $model = $this->getMockModel(); - line 2315: $builder = $this->getBuilder()->setModel($model); - line 2316: $keyName = $model->getQualifiedKeyName(); - line 2321: $builder->getQuery()->shouldReceive('where')->once()->with($keyName, '!=', $int); - line 2323: $builder->whereKeyNot($int); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2312: public function testWhereKeyNotMethodWithInt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2326: public function testWhereKeyNotMethodWithArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2326: public function testWhereKeyNotMethodWithArray() - line 2328: $model = $this->getMockModel(); - line 2330: $builder = $this->getBuilder()->setModel($model); - line 2331: $keyName = $model->getQualifiedKeyName(); - line 2335: $builder->getQuery()->shouldReceive('whereIntegerNotInRaw')->once()->with($keyName, $array); - line 2337: $builder->whereKeyNot($array); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2326: public function testWhereKeyNotMethodWithArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2340: public function testWhereKeyNotMethodWithCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2340: public function testWhereKeyNotMethodWithCollection() - line 2342: $model = $this->getMockModel(); - line 2344: $builder = $this->getBuilder()->setModel($model); - line 2345: $keyName = $model->getQualifiedKeyName(); - line 2349: $builder->getQuery()->shouldReceive('whereIntegerNotInRaw')->once()->with($keyName, $collection); - line 2351: $builder->whereKeyNot($collection); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2340: public function testWhereKeyNotMethodWithCollection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2354: public function testWhereKeyNotMethodWithModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2354: public function testWhereKeyNotMethodWithModel() - line 2357: $builder = $this->getBuilder()->setModel($model); - line 2358: $keyName = $model->getQualifiedKeyName(); - line 2360: $builder->getQuery()->shouldReceive('where')->once()->with($keyName, '!=', m::on(function ($argument) { - line 2364: $builder->whereKeyNot(new class extends Model Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2354: public function testWhereKeyNotMethodWithModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2370: public function testExceptMethodWithModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2370: public function testExceptMethodWithModel() - line 2373: $builder = $this->getBuilder()->setModel($model); - line 2374: $keyName = $model->getQualifiedKeyName(); - line 2376: $builder->getQuery()->shouldReceive('where')->once()->with($keyName, '!=', m::on(function ($argument) { - line 2380: $builder->except(new class extends Model Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2370: public function testExceptMethodWithModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2386: public function testExceptMethodWithCollectionOfModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2386: public function testExceptMethodWithCollectionOfModel() - line 2389: $builder = $this->getBuilder()->setModel($model); - line 2390: $keyName = $model->getQualifiedKeyName(); - line 2392: $builder->getQuery()->shouldReceive('whereNotIn')->once()->with($keyName, m::on(function ($argument) { - line 2407: $builder->except($models); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2386: public function testExceptMethodWithCollectionOfModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2410: public function testExceptMethodWithArrayOfModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2410: public function testExceptMethodWithArrayOfModel() - line 2413: $builder = $this->getBuilder()->setModel($model); - line 2414: $keyName = $model->getQualifiedKeyName(); - line 2416: $builder->getQuery()->shouldReceive('whereNotIn')->once()->with($keyName, m::on(function ($argument) { - line 2431: $builder->except($models); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2410: public function testExceptMethodWithArrayOfModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2434: public function testWhereIn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2434: public function testWhereIn() - line 2437: $this->mockConnectionForModel($model, ''); - line 2438: $query = $model->newQuery()->withoutGlobalScopes()->whereIn('foo', $model->newQuery()->select('id')); - line 2440: $this->assertEquals($expected, $query->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2443: public function testLatestWithoutColumnWithCreatedAt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2443: public function testLatestWithoutColumnWithCreatedAt() - line 2445: $model = $this->getMockModel(); - line 2447: $builder = $this->getBuilder()->setModel($model); - line 2449: $builder->getQuery()->shouldReceive('latest')->once()->with('foo'); - line 2451: $builder->latest(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2443: public function testLatestWithoutColumnWithCreatedAt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2454: public function testLatestWithoutColumnWithoutCreatedAt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2454: public function testLatestWithoutColumnWithoutCreatedAt() - line 2456: $model = $this->getMockModel(); - line 2458: $builder = $this->getBuilder()->setModel($model); - line 2460: $builder->getQuery()->shouldReceive('latest')->once()->with('created_at'); - line 2462: $builder->latest(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2454: public function testLatestWithoutColumnWithoutCreatedAt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2465: public function testLatestWithColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2465: public function testLatestWithColumn() - line 2467: $model = $this->getMockModel(); - line 2468: $builder = $this->getBuilder()->setModel($model); - line 2470: $builder->getQuery()->shouldReceive('latest')->once()->with('foo'); - line 2472: $builder->latest('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2465: public function testLatestWithColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2475: public function testOldestWithoutColumnWithCreatedAt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2475: public function testOldestWithoutColumnWithCreatedAt() - line 2477: $model = $this->getMockModel(); - line 2479: $builder = $this->getBuilder()->setModel($model); - line 2481: $builder->getQuery()->shouldReceive('oldest')->once()->with('foo'); - line 2483: $builder->oldest(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2475: public function testOldestWithoutColumnWithCreatedAt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2486: public function testOldestWithoutColumnWithoutCreatedAt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2486: public function testOldestWithoutColumnWithoutCreatedAt() - line 2488: $model = $this->getMockModel(); - line 2490: $builder = $this->getBuilder()->setModel($model); - line 2492: $builder->getQuery()->shouldReceive('oldest')->once()->with('created_at'); - line 2494: $builder->oldest(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2486: public function testOldestWithoutColumnWithoutCreatedAt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2497: public function testOldestWithColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2497: public function testOldestWithColumn() - line 2499: $model = $this->getMockModel(); - line 2500: $builder = $this->getBuilder()->setModel($model); - line 2502: $builder->getQuery()->shouldReceive('oldest')->once()->with('foo'); - line 2504: $builder->oldest('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2497: public function testOldestWithColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2507: public function testUpdate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2507: public function testUpdate() - line 2511: $connection = m::mock(Connection::class); - line 2516: $this->mockConnectionForModel($model, ''); - line 2517: $builder->setModel($model); - line 2518: $builder->getConnection()->shouldReceive('update')->once() - line 2521: $result = $builder->update(['foo' => 'bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2511: $connection = m::mock(Connection::class); - line 2513: $query = new BaseBuilder($connection, new Grammar($connection), m::mock(Processor::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2507: public function testUpdate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2525: public function testUpdateWithTimestampValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2525: public function testUpdateWithTimestampValue() - line 2527: $connection = m::mock(Connection::class); - line 2532: $this->mockConnectionForModel($model, ''); - line 2533: $builder->setModel($model); - line 2534: $builder->getConnection()->shouldReceive('update')->once() - line 2537: $result = $builder->update(['foo' => 'bar', 'updated_at' => null]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2527: $connection = m::mock(Connection::class); - line 2529: $query = new BaseBuilder($connection, new Grammar($connection), m::mock(Processor::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2525: public function testUpdateWithTimestampValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2541: public function testUpdateWithQualifiedTimestampValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2541: public function testUpdateWithQualifiedTimestampValue() - line 2543: $connection = m::mock(Connection::class); - line 2548: $this->mockConnectionForModel($model, ''); - line 2549: $builder->setModel($model); - line 2550: $builder->getConnection()->shouldReceive('update')->once() - line 2553: $result = $builder->update(['table.foo' => 'bar', 'table.updated_at' => null]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2543: $connection = m::mock(Connection::class); - line 2545: $query = new BaseBuilder($connection, new Grammar($connection), m::mock(Processor::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2541: public function testUpdateWithQualifiedTimestampValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2557: public function testUpdateWithoutTimestamp() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2557: public function testUpdateWithoutTimestamp() - line 2559: $connection = m::mock(Connection::class); - line 2564: $this->mockConnectionForModel($model, ''); - line 2565: $builder->setModel($model); - line 2566: $builder->getConnection()->shouldReceive('update')->once() - line 2569: $result = $builder->update(['foo' => 'bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2559: $connection = m::mock(Connection::class); - line 2561: $query = new BaseBuilder($connection, new Grammar($connection), m::mock(Processor::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2557: public function testUpdateWithoutTimestamp() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2573: public function testUpdateWithAlias() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2573: public function testUpdateWithAlias() - line 2577: $connection = m::mock(Connection::class); - line 2582: $this->mockConnectionForModel($model, ''); - line 2583: $builder->setModel($model); - line 2584: $builder->getConnection()->shouldReceive('update')->once() - line 2587: $result = $builder->from('table as alias')->update(['foo' => 'bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2577: $connection = m::mock(Connection::class); - line 2579: $query = new BaseBuilder($connection, new Grammar($connection), m::mock(Processor::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2573: public function testUpdateWithAlias() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2591: public function testUpdateWithAliasWithQualifiedTimestampValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2591: public function testUpdateWithAliasWithQualifiedTimestampValue() - line 2595: $connection = m::mock(Connection::class); - line 2600: $this->mockConnectionForModel($model, ''); - line 2601: $builder->setModel($model); - line 2602: $builder->getConnection()->shouldReceive('update')->once() - line 2605: $result = $builder->from('table as alias')->update(['foo' => 'bar', 'alias.updated_at' => null]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2595: $connection = m::mock(Connection::class); - line 2597: $query = new BaseBuilder($connection, new Grammar($connection), m::mock(Processor::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2591: public function testUpdateWithAliasWithQualifiedTimestampValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2611: public function testUpsert() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2611: public function testUpsert() - line 2615: $query = m::mock(BaseBuilder::class); - line 2621: $builder->setModel($model); - line 2629: $result = $builder->upsert([['email' => 'foo', 'name' => 'bar'], ['name' => 'bar2', 'email' => 'foo2']], ['email']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2615: $query = m::mock(BaseBuilder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2611: public function testUpsert() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2634: public function testTouch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2634: public function testTouch() - line 2638: $query = m::mock(BaseBuilder::class); - line 2644: $builder->setModel($model); - line 2648: $result = $builder->touch(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2638: $query = m::mock(BaseBuilder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2634: public function testTouch() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2653: public function testTouchWithCustomColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2653: public function testTouchWithCustomColumn() - line 2657: $query = m::mock(BaseBuilder::class); - line 2663: $builder->setModel($model); - line 2667: $result = $builder->touch('published_at'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2657: $query = m::mock(BaseBuilder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2653: public function testTouchWithCustomColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2672: public function testTouchWithoutUpdatedAtColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2672: public function testTouchWithoutUpdatedAtColumn() - line 2674: $query = m::mock(BaseBuilder::class); - line 2680: $builder->setModel($model); - line 2682: $query->shouldNotReceive('update'); - line 2684: $result = $builder->touch(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2674: $query = m::mock(BaseBuilder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2672: public function testTouchWithoutUpdatedAtColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2689: public function testWithCastsMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2689: public function testWithCastsMethod() - line 2691: $builder = new Builder($this->getMockQueryBuilder()); - line 2692: $model = $this->getMockModel(); - line 2693: $builder->setModel($model); - line 2696: $builder->withCasts(['foo' => 'bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2689: public function testWithCastsMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2699: public function testClone() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2699: public function testClone() - line 2701: $connection = m::mock(Connection::class); - line 2705: $builder->select('*')->from('users'); - line 2706: $clone = $builder->clone()->where('email', 'foo'); - line 2709: $this->assertSame('select * from "users"', $builder->toSql()); - line 2710: $this->assertSame('select * from "users" where "email" = ?', $clone->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2701: $connection = m::mock(Connection::class); - line 2703: $query = new BaseBuilder($connection, new Grammar($connection), m::mock(Processor::class)); - Test @ line 2713: public function testCloneModelMakesAFreshCopyOfTheModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 2713: public function testCloneModelMakesAFreshCopyOfTheModel() - line 2715: $connection = m::mock(Connection::class); - line 2718: $builder = (new Builder($query))->setModel(new EloquentBuilderTestStub); - line 2719: $builder->select('*')->from('users'); - line 2725: $builder->onClone(function (Builder $query) use (&$onCloneCallbackCalledCount, &$onCloneQuery) { - line 2731: $clone = $builder->clone()->where('email', 'foo'); - line 2734: $this->assertSame('select * from "users"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2715: $connection = m::mock(Connection::class); - line 2717: $query = new BaseBuilder($connection, new Grammar($connection), m::mock(Processor::class)); - Test @ line 2741: public function testToRawSql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2741: public function testToRawSql() - line 2743: $query = m::mock(BaseBuilder::class); - line 2749: $this->assertSame('select * from "users" where "email" = \'foo\'', $builder->toRawSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2743: $query = m::mock(BaseBuilder::class); - Test @ line 2752: public function testPassthruMethodsCallsAreNotCaseSensitive() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2752: public function testPassthruMethodsCallsAreNotCaseSensitive() - line 2754: $query = m::mock(BaseBuilder::class); - line 2764: $this->assertSame('select 1', $builder->TORAWSQL()); - line 2765: $this->assertSame('select 1', $builder->toRawSql()); - line 2766: $this->assertSame('select 1', $builder->toRawSQL()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2754: $query = m::mock(BaseBuilder::class); - Test @ line 2769: public function testPassthruArrayElementsMustAllBeLowercase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2769: public function testPassthruArrayElementsMustAllBeLowercase() - line 2771: $builder = new class(m::mock(BaseBuilder::class)) extends Builder - line 2780: $passthru = $builder->getPassthru(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2771: $builder = new class(m::mock(BaseBuilder::class)) extends Builder - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2769: public function testPassthruArrayElementsMustAllBeLowercase() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2794: public function testPipeCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2794: public function testPipeCallback() - line 2802: $result = $query->pipe(fn (Builder $query) => 5); - line 2805: $result = $query->pipe(fn (Builder $query) => null); - line 2808: $result = $query->pipe(function (Builder $query) { - line 2813: $this->assertCount(0, $query->getQuery()->wheres); - line 2814: $result = $query->pipe(fn (Builder $query) => $query->where('foo', 'bar')); - line 2816: $this->assertCount(1, $query->getQuery()->wheres); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentCollectionQueueableTest.php - Test @ line 18: public function testSerializesPivotsEntitiesId() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 18: public function testSerializesPivotsEntitiesId() - line 24: $c->getQueueableIds(); - line 26: $spy->shouldHaveReceived() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 18: public function testSerializesPivotsEntitiesId() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 31: public function testSerializesModelEntitiesById() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 31: public function testSerializesModelEntitiesById() - line 37: $c->getQueueableIds(); - line 39: $spy->shouldHaveReceived() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 31: public function testSerializesModelEntitiesById() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 47: public function testJsonSerializationOfCollectionQueueableIdsWorks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 47: public function testJsonSerializationOfCollectionQueueableIdsWorks() - line 52: $mock = m::mock(Model::class, [ - line 60: 'ids' => $c->getQueueableIds(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 47: public function testJsonSerializationOfCollectionQueueableIdsWorks() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseEloquentCollectionTest.php - Test @ line 69: public function testAddingItemsToCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 69: public function testAddingItemsToCollection() - line 72: $c->add('bar')->add('baz'); - line 73: $this->assertEquals(['foo', 'bar', 'baz'], $c->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 88: public function testContainsWithMultipleArguments() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 88: public function testContainsWithMultipleArguments() - line 92: $this->assertTrue($c->contains('id', 1)); - line 93: $this->assertTrue($c->contains('id', '>=', 2)); - line 94: $this->assertFalse($c->contains('id', '>', 2)); - line 96: $this->assertFalse($c->doesntContain('id', 1)); - line 97: $this->assertFalse($c->doesntContain('id', '>=', 2)); - line 98: $this->assertTrue($c->doesntContain('id', '>', 2)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 101: public function testContainsIndicatesIfModelInArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 101: public function testContainsIndicatesIfModelInArray() - line 103: $mockModel = m::mock(Model::class); - line 114: $this->assertTrue($c->contains($mockModel)); - line 115: $this->assertTrue($c->contains($mockModel2)); - line 116: $this->assertFalse($c->contains($mockModel3)); - line 118: $this->assertFalse($c->doesntContain($mockModel)); - line 119: $this->assertFalse($c->doesntContain($mockModel2)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 103: $mockModel = m::mock(Model::class); - line 106: $mockModel2 = m::mock(Model::class); - line 109: $mockModel3 = m::mock(Model::class); - Test @ line 123: public function testContainsIndicatesIfDifferentModelInArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 123: public function testContainsIndicatesIfDifferentModelInArray() - line 125: $mockModelFoo = m::namedMock('Foo', Model::class); - line 133: $this->assertTrue($c->contains($mockModelFoo)); - line 134: $this->assertFalse($c->contains($mockModelBar)); - line 136: $this->assertFalse($c->doesntContain($mockModelFoo)); - line 137: $this->assertTrue($c->doesntContain($mockModelBar)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 140: public function testContainsIndicatesIfKeyedModelInArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 140: public function testContainsIndicatesIfKeyedModelInArray() - line 142: $mockModel = m::mock(Model::class); - line 147: $c->add($mockModel2); - line 149: $this->assertTrue($c->contains(1)); - line 150: $this->assertTrue($c->contains(2)); - line 151: $this->assertFalse($c->contains(3)); - line 153: $this->assertFalse($c->doesntContain(1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 142: $mockModel = m::mock(Model::class); - line 145: $mockModel2 = m::mock(Model::class); - Test @ line 158: public function testContainsKeyAndValueIndicatesIfModelInArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 158: public function testContainsKeyAndValueIndicatesIfModelInArray() - line 160: $mockModel1 = m::mock(Model::class); - line 168: $this->assertTrue($c->contains('name', 'Taylor')); - line 169: $this->assertTrue($c->contains('name', 'Abigail')); - line 170: $this->assertFalse($c->contains('name', 'Dayle')); - line 172: $this->assertFalse($c->doesntContain('name', 'Taylor')); - line 173: $this->assertFalse($c->doesntContain('name', 'Abigail')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 160: $mockModel1 = m::mock(Model::class); - line 163: $mockModel2 = m::mock(Model::class); - Test @ line 177: public function testContainsClosureIndicatesIfModelInArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 177: public function testContainsClosureIndicatesIfModelInArray() - line 179: $mockModel1 = m::mock(Model::class); - line 185: $this->assertTrue($c->contains(function ($model) { - line 188: $this->assertFalse($c->contains(function ($model) { - line 192: $this->assertFalse($c->doesntContain(function ($model) { - line 195: $this->assertTrue($c->doesntContain(function ($model) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 179: $mockModel1 = m::mock(Model::class); - line 181: $mockModel2 = m::mock(Model::class); - Test @ line 200: public function testFindMethodFindsModelById() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 200: public function testFindMethodFindsModelById() - line 202: $mockModel = m::mock(Model::class); - line 206: $this->assertSame($mockModel, $c->find(1)); - line 207: $this->assertSame('taylor', $c->find(2, 'taylor')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 202: $mockModel = m::mock(Model::class); - Test @ line 210: public function testFindMethodFindsManyModelsById() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 210: public function testFindMethodFindsManyModelsById() - line 212: $model1 = (new TestEloquentCollectionModel)->forceFill(['id' => 1]); - line 213: $model2 = (new TestEloquentCollectionModel)->forceFill(['id' => 2]); - line 214: $model3 = (new TestEloquentCollectionModel)->forceFill(['id' => 3]); - line 217: $this->assertInstanceOf(Collection::class, $c->find([])); - line 218: $this->assertCount(0, $c->find([1])); - line 220: $c->push($model1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 234: public function testFindOrFailFindsModelById() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 234: public function testFindOrFailFindsModelById() - line 236: $mockModel = m::mock(Model::class); - line 240: $this->assertSame($mockModel, $c->findOrFail(1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 236: $mockModel = m::mock(Model::class); - Test @ line 243: public function testFindOrFailFindsManyModelsById() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 243: public function testFindOrFailFindsManyModelsById() - line 245: $model1 = (new TestEloquentCollectionModel)->forceFill(['id' => 1]); - line 246: $model2 = (new TestEloquentCollectionModel)->forceFill(['id' => 2]); - line 249: $this->assertInstanceOf(Collection::class, $c->findOrFail([])); - line 250: $this->assertCount(0, $c->findOrFail([])); - line 252: $c->push($model1); - line 253: $this->assertCount(1, $c->findOrFail([1])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 265: public function testFindOrFailThrowsExceptionWithMessageWhenOtherModelsArePresent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 265: public function testFindOrFailThrowsExceptionWithMessageWhenOtherModelsArePresent() - line 267: $model = (new TestEloquentCollectionModel)->forceFill(['id' => 1]); - line 271: $this->expectException(ModelNotFoundException::class); - line 272: $this->expectExceptionMessage('No query results for model [Illuminate\Tests\Database\TestEloquentCollectionModel] 2'); - line 274: $c->findOrFail(2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 265: public function testFindOrFailThrowsExceptionWithMessageWhenOtherModelsArePresent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 277: public function testFindOrFailThrowsExceptionWithoutMessageWhenOtherModelsAreNotPresent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 277: public function testFindOrFailThrowsExceptionWithoutMessageWhenOtherModelsAreNotPresent() - line 281: $this->expectException(ModelNotFoundException::class); - line 282: $this->expectExceptionMessage(''); - line 284: $c->findOrFail(1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 277: public function testFindOrFailThrowsExceptionWithoutMessageWhenOtherModelsAreNotPresent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 287: public function testLoadMethodEagerLoadsGivenRelationships() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 287: public function testLoadMethodEagerLoadsGivenRelationships() - line 289: $c = $this->getMockBuilder(Collection::class)->onlyMethods(['first'])->setConstructorArgs([['foo']])->getMock(); - line 291: $c->expects($this->once())->method('first')->willReturn($mockItem); - line 295: $c->load('bar', 'baz'); - line 297: $this->assertEquals(['results'], $c->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 290: $mockItem = m::mock(stdClass::class); - Test @ line 300: public function testCollectionDictionaryReturnsModelKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 300: public function testCollectionDictionaryReturnsModelKeys() - line 302: $one = m::mock(Model::class); - line 313: $this->assertEquals([1, 2, 3], $c->modelKeys()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 302: $one = m::mock(Model::class); - line 305: $two = m::mock(Model::class); - line 308: $three = m::mock(Model::class); - Test @ line 316: public function testCollectionMergesWithGivenCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 316: public function testCollectionMergesWithGivenCollection() - line 318: $one = m::mock(Model::class); - line 330: $this->assertEquals(new Collection([$one, $two, $three]), $c1->merge($c2)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 318: $one = m::mock(Model::class); - line 321: $two = m::mock(Model::class); - line 324: $three = m::mock(Model::class); - Test @ line 333: public function testMap() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 333: public function testMap() - line 335: $one = m::mock(Model::class); - line 340: $cAfterMap = $c->map(function ($item) { - line 344: $this->assertEquals($c->all(), $cAfterMap->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 335: $one = m::mock(Model::class); - line 336: $two = m::mock(Model::class); - Test @ line 348: public function testMappingToNonModelsReturnsABaseCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 348: public function testMappingToNonModelsReturnsABaseCollection() - line 350: $one = m::mock(Model::class); - line 353: $c = (new Collection([$one, $two]))->map(function ($item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 350: $one = m::mock(Model::class); - line 351: $two = m::mock(Model::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 348: public function testMappingToNonModelsReturnsABaseCollection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 360: public function testMapWithKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 360: public function testMapWithKeys() - line 362: $one = m::mock(Model::class); - line 368: $cAfterMap = $c->mapWithKeys(function ($item) use (&$key) { - line 372: $this->assertEquals($c->all(), $cAfterMap->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 362: $one = m::mock(Model::class); - line 363: $two = m::mock(Model::class); - Test @ line 376: public function testMapWithKeysToNonModelsReturnsABaseCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 376: public function testMapWithKeysToNonModelsReturnsABaseCollection() - line 378: $one = m::mock(Model::class); - line 382: $c = (new Collection([$one, $two]))->mapWithKeys(function ($item) use (&$key) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 378: $one = m::mock(Model::class); - line 379: $two = m::mock(Model::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 376: public function testMapWithKeysToNonModelsReturnsABaseCollection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 389: public function testCollectionDiffsWithGivenCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 389: public function testCollectionDiffsWithGivenCollection() - line 391: $one = m::mock(Model::class); - line 403: $this->assertEquals(new Collection([$one]), $c1->diff($c2)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 391: $one = m::mock(Model::class); - line 394: $two = m::mock(Model::class); - line 397: $three = m::mock(Model::class); - Test @ line 406: public function testCollectionReturnsDuplicateBasedOnlyOnKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 406: public function testCollectionReturnsDuplicateBasedOnlyOnKeys() - line 421: $duplicates = Collection::make([$one, $two, $three, $four])->duplicates()->all(); - line 424: $duplicates = Collection::make([$one, $two, $three, $four])->duplicatesStrict()->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 428: public function testCollectionIntersectWithNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 428: public function testCollectionIntersectWithNull() - line 430: $one = m::mock(Model::class); - line 441: $this->assertEquals([], $c1->intersect(null)->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 430: $one = m::mock(Model::class); - line 433: $two = m::mock(Model::class); - line 436: $three = m::mock(Model::class); - Test @ line 444: public function testCollectionIntersectsWithGivenCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 444: public function testCollectionIntersectsWithGivenCollection() - line 446: $one = m::mock(Model::class); - line 458: $this->assertEquals(new Collection([$two]), $c1->intersect($c2)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 446: $one = m::mock(Model::class); - line 449: $two = m::mock(Model::class); - line 452: $three = m::mock(Model::class); - Test @ line 461: public function testCollectionReturnsUniqueItems() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 461: public function testCollectionReturnsUniqueItems() - line 463: $one = m::mock(Model::class); - line 471: $this->assertEquals(new Collection([$one, $two]), $c->unique()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 463: $one = m::mock(Model::class); - line 466: $two = m::mock(Model::class); - Test @ line 474: public function testCollectionReturnsUniqueStrictBasedOnKeysOnly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 474: public function testCollectionReturnsUniqueStrictBasedOnKeysOnly() - line 489: $uniques = Collection::make([$one, $two, $three, $four])->unique()->all(); - line 492: $uniques = Collection::make([$one, $two, $three, $four])->unique(null, true)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 496: public function testOnlyReturnsCollectionWithGivenModelKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 496: public function testOnlyReturnsCollectionWithGivenModelKeys() - line 498: $one = m::mock(Model::class); - line 509: $this->assertEquals($c, $c->only(null)); - line 510: $this->assertEquals(new Collection([$one]), $c->only(1)); - line 511: $this->assertEquals(new Collection([$two, $three]), $c->only([2, 3])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 498: $one = m::mock(Model::class); - line 501: $two = m::mock(Model::class); - line 504: $three = m::mock(Model::class); - Test @ line 514: public function testExceptReturnsCollectionWithoutGivenModelKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 514: public function testExceptReturnsCollectionWithoutGivenModelKeys() - line 516: $one = m::mock(Model::class); - line 527: $this->assertEquals($c, $c->except(null)); - line 528: $this->assertEquals(new Collection([$one, $three]), $c->except(2)); - line 529: $this->assertEquals(new Collection([$one]), $c->except([2, 3])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 516: $one = m::mock(Model::class); - line 519: $two = m::mock(Model::class); - line 522: $three = m::mock(Model::class); - Test @ line 532: public function testMakeHiddenAddsHiddenOnEntireCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 532: public function testMakeHiddenAddsHiddenOnEntireCollection() - line 535: $c = $c->makeHidden(['visible']); - line 537: $this->assertEquals(['hidden', 'visible'], $c[0]->getHidden()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 540: public function testMakeVisibleRemovesHiddenFromEntireCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 540: public function testMakeVisibleRemovesHiddenFromEntireCollection() - line 543: $c = $c->makeVisible(['hidden']); - line 545: $this->assertEquals([], $c[0]->getHidden()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 548: public function testMergeHiddenAddsHiddenOnEntireCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 548: public function testMergeHiddenAddsHiddenOnEntireCollection() - line 551: $c = $c->mergeHidden(['merged']); - line 553: $this->assertEquals(['hidden', 'merged'], $c[0]->getHidden()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 556: public function testMergeVisibleRemovesHiddenFromEntireCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 556: public function testMergeVisibleRemovesHiddenFromEntireCollection() - line 559: $c = $c->mergeVisible(['merged']); - line 561: $this->assertEquals(['visible', 'merged'], $c[0]->getVisible()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 564: public function testSetVisibleReplacesVisibleOnEntireCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 564: public function testSetVisibleReplacesVisibleOnEntireCollection() - line 567: $c = $c->setVisible(['hidden']); - line 569: $this->assertEquals(['hidden'], $c[0]->getVisible()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 572: public function testSetHiddenReplacesHiddenOnEntireCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 572: public function testSetHiddenReplacesHiddenOnEntireCollection() - line 575: $c = $c->setHidden(['visible']); - line 577: $this->assertEquals(['visible'], $c[0]->getHidden()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 580: public function testAppendsAddsTestOnEntireCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 580: public function testAppendsAddsTestOnEntireCollection() - line 583: $c = $c->makeVisible('test'); - line 584: $c = $c->append('test'); - line 586: $this->assertEquals(['test' => 'test'], $c[0]->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 589: public function testSetAppendsSetsAppendedPropertiesOnEntireCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 589: public function testSetAppendsSetsAppendedPropertiesOnEntireCollection() - line 592: $c->setAppends(['other_appended_field']); - line 596: $c->toArray() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 600: public function testWithoutAppendsRemovesAppendsOnEntireCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 600: public function testWithoutAppendsRemovesAppendsOnEntireCollection() - line 602: $this->seedData(); - line 604: $this->assertEquals('hello', $c->toArray()[0]['appended_field']); - line 606: $c = $c->withoutAppends(); - line 607: $this->assertArrayNotHasKey('appended_field', $c->toArray()[0]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 610: public function testNonModelRelatedMethods() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 610: public function testNonModelRelatedMethods() - line 614: $this->assertEquals(BaseCollection::class, get_class($a->pluck('foo'))); - line 615: $this->assertEquals(BaseCollection::class, get_class($a->keys())); - line 616: $this->assertEquals(BaseCollection::class, get_class($a->collapse())); - line 617: $this->assertEquals(BaseCollection::class, get_class($a->flatten())); - line 618: $this->assertEquals(BaseCollection::class, get_class($a->zip(['a', 'b'], ['c', 'd']))); - line 619: $this->assertEquals(BaseCollection::class, get_class($a->countBy('foo'))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 625: public function testMakeVisibleRemovesHiddenAndIncludesVisible() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 625: public function testMakeVisibleRemovesHiddenAndIncludesVisible() - line 628: $c = $c->makeVisible('hidden'); - line 630: $this->assertEquals([], $c[0]->getHidden()); - line 631: $this->assertEquals(['visible', 'hidden'], $c[0]->getVisible()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 634: public function testMultiply() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 634: public function testMultiply() - line 641: $this->assertEquals([], $c->multiply(-1)->all()); - line 642: $this->assertEquals([], $c->multiply(0)->all()); - line 644: $this->assertEquals([$a, $b], $c->multiply(1)->all()); - line 646: $this->assertEquals([$a, $b, $a, $b, $a, $b], $c->multiply(3)->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 655: public function testQueueableCollectionImplementationThrowsExceptionOnMultipleModelTypes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 655: public function testQueueableCollectionImplementationThrowsExceptionOnMultipleModelTypes() - line 657: $this->expectException(LogicException::class); - line 658: $this->expectExceptionMessage('Queueing collections with multiple model types is not supported.'); - line 661: $c->getQueueableClass(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 655: public function testQueueableCollectionImplementationThrowsExceptionOnMultipleModelTypes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 715: public function testCanConvertCollectionOfModelsToEloquentQueryBuilder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 715: public function testCanConvertCollectionOfModelsToEloquentQueryBuilder() - line 717: $one = m::mock(Model::class); - line 727: $mocBuilder->shouldReceive('whereKey')->once()->with($c->modelKeys())->andReturn($mocBuilder); - line 728: $this->assertInstanceOf(Builder::class, $c->toQuery()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 717: $one = m::mock(Model::class); - line 720: $two = m::mock(Model::class); - line 725: $mocBuilder = m::mock(Builder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 715: public function testCanConvertCollectionOfModelsToEloquentQueryBuilder() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 731: public function testConvertingEmptyCollectionToQueryThrowsException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 731: public function testConvertingEmptyCollectionToQueryThrowsException() - line 733: $this->expectException(LogicException::class); - line 736: $c->toQuery(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 731: public function testConvertingEmptyCollectionToQueryThrowsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 739: public function testLoadExistsShouldCastBool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 739: public function testLoadExistsShouldCastBool() - line 741: $this->seedData(); - line 742: $user = EloquentTestUserModel::with('articles')->first(); - line 743: $user->articles->loadExists('comments'); - line 744: $commentsExists = $user->articles->pluck('comments_exists')->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 739: public function testLoadExistsShouldCastBool() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 753: public function testWithNonScalarKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 753: public function testWithNonScalarKey() - line 756: $foo = m::mock(Model::class); - line 765: $this->assertCount(1, $collection->only([$fooKey])); - line 766: $this->assertSame($foo, $collection->only($fooKey)->first()); - line 768: $this->assertCount(1, $collection->except([$fooKey])); - line 769: $this->assertSame($bar, $collection->except($fooKey)->first()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 756: $foo = m::mock(Model::class); - line 760: $bar = m::mock(Model::class); - Test @ line 772: public function testPluck() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 772: public function testPluck() - line 774: $model1 = (new TestEloquentCollectionModel)->forceFill(['id' => 1, 'name' => 'John', 'country' => 'US']); - line 775: $model2 = (new TestEloquentCollectionModel)->forceFill(['id' => 2, 'name' => 'Jane', 'country' => 'NL']); - line 776: $model3 = (new TestEloquentCollectionModel)->forceFill(['id' => 3, 'name' => 'Taylor', 'country' => 'US']); - line 780: $c->push($model1)->push($model2)->push($model3); - line 782: $this->assertInstanceOf(BaseCollection::class, $c->pluck('id')); - line 783: $this->assertEquals([1, 2, 3], $c->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentDynamicRelationsTest.php - Test @ line 15: public function testBasicDynamicRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 15: public function testBasicDynamicRelations() - line 17: DynamicRelationModel::resolveRelationUsing('dynamicRel_2', fn () => new FakeHasManyRel); - line 20: $this->assertEquals(['many' => 'related'], $model->getRelationValue('dynamicRel_2')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 23: public function testBasicDynamicRelationsOverride() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 23: public function testBasicDynamicRelationsOverride() - line 26: DynamicRelationModel::resolveRelationUsing('dynamicRelConflict', fn ($m) => $m->hasOne(Related::class)); - line 30: $this->assertInstanceOf(HasMany::class, $model->dynamicRelConflict()); - line 32: $this->assertEquals(['many' => 'related'], $model->getRelationValue('dynamicRelConflict')); - line 33: $this->assertTrue($model->isRelation('dynamicRelConflict')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 36: public function testInharitedDynamicRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 36: public function testInharitedDynamicRelations() - line 38: DynamicRelationModel::resolveRelationUsing('inheritedDynamicRel', fn () => new FakeHasManyRel); - line 42: $this->assertTrue($model->isRelation('inheritedDynamicRel')); - line 43: $this->assertTrue($model4->isRelation('inheritedDynamicRel')); - line 44: $this->assertFalse($model2->isRelation('inheritedDynamicRel')); - line 45: $this->assertEquals($model->inheritedDynamicRel(), $model4->inheritedDynamicRel()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 49: public function testInheritedDynamicRelationsOverride() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 49: public function testInheritedDynamicRelationsOverride() - line 52: DynamicRelationModel::resolveRelationUsing('dynamicRelConflict', fn ($m) => $m->hasOne(Related::class)); - line 55: $this->assertInstanceOf(HasOne::class, $model->dynamicRelConflict()); - line 56: $this->assertInstanceOf(HasOne::class, $model4->dynamicRelConflict()); - line 57: DynamicRelationModel4::resolveRelationUsing('dynamicRelConflict', fn ($m) => $m->hasMany(Related::class)); - line 58: $this->assertInstanceOf(HasOne::class, $model->dynamicRelConflict()); - line 59: $this->assertInstanceOf(HasMany::class, $model4->dynamicRelConflict()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testInheritedDynamicRelationsOverride() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 62: public function testDynamicRelationsCanNotHaveTheSameNameAsNormalRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 62: public function testDynamicRelationsCanNotHaveTheSameNameAsNormalRelations() - line 67: DynamicRelationModel::resolveRelationUsing('hardCodedRelation', fn ($m) => $m->hasOne(Related::class)); - line 68: $this->assertInstanceOf(HasMany::class, $model->hardCodedRelation()); - line 70: $this->assertEquals(['many' => 'related'], $model->getRelationValue('hardCodedRelation')); - line 71: $this->assertTrue($model->isRelation('hardCodedRelation')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 74: public function testRelationResolvers() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 74: public function testRelationResolvers() - line 80: DynamicRelationModel::resolveRelationUsing('dynamicRel', fn ($m) => $m->hasOne(Related::class)); - line 81: DynamicRelationModel3::resolveRelationUsing('dynamicRel', fn (DynamicRelationModel3 $m) => $m->hasMany(Related::class)); - line 82: $this->assertInstanceOf(HasOne::class, $model1->dynamicRel()); - line 83: $this->assertInstanceOf(HasMany::class, $model3->dynamicRel()); - line 84: $this->assertTrue($model1->isRelation('dynamicRel')); - line 85: $this->assertTrue($model3->isRelation('dynamicRel')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentFactoryTest.php - Test @ line 110: public function test_basic_model_can_be_created() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 110: public function test_basic_model_can_be_created() - line 112: $user = FactoryTestUserFactory::new()->create(); - line 115: $user = FactoryTestUserFactory::new()->createOne(); - line 118: $user = FactoryTestUserFactory::new()->create(['name' => 'Taylor Otwell']); - line 122: $user = FactoryTestUserFactory::new()->set('name', 'Taylor Otwell')->create(); - line 126: $users = FactoryTestUserFactory::new()->createMany([ - line 133: $users = FactoryTestUserFactory::new()->createMany(2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 191: public function test_make_creates_unpersisted_model_instance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 191: public function test_make_creates_unpersisted_model_instance() - line 193: $user = FactoryTestUserFactory::new()->makeOne(); - line 196: $user = FactoryTestUserFactory::new()->make(['name' => 'Taylor Otwell']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 203: public function test_basic_model_attributes_can_be_created() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 203: public function test_basic_model_attributes_can_be_created() - line 205: $user = FactoryTestUserFactory::new()->raw(); - line 208: $user = FactoryTestUserFactory::new()->raw(['name' => 'Taylor Otwell']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 213: public function test_expanded_model_attributes_can_be_created() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 213: public function test_expanded_model_attributes_can_be_created() - line 215: $post = FactoryTestPostFactory::new()->raw(); - line 218: $post = FactoryTestPostFactory::new()->raw(['title' => 'Test Title']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 224: public function test_lazy_model_attributes_can_be_created() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 224: public function test_lazy_model_attributes_can_be_created() - line 226: $userFunction = FactoryTestUserFactory::new()->lazy(); - line 230: $userFunction = FactoryTestUserFactory::new()->lazy(['name' => 'Taylor Otwell']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 224: public function test_lazy_model_attributes_can_be_created() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 246: public function test_after_creating_and_making_callbacks_are_called() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 250: $_SERVER['__test.user.making'] = $user; - line 253: $_SERVER['__test.user.creating'] = $user; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 260: unset($_SERVER['__test.user.making'], $_SERVER['__test.user.creating']); - Test @ line 263: public function test_has_many_relationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 263: public function test_has_many_relationship() - line 266: ->has( - line 285: $this->assertCount(3, FactoryTestUser::latest()->first()->posts); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 270: $_SERVER['__test.post.state-user'] = $user; - line 276: $_SERVER['__test.post.creating-post'] = $post; - line 277: $_SERVER['__test.post.creating-user'] = $user; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 291: unset($_SERVER['__test.post.creating-post'], $_SERVER['__test.post.creating-user'], $_SERVER['__test.post.state-user']); - Test @ line 294: public function test_belongs_to_relationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 294: public function test_belongs_to_relationship() - line 297: ->for(FactoryTestUserFactory::new(['name' => 'Taylor Otwell']), 'user') - line 300: $this->assertCount(3, $posts->filter(function ($post) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 308: public function test_belongs_to_relationship_with_existing_model_instance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 308: public function test_belongs_to_relationship_with_existing_model_instance() - line 310: $user = FactoryTestUserFactory::new(['name' => 'Taylor Otwell'])->create(); - line 312: ->for($user, 'user') - line 315: $this->assertCount(3, $posts->filter(function ($post) use ($user) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 323: public function test_belongs_to_relationship_with_existing_model_instance_with_relationship_name_implied_from_model() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 323: public function test_belongs_to_relationship_with_existing_model_instance_with_relationship_name_implied_from_model() - line 325: $user = FactoryTestUserFactory::new(['name' => 'Taylor Otwell'])->create(); - line 327: ->for($user) - line 330: $this->assertCount(3, $posts->filter(function ($post) use ($user) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 351: public function test_morph_to_relationship_with_existing_model_instance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 351: public function test_morph_to_relationship_with_existing_model_instance() - line 353: $post = FactoryTestPostFactory::new(['title' => 'Test Title'])->create(); - line 355: ->for($post, 'commentable') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 365: public function test_belongs_to_many_relationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 365: public function test_belongs_to_many_relationship() - line 368: ->hasAttached( - line 380: $user = FactoryTestUser::latest()->first(); - line 383: $this->assertSame('Y', $user->roles->first()->pivot->admin); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 370: $_SERVER['__test.role.creating-role'] = $role; - line 371: $_SERVER['__test.role.creating-user'] = $user; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 388: unset($_SERVER['__test.role.creating-role'], $_SERVER['__test.role.creating-user']); - Test @ line 391: public function test_belongs_to_many_relationship_related_models_set_on_instance_when_touching_owner() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 391: public function test_belongs_to_many_relationship_related_models_set_on_instance_when_touching_owner() - line 393: $user = FactoryTestUserFactory::new()->create(); - line 394: $role = FactoryTestRoleFactory::new()->hasAttached($user, [], 'users')->create(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 391: public function test_belongs_to_many_relationship_related_models_set_on_instance_when_touching_owner() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 399: public function test_relation_can_be_loaded_before_model_is_created() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 399: public function test_relation_can_be_loaded_before_model_is_created() - line 401: $user = FactoryTestUserFactory::new(['name' => 'Taylor Otwell'])->createOne(); - line 404: ->for($user, 'user') - line 410: $this->assertTrue($post->relationLoaded('user')); - line 411: $this->assertTrue($post->user->is($user)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 417: public function test_belongs_to_many_relationship_with_existing_model_instances() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 417: public function test_belongs_to_many_relationship_with_existing_model_instances() - line 420: ->afterCreating(function ($role) { - line 425: ->hasAttached($roles, ['admin' => 'Y'], 'roles') - line 430: $user = FactoryTestUser::latest()->first(); - line 433: $this->assertSame('Y', $user->roles->first()->pivot->admin); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 421: $_SERVER['__test.role.creating-role'] = $role; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 437: unset($_SERVER['__test.role.creating-role']); - Test @ line 440: public function test_belongs_to_many_relationship_with_existing_model_instances_using_array() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 440: public function test_belongs_to_many_relationship_with_existing_model_instances_using_array() - line 443: ->afterCreating(function ($role) { - line 448: ->hasAttached($roles->toArray(), ['admin' => 'Y'], 'roles') - line 453: $user = FactoryTestUser::latest()->first(); - line 456: $this->assertSame('Y', $user->roles->first()->pivot->admin); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 444: $_SERVER['__test.role.creating-role'] = $role; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 460: unset($_SERVER['__test.role.creating-role']); - Test @ line 463: public function test_belongs_to_many_relationship_with_existing_model_instances_with_relationship_name_implied_from_model() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 463: public function test_belongs_to_many_relationship_with_existing_model_instances_with_relationship_name_implied_from_model() - line 466: ->afterCreating(function ($role) { - line 471: ->hasAttached($roles, ['admin' => 'Y']) - line 476: $user = FactoryTestUser::latest()->first(); - line 479: $this->assertSame('Y', $user->factoryTestRoles->first()->pivot->admin); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 467: $_SERVER['__test.role.creating-role'] = $role; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 483: unset($_SERVER['__test.role.creating-role']); - Test @ line 486: public function test_sequences() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 486: public function test_sequences() - line 488: $users = FactoryTestUserFactory::times(2)->sequence( - line 497: ->hasAttached( - line 506: $this->assertCount(2, $user->roles->filter(function ($role) { - line 510: $this->assertCount(2, $user->roles->filter(function ($role) { - line 514: $users = FactoryTestUserFactory::times(2)->sequence(function ($sequence) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 522: public function test_counted_sequence() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 522: public function test_counted_sequence() - line 524: $factory = FactoryTestUserFactory::new()->forEachSequence( - line 531: $prop = $class->getProperty('count'); - line 532: $value = $prop->getValue($factory); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 522: public function test_counted_sequence() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 537: public function test_sequence_with_has_many_relationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 537: public function test_sequence_with_has_many_relationship() - line 540: ->sequence( - line 556: $this->assertCount(3, FactoryTestUser::latest()->first()->posts); - line 558: FactoryTestPost::orderBy('title')->pluck('title')->all(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 570: public function test_cross_join_sequences() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 570: public function test_cross_join_sequences() - line 583: $users[$key]->only('first_name', 'last_name'), - line 589: ->state( - line 600: ->crossJoinSequence( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 625: public function test_resolve_nested_model_name_from_factory() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 625: public function test_resolve_nested_model_name_from_factory() - line 627: Container::getInstance()->instance(Application::class, $app = m::mock(Application::class)); - line 634: $this->assertSame(Price::class, $factory->modelName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 627: Container::getInstance()->instance(Application::class, $app = m::mock(Application::class)); - Test @ line 637: public function test_resolve_non_app_nested_model_factories() Violations: - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 639: Container::getInstance()->instance(Application::class, $app = m::mock(Application::class)); - Test @ line 656: public function test_model_has_factory() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 656: public function test_model_has_factory() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 665: public function test_dynamic_has_and_for_methods() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 665: public function test_dynamic_has_and_for_methods() - line 667: Factory::guessFactoryNamesUsing(function ($model) { - line 671: $user = FactoryTestUserFactory::new()->hasPosts(3)->create(); - line 676: ->forAuthor(['name' => 'Taylor Otwell']) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 685: public function test_can_be_macroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 685: public function test_can_be_macroable() - line 687: $factory = FactoryTestUserFactory::new(); - line 688: $factory->macro('getFoo', function () { - line 692: $this->assertSame('Hello World', $factory->getFoo()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 695: public function test_factory_can_conditionally_execute_code() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 695: public function test_factory_can_conditionally_execute_code() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 712: public function test_dynamic_trashed_state_for_softdeletes_models() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 712: public function test_dynamic_trashed_state_for_softdeletes_models() - line 716: $post = FactoryTestPostFactory::new()->trashed()->create(); - line 718: $this->assertTrue($post->deleted_at->equalTo($now->subDay())); - line 721: $post = FactoryTestPostFactory::new()->trashed($deleted_at)->create(); - line 723: $this->assertTrue($deleted_at->equalTo($post->deleted_at)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 728: public function test_dynamic_trashed_state_respects_existing_state() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 728: public function test_dynamic_trashed_state_respects_existing_state() - line 732: $comment = FactoryTestCommentFactory::new()->trashed()->create(); - line 734: $this->assertTrue($comment->deleted_at->equalTo($now->subWeek())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 739: public function test_dynamic_trashed_state_throws_exception_when_not_a_softdeletes_model() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 739: public function test_dynamic_trashed_state_throws_exception_when_not_a_softdeletes_model() - line 741: $this->expectException(BadMethodCallException::class); - line 742: FactoryTestUserFactory::new()->trashed()->create(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 739: public function test_dynamic_trashed_state_throws_exception_when_not_a_softdeletes_model() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 745: public function test_model_instances_can_be_used_in_place_of_nested_factories() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 745: public function test_model_instances_can_be_used_in_place_of_nested_factories() - line 747: Factory::guessFactoryNamesUsing(function ($model) { - line 751: $user = FactoryTestUserFactory::new()->create(); - line 753: ->recycle($user) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 763: public function test_for_method_recycles_models() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 763: public function test_for_method_recycles_models() - line 765: Factory::guessFactoryNamesUsing(function ($model) { - line 769: $user = FactoryTestUserFactory::new()->create(); - line 771: ->recycle($user) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 778: public function test_has_method_does_not_reassign_the_parent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 778: public function test_has_method_does_not_reassign_the_parent() - line 780: Factory::guessFactoryNamesUsing(function ($model) { - line 784: $post = FactoryTestPostFactory::new()->create(); - line 786: ->recycle($post) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 794: public function test_multiple_models_can_be_provided_to_recycle() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 794: public function test_multiple_models_can_be_provided_to_recycle() - line 796: Factory::guessFactoryNamesUsing(function ($model) { - line 800: $users = FactoryTestUserFactory::new()->count(3)->create(); - line 803: ->recycle($users) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 812: public function test_recycled_models_can_be_combined_with_multiple_calls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 812: public function test_recycled_models_can_be_combined_with_multiple_calls() - line 814: Factory::guessFactoryNamesUsing(function ($model) { - line 819: ->count(2) - line 822: ->recycle($users) - line 826: ->create(); - line 828: ->recycle($additionalUser) - line 835: ->recycle($users) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 845: public function test_no_models_can_be_provided_to_recycle() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 845: public function test_no_models_can_be_provided_to_recycle() - line 847: Factory::guessFactoryNamesUsing(function ($model) { - line 852: ->recycle([]) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 860: public function test_can_disable_relationships() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 860: public function test_can_disable_relationships() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 869: public function test_can_disable_relationships_explicitly_by_model_name() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 869: public function test_can_disable_relationships_explicitly_by_model_name() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 879: public function test_can_disable_relationships_explicitly_by_attribute_name() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 879: public function test_can_disable_relationships_explicitly_by_attribute_name() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 889: public function test_can_disable_relationships_explicitly_by_both_attribute_name_and_model_name() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 889: public function test_can_disable_relationships_explicitly_by_both_attribute_name_and_model_name() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 899: public function test_can_default_to_without_parents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 899: public function test_can_default_to_without_parents() - line 901: FactoryTestPostFactory::dontExpandRelationshipsByDefault(); - line 903: $post = FactoryTestPostFactory::new()->make(); - line 907: $postWithParents = FactoryTestPostFactory::new()->create(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 899: public function test_can_default_to_without_parents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 911: public function test_factory_model_names_correct() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 911: public function test_factory_model_names_correct() - line 913: $this->assertEquals(FactoryTestUseFactoryAttribute::factory()->modelName(), FactoryTestUseFactoryAttribute::class); - line 914: $this->assertEquals(FactoryTestGuessModel::factory()->modelName(), FactoryTestGuessModel::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 917: public function test_factory_global_model_resolver() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 917: public function test_factory_global_model_resolver() - line 919: Factory::guessModelNamesUsing(function ($factory) { - line 923: $this->assertEquals(FactoryTestGuessModel::factory()->modelName(), FactoryTestGuessModel::class); - line 924: $this->assertEquals(FactoryTestUseFactoryAttribute::factory()->modelName(), FactoryTestUseFactoryAttribute::class); - line 926: $this->assertEquals(FactoryTestUseFactoryAttributeFactory::new()->modelName(), FactoryTestUseFactoryAttribute::class); - line 927: $this->assertEquals(FactoryTestGuessModelFactory::new()->modelName(), FactoryTestGuessModel::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 986: public function test_factory_can_insert() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 986: public function test_factory_can_insert() - line 989: ->count(5) - line 996: $this->assertCount(5, $posts = FactoryTestPost::query()->where('title', 'hello')->get()); - line 1000: ($users = FactoryTestUser::query()->get())->count() - line 1002: $this->assertCount(1, $users->where('name', 'totwell')); - line 1003: $this->assertCount(1, $users->where('name', 'shaedrich')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1006: public function test_factory_can_insert_with_hidden() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1006: public function test_factory_can_insert_with_hidden() - line 1008: (new FactoryTestUserFactory())->forEachSequence(['name' => Name::Taylor, 'options' => 'abc'])->insert(); - line 1009: $user = DB::table('users')->sole(); - line 1011: $userModel = FactoryTestUser::query()->sole(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1015: public function test_factory_can_insert_with_array_casts() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1015: public function test_factory_can_insert_with_array_casts() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseEloquentGlobalScopesTest.php - Test @ line 31: public function testGlobalScopeIsApplied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 31: public function testGlobalScopeIsApplied() - line 34: $query = $model->newQuery(); - line 35: $this->assertSame('select * from "table" where "active" = ?', $query->toSql()); - line 36: $this->assertEquals([1], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 39: public function testGlobalScopeCanBeRemoved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 39: public function testGlobalScopeCanBeRemoved() - line 42: $query = $model->newQuery()->withoutGlobalScope(ActiveScope::class); - line 43: $this->assertSame('select * from "table"', $query->toSql()); - line 44: $this->assertEquals([], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 47: public function testClassNameGlobalScopeIsApplied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 47: public function testClassNameGlobalScopeIsApplied() - line 50: $query = $model->newQuery(); - line 51: $this->assertSame('select * from "table" where "active" = ?', $query->toSql()); - line 52: $this->assertEquals([1], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 55: public function testGlobalScopeInAttributeIsApplied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 55: public function testGlobalScopeInAttributeIsApplied() - line 58: $query = $model->newQuery(); - line 59: $this->assertSame('select * from "table" where "active" = ?', $query->toSql()); - line 60: $this->assertEquals([1], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 63: public function testGlobalScopeInInheritedAttributeIsApplied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 63: public function testGlobalScopeInInheritedAttributeIsApplied() - line 66: $query = $model->newQuery(); - line 67: $this->assertSame('select * from "table" where "active" = ?', $query->toSql()); - line 68: $this->assertEquals([1], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 71: public function testClosureGlobalScopeIsApplied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 71: public function testClosureGlobalScopeIsApplied() - line 74: $query = $model->newQuery(); - line 75: $this->assertSame('select * from "table" where "active" = ? order by "name" asc', $query->toSql()); - line 76: $this->assertEquals([1], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 79: public function testGlobalScopesCanBeRegisteredViaArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 79: public function testGlobalScopesCanBeRegisteredViaArray() - line 82: $query = $model->newQuery(); - line 83: $this->assertSame('select * from "table" where "active" = ? order by "name" asc', $query->toSql()); - line 84: $this->assertEquals([1], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 87: public function testClosureGlobalScopeCanBeRemoved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 87: public function testClosureGlobalScopeCanBeRemoved() - line 90: $query = $model->newQuery()->withoutGlobalScope('active_scope'); - line 91: $this->assertSame('select * from "table" order by "name" asc', $query->toSql()); - line 92: $this->assertEquals([], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 95: public function testGlobalScopeCanBeRemovedAfterTheQueryIsExecuted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 95: public function testGlobalScopeCanBeRemovedAfterTheQueryIsExecuted() - line 98: $query = $model->newQuery(); - line 99: $this->assertSame('select * from "table" where "active" = ? order by "name" asc', $query->toSql()); - line 100: $this->assertEquals([1], $query->getBindings()); - line 102: $query->withoutGlobalScope('active_scope'); - line 103: $this->assertSame('select * from "table" order by "name" asc', $query->toSql()); - line 104: $this->assertEquals([], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 107: public function testAllGlobalScopesCanBeRemoved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 107: public function testAllGlobalScopesCanBeRemoved() - line 110: $query = $model->newQuery()->withoutGlobalScopes(); - line 111: $this->assertSame('select * from "table"', $query->toSql()); - line 112: $this->assertEquals([], $query->getBindings()); - line 115: $this->assertSame('select * from "table"', $query->toSql()); - line 116: $this->assertEquals([], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 119: public function testAllGlobalScopesCanBeRemovedExceptSpecified() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 119: public function testAllGlobalScopesCanBeRemovedExceptSpecified() - line 122: $query = $model->newQuery()->withoutGlobalScopesExcept(['active_scope']); - line 123: $this->assertSame('select * from "table" where "active" = ?', $query->toSql()); - line 124: $this->assertEquals([1], $query->getBindings()); - line 127: $this->assertSame('select * from "table" where "active" = ?', $query->toSql()); - line 128: $this->assertEquals([1], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 131: public function testGlobalScopesWithOrWhereConditionsAreNested() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 131: public function testGlobalScopesWithOrWhereConditionsAreNested() - line 135: $query = $model->newQuery(); - line 136: $this->assertSame('select "email", "password" from "table" where ("email" = ? or "email" = ?) and "active" = ? order by "name" asc', $query->toSql()); - line 137: $this->assertEquals(['taylor@gmail.com', 'someone@else.com', 1], $query->getBindings()); - line 139: $query = $model->newQuery()->where('col1', 'val1')->orWhere('col2', 'val2'); - line 140: $this->assertSame('select "email", "password" from "table" where ("col1" = ? or "col2" = ?) and ("email" = ? or "email" = ?) and "active" = ? order by "name" asc', $query->toSql()); - line 141: $this->assertEquals(['val1', 'val2', 'taylor@gmail.com', 'someone@else.com', 1], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 144: public function testRegularScopesWithOrWhereConditionsAreNested() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 144: public function testRegularScopesWithOrWhereConditionsAreNested() - line 146: $query = EloquentClosureGlobalScopesTestModel::withoutGlobalScopes()->where('foo', 'foo')->orWhere('bar', 'bar')->approved(); - line 148: $this->assertSame('select * from "table" where ("foo" = ? or "bar" = ?) and ("approved" = ? or "should_approve" = ?)', $query->toSql()); - line 149: $this->assertEquals(['foo', 'bar', 1, 0], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 152: public function testScopesStartingWithOrBooleanArePreserved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 152: public function testScopesStartingWithOrBooleanArePreserved() - line 154: $query = EloquentClosureGlobalScopesTestModel::withoutGlobalScopes()->where('foo', 'foo')->orWhere('bar', 'bar')->orApproved(); - line 156: $this->assertSame('select * from "table" where ("foo" = ? or "bar" = ?) or ("approved" = ? or "should_approve" = ?)', $query->toSql()); - line 157: $this->assertEquals(['foo', 'bar', 1, 0], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 160: public function testHasQueryWhereBothModelsHaveGlobalScopes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 160: public function testHasQueryWhereBothModelsHaveGlobalScopes() - line 162: $query = EloquentGlobalScopesWithRelationModel::has('related')->where('bar', 'baz'); - line 167: $this->assertEquals($mainQuery, $query->toSql()); - line 168: $this->assertEquals(['bar', 1, 'baz', 1], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentHasManyTest.php - Test @ line 23: public function testMakeMethodDoesNotSaveNewModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 23: public function testMakeMethodDoesNotSaveNewModel() - line 25: $relation = $this->getRelation(); - line 26: $instance = $this->expectNewModel($relation, ['name' => 'taylor']); - line 27: $instance->expects($this->never())->method('save'); - line 29: $this->assertEquals($instance, $relation->make(['name' => 'taylor'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 32: public function testMakeManyCreatesARelatedModelForEachRecord() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 32: public function testMakeManyCreatesARelatedModelForEachRecord() - line 39: $relation = $this->getRelation(); - line 40: $relation->getRelated()->shouldReceive('newCollection')->once()->andReturn(new Collection); - line 42: $taylor = $this->expectNewModel($relation, ['name' => 'taylor']); - line 43: $taylor->expects($this->never())->method('save'); - line 44: $colin = $this->expectNewModel($relation, ['name' => 'colin']); - line 45: $colin->expects($this->never())->method('save'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 32: public function testMakeManyCreatesARelatedModelForEachRecord() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 53: public function testCreateMethodProperlyCreatesNewModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 53: public function testCreateMethodProperlyCreatesNewModel() - line 55: $relation = $this->getRelation(); - line 56: $created = $this->expectCreatedModel($relation, ['name' => 'taylor']); - line 58: $this->assertEquals($created, $relation->create(['name' => 'taylor'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 61: public function testForceCreateMethodProperlyCreatesNewModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 61: public function testForceCreateMethodProperlyCreatesNewModel() - line 63: $relation = $this->getRelation(); - line 64: $created = $this->expectForceCreatedModel($relation, ['name' => 'taylor']); - line 66: $this->assertEquals($created, $relation->forceCreate(['name' => 'taylor'])); - line 67: $this->assertEquals(1, $created->getAttribute('foreign_key')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 70: public function testFindOrNewMethodFindsModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 70: public function testFindOrNewMethodFindsModel() - line 72: $relation = $this->getRelation(); - line 73: $relation->getQuery()->shouldReceive('find')->once()->with('foo', ['*'])->andReturn($model = m::mock(stdClass::class)); - line 74: $model->shouldReceive('setAttribute')->never(); - line 76: $this->assertInstanceOf(stdClass::class, $relation->findOrNew('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 73: $relation->getQuery()->shouldReceive('find')->once()->with('foo', ['*'])->andReturn($model = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 70: public function testFindOrNewMethodFindsModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 79: public function testFindOrNewMethodReturnsNewModelWithForeignKeySet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 79: public function testFindOrNewMethodReturnsNewModelWithForeignKeySet() - line 81: $relation = $this->getRelation(); - line 82: $relation->getQuery()->shouldReceive('find')->once()->with('foo', ['*'])->andReturn(null); - line 83: $relation->getRelated()->shouldReceive('newInstance')->once()->with()->andReturn($model = m::mock(Model::class)); - line 86: $this->assertInstanceOf(Model::class, $relation->findOrNew('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 83: $relation->getRelated()->shouldReceive('newInstance')->once()->with()->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 79: public function testFindOrNewMethodReturnsNewModelWithForeignKeySet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 89: public function testFirstOrNewMethodFindsFirstModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 89: public function testFirstOrNewMethodFindsFirstModel() - line 91: $relation = $this->getRelation(); - line 92: $relation->getQuery()->shouldReceive('where')->once()->with(['foo'])->andReturn($relation->getQuery()); - line 93: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(stdClass::class)); - line 94: $model->shouldReceive('setAttribute')->never(); - line 96: $this->assertInstanceOf(stdClass::class, $relation->firstOrNew(['foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 93: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 89: public function testFirstOrNewMethodFindsFirstModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 99: public function testFirstOrNewMethodWithValuesFindsFirstModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 99: public function testFirstOrNewMethodWithValuesFindsFirstModel() - line 101: $relation = $this->getRelation(); - line 102: $relation->getQuery()->shouldReceive('where')->once()->with(['foo' => 'bar'])->andReturn($relation->getQuery()); - line 103: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(stdClass::class)); - line 104: $relation->getRelated()->shouldReceive('newInstance')->never(); - line 105: $model->shouldReceive('setAttribute')->never(); - line 107: $this->assertInstanceOf(stdClass::class, $relation->firstOrNew(['foo' => 'bar'], ['baz' => 'qux'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 103: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 99: public function testFirstOrNewMethodWithValuesFindsFirstModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 110: public function testFirstOrNewMethodReturnsNewModelWithForeignKeySet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 110: public function testFirstOrNewMethodReturnsNewModelWithForeignKeySet() - line 112: $relation = $this->getRelation(); - line 113: $relation->getQuery()->shouldReceive('where')->once()->with(['foo'])->andReturn($relation->getQuery()); - line 114: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn(null); - line 115: $model = $this->expectNewModel($relation, ['foo']); - line 117: $this->assertEquals($model, $relation->firstOrNew(['foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 120: public function testFirstOrNewMethodWithValuesCreatesNewModelWithForeignKeySet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 120: public function testFirstOrNewMethodWithValuesCreatesNewModelWithForeignKeySet() - line 122: $relation = $this->getRelation(); - line 123: $relation->getQuery()->shouldReceive('where')->once()->with(['foo' => 'bar'])->andReturn($relation->getQuery()); - line 124: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn(null); - line 125: $model = $this->expectNewModel($relation, ['foo' => 'bar', 'baz' => 'qux']); - line 127: $this->assertEquals($model, $relation->firstOrNew(['foo' => 'bar'], ['baz' => 'qux'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 130: public function testFirstOrCreateMethodFindsFirstModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 130: public function testFirstOrCreateMethodFindsFirstModel() - line 132: $relation = $this->getRelation(); - line 133: $relation->getQuery()->shouldReceive('where')->once()->with(['foo'])->andReturn($relation->getQuery()); - line 134: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(stdClass::class)); - line 135: $relation->getRelated()->shouldReceive('newInstance')->never(); - line 136: $model->shouldReceive('setAttribute')->never(); - line 137: $model->shouldReceive('save')->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 134: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 130: public function testFirstOrCreateMethodFindsFirstModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 142: public function testFirstOrCreateMethodWithValuesFindsFirstModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 142: public function testFirstOrCreateMethodWithValuesFindsFirstModel() - line 144: $relation = $this->getRelation(); - line 145: $relation->getQuery()->shouldReceive('where')->once()->with(['foo' => 'bar'])->andReturn($relation->getQuery()); - line 146: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(stdClass::class)); - line 147: $relation->getRelated()->shouldReceive('newInstance')->never(); - line 148: $model->shouldReceive('setAttribute')->never(); - line 149: $model->shouldReceive('save')->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 146: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 142: public function testFirstOrCreateMethodWithValuesFindsFirstModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 154: public function testFirstOrCreateMethodCreatesNewModelWithForeignKeySet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 154: public function testFirstOrCreateMethodCreatesNewModelWithForeignKeySet() - line 156: $relation = $this->getRelation(); - line 157: $relation->getQuery()->shouldReceive('where')->once()->with(['foo'])->andReturn($relation->getQuery()); - line 158: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn(null); - line 159: $relation->getQuery()->shouldReceive('withSavepointIfNeeded')->once()->andReturnUsing(fn ($scope) => $scope()); - line 160: $model = $this->expectCreatedModel($relation, ['foo']); - line 162: $this->assertEquals($model, $relation->firstOrCreate(['foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 165: public function testFirstOrCreateMethodWithValuesCreatesNewModelWithForeignKeySet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 165: public function testFirstOrCreateMethodWithValuesCreatesNewModelWithForeignKeySet() - line 167: $relation = $this->getRelation(); - line 168: $relation->getQuery()->shouldReceive('where')->once()->with(['foo' => 'bar'])->andReturn($relation->getQuery()); - line 169: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn(null); - line 170: $relation->getQuery()->shouldReceive('withSavepointIfNeeded')->once()->andReturnUsing(fn ($scope) => $scope()); - line 171: $model = $this->expectCreatedModel($relation, ['foo' => 'bar', 'baz' => 'qux']); - line 173: $this->assertEquals($model, $relation->firstOrCreate(['foo' => 'bar'], ['baz' => 'qux'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 176: public function testCreateOrFirstMethodWithValuesFindsFirstModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 176: public function testCreateOrFirstMethodWithValuesFindsFirstModel() - line 178: $relation = $this->getRelation(); - line 180: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo' => 'bar', 'baz' => 'qux'])->andReturn(m::mock(Model::class, function ($model) { - line 187: $relation->getQuery()->shouldReceive('withSavepointIfNeeded')->once()->andReturnUsing(function ($scope) { - line 190: $relation->getQuery()->shouldReceive('useWritePdo')->once()->andReturn($relation->getQuery()); - line 191: $relation->getQuery()->shouldReceive('where')->once()->with(['foo' => 'bar'])->andReturn($relation->getQuery()); - line 192: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(stdClass::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 192: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 176: public function testCreateOrFirstMethodWithValuesFindsFirstModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 198: public function testCreateOrFirstMethodCreatesNewModelWithForeignKeySet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 198: public function testCreateOrFirstMethodCreatesNewModelWithForeignKeySet() - line 200: $relation = $this->getRelation(); - line 202: $relation->getQuery()->shouldReceive('withSavepointIfNeeded')->once()->andReturnUsing(function ($scope) { - line 205: $relation->getQuery()->shouldReceive('where')->never(); - line 206: $relation->getQuery()->shouldReceive('first')->never(); - line 207: $model = $this->expectCreatedModel($relation, ['foo']); - line 209: $this->assertEquals($model, $relation->createOrFirst(['foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 212: public function testCreateOrFirstMethodWithValuesCreatesNewModelWithForeignKeySet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 212: public function testCreateOrFirstMethodWithValuesCreatesNewModelWithForeignKeySet() - line 214: $relation = $this->getRelation(); - line 215: $relation->getQuery()->shouldReceive('withSavepointIfNeeded')->once()->andReturnUsing(function ($scope) { - line 218: $relation->getQuery()->shouldReceive('where')->never(); - line 219: $relation->getQuery()->shouldReceive('first')->never(); - line 220: $model = $this->expectCreatedModel($relation, ['foo' => 'bar', 'baz' => 'qux']); - line 222: $this->assertEquals($model, $relation->createOrFirst(['foo' => 'bar'], ['baz' => 'qux'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 225: public function testUpdateOrCreateMethodFindsFirstModelAndUpdates() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 225: public function testUpdateOrCreateMethodFindsFirstModelAndUpdates() - line 227: $relation = $this->getRelation(); - line 228: $relation->getQuery()->shouldReceive('where')->once()->with(['foo'])->andReturn($relation->getQuery()); - line 229: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(stdClass::class)); - line 230: $relation->getRelated()->shouldReceive('newInstance')->never(); - line 236: $this->assertInstanceOf(stdClass::class, $relation->updateOrCreate(['foo'], ['bar'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 229: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 225: public function testUpdateOrCreateMethodFindsFirstModelAndUpdates() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 239: public function testUpdateOrCreateMethodCreatesNewModelWithForeignKeySet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 239: public function testUpdateOrCreateMethodCreatesNewModelWithForeignKeySet() - line 241: $relation = $this->getRelation(); - line 242: $relation->getQuery()->shouldReceive('withSavepointIfNeeded')->once()->andReturnUsing(function ($scope) { - line 245: $relation->getQuery()->shouldReceive('where')->once()->with(['foo'])->andReturn($relation->getQuery()); - line 246: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn(null); - line 247: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo', 'bar'])->andReturn($model = m::mock(Model::class)); - line 253: $this->assertInstanceOf(Model::class, $relation->updateOrCreate(['foo'], ['bar'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 247: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo', 'bar'])->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 239: public function testUpdateOrCreateMethodCreatesNewModelWithForeignKeySet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 256: public function testRelationUpsertFillsForeignKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 256: public function testRelationUpsertFillsForeignKey() - line 258: $relation = $this->getRelation(); - line 260: $relation->getQuery()->shouldReceive('upsert')->once()->with( - line 268: $relation->upsert( - line 274: $relation->getQuery()->shouldReceive('upsert')->once()->with( - line 283: $relation->upsert( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 256: public function testRelationUpsertFillsForeignKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 293: public function testRelationIsProperlyInitialized() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 293: public function testRelationIsProperlyInitialized() - line 295: $relation = $this->getRelation(); - line 297: $relation->getRelated()->shouldReceive('newCollection')->andReturnUsing(function ($array = []) { - line 301: $models = $relation->initRelation([$model], 'foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 296: $model = m::mock(Model::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 293: public function testRelationIsProperlyInitialized() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 306: public function testEagerConstraintsAreProperlyAdded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 306: public function testEagerConstraintsAreProperlyAdded() - line 308: $relation = $this->getRelation(); - line 309: $relation->getParent()->shouldReceive('getKeyName')->once()->andReturn('id'); - line 310: $relation->getParent()->shouldReceive('getKeyType')->once()->andReturn('int'); - line 311: $relation->getQuery()->shouldReceive('whereIntegerInRaw')->once()->with('table.foreign_key', [1, 2]); - line 316: $relation->addEagerConstraints([$model1, $model2]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 306: public function testEagerConstraintsAreProperlyAdded() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 319: public function testEagerConstraintsAreProperlyAddedWithStringKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 319: public function testEagerConstraintsAreProperlyAddedWithStringKey() - line 321: $relation = $this->getRelation(); - line 322: $relation->getParent()->shouldReceive('getKeyName')->once()->andReturn('id'); - line 323: $relation->getParent()->shouldReceive('getKeyType')->once()->andReturn('string'); - line 324: $relation->getQuery()->shouldReceive('whereIn')->once()->with('table.foreign_key', [1, 2]); - line 329: $relation->addEagerConstraints([$model1, $model2]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 319: public function testEagerConstraintsAreProperlyAddedWithStringKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 332: public function testModelsAreProperlyMatchedToParents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 332: public function testModelsAreProperlyMatchedToParents() - line 334: $relation = $this->getRelation(); - line 350: $relation->getRelated()->shouldReceive('newCollection')->andReturnUsing(function ($array) { - line 353: $models = $relation->match([$model1, $model2, $model3], new Collection([$result1, $result2, $result3]), 'foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 332: public function testModelsAreProperlyMatchedToParents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 363: public function testCreateManyCreatesARelatedModelForEachRecord() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 363: public function testCreateManyCreatesARelatedModelForEachRecord() - line 370: $relation = $this->getRelation(); - line 371: $relation->getRelated()->shouldReceive('newCollection')->once()->andReturn(new Collection); - line 373: $taylor = $this->expectCreatedModel($relation, ['name' => 'taylor']); - line 374: $colin = $this->expectCreatedModel($relation, ['name' => 'colin']); - line 376: $instances = $relation->createMany($records); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 363: public function testCreateManyCreatesARelatedModelForEachRecord() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseEloquentHasManyThroughIntegrationTest.php - Test @ line 84: public function testItLoadsADefaultHasManyThroughRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 84: public function testItLoadsADefaultHasManyThroughRelation() - line 86: $this->migrateDefault(); - line 87: $this->seedDefaultData(); - line 93: $this->resetDefault(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 105: public function testEagerLoadingARelationWithCustomIntermediateAndLocalKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 105: public function testEagerLoadingARelationWithCustomIntermediateAndLocalKey() - line 107: $this->seedData(); - line 108: $posts = HasManyThroughIntermediateTestCountry::with('posts')->first()->posts; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 114: public function testWhereHasOnARelationWithCustomIntermediateAndLocalKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 114: public function testWhereHasOnARelationWithCustomIntermediateAndLocalKey() - line 116: $this->seedData(); - line 118: $query->where('title', 'A title'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 124: public function testWithWhereHasOnARelationWithCustomIntermediateAndLocalKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 124: public function testWithWhereHasOnARelationWithCustomIntermediateAndLocalKey() - line 126: $this->seedData(); - line 128: $query->where('title', 'A title'); - line 132: $this->assertTrue($country->first()->relationLoaded('posts')); - line 133: $this->assertEquals($country->first()->posts->pluck('title')->unique()->toArray(), ['A title']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 136: public function testFindMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 136: public function testFindMethod() - line 139: ->users()->create(['id' => 1, 'email' => 'taylorotwell@gmail.com', 'country_short' => 'us']) - line 146: $post = $country->posts()->find(1); - line 151: $this->assertCount(2, $country->posts()->find([1, 2])); - line 152: $this->assertCount(2, $country->posts()->find(new Collection([1, 2]))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 155: public function testFindManyMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 155: public function testFindManyMethod() - line 158: ->users()->create(['id' => 1, 'email' => 'taylorotwell@gmail.com', 'country_short' => 'us']) - line 166: $this->assertCount(2, $country->posts()->findMany([1, 2])); - line 167: $this->assertCount(2, $country->posts()->findMany(new Collection([1, 2]))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 170: public function testFirstOrFailThrowsAnException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 170: public function testFirstOrFailThrowsAnException() - line 172: $this->expectException(ModelNotFoundException::class); - line 173: $this->expectExceptionMessage('No query results for model [Illuminate\Tests\Database\HasManyThroughTestPost].'); - line 176: ->users()->create(['id' => 1, 'email' => 'taylorotwell@gmail.com', 'country_short' => 'us']); - line 178: HasManyThroughTestCountry::first()->posts()->firstOrFail(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 170: public function testFirstOrFailThrowsAnException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 181: public function testFindOrFailThrowsAnException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 181: public function testFindOrFailThrowsAnException() - line 183: $this->expectException(ModelNotFoundException::class); - line 184: $this->expectExceptionMessage('No query results for model [Illuminate\Tests\Database\HasManyThroughTestPost] 1'); - line 187: ->users()->create(['id' => 1, 'email' => 'taylorotwell@gmail.com', 'country_short' => 'us']); - line 189: HasManyThroughTestCountry::first()->posts()->findOrFail(1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 181: public function testFindOrFailThrowsAnException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 192: public function testFindOrFailWithManyThrowsAnException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 192: public function testFindOrFailWithManyThrowsAnException() - line 194: $this->expectException(ModelNotFoundException::class); - line 195: $this->expectExceptionMessage('No query results for model [Illuminate\Tests\Database\HasManyThroughTestPost] 1, 2'); - line 198: ->users()->create(['id' => 1, 'email' => 'taylorotwell@gmail.com', 'country_short' => 'us']) - line 201: HasManyThroughTestCountry::first()->posts()->findOrFail([1, 2]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 192: public function testFindOrFailWithManyThrowsAnException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 204: public function testFindOrFailWithManyUsingCollectionThrowsAnException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 204: public function testFindOrFailWithManyUsingCollectionThrowsAnException() - line 206: $this->expectException(ModelNotFoundException::class); - line 207: $this->expectExceptionMessage('No query results for model [Illuminate\Tests\Database\HasManyThroughTestPost] 1, 2'); - line 210: ->users()->create(['id' => 1, 'email' => 'taylorotwell@gmail.com', 'country_short' => 'us']) - line 213: HasManyThroughTestCountry::first()->posts()->findOrFail(new Collection([1, 2])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 204: public function testFindOrFailWithManyUsingCollectionThrowsAnException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 216: public function testFindOrMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 216: public function testFindOrMethod() - line 219: ->users()->create(['id' => 1, 'email' => 'taylorotwell@gmail.com', 'country_short' => 'us']) - line 222: $result = HasManyThroughTestCountry::first()->posts()->findOr(1, fn () => 'callback result'); - line 227: $result = HasManyThroughTestCountry::first()->posts()->findOr(1, ['posts.id'], fn () => 'callback result'); - line 232: $result = HasManyThroughTestCountry::first()->posts()->findOr(2, fn () => 'callback result'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 236: public function testFindOrMethodWithMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 236: public function testFindOrMethodWithMany() - line 239: ->users()->create(['id' => 1, 'email' => 'taylorotwell@gmail.com', 'country_short' => 'us']) - line 245: $result = HasManyThroughTestCountry::first()->posts()->findOr([1, 2], fn () => 'callback result'); - line 252: $result = HasManyThroughTestCountry::first()->posts()->findOr([1, 2], ['posts.id'], fn () => 'callback result'); - line 259: $result = HasManyThroughTestCountry::first()->posts()->findOr([1, 2, 3], fn () => 'callback result'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 263: public function testFindOrMethodWithManyUsingCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 263: public function testFindOrMethodWithManyUsingCollection() - line 266: ->users()->create(['id' => 1, 'email' => 'taylorotwell@gmail.com', 'country_short' => 'us']) - line 272: $result = HasManyThroughTestCountry::first()->posts()->findOr(new Collection([1, 2]), fn () => 'callback result'); - line 279: $result = HasManyThroughTestCountry::first()->posts()->findOr(new Collection([1, 2]), ['posts.id'], fn () => 'callback result'); - line 286: $result = HasManyThroughTestCountry::first()->posts()->findOr(new Collection([1, 2, 3]), fn () => 'callback result'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 290: public function testFirstRetrievesFirstRecord() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 290: public function testFirstRetrievesFirstRecord() - line 292: $this->seedData(); - line 293: $post = HasManyThroughTestCountry::first()->posts()->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 299: public function testAllColumnsAreRetrievedByDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 299: public function testAllColumnsAreRetrievedByDefault() - line 301: $this->seedData(); - line 302: $post = HasManyThroughTestCountry::first()->posts()->first(); - line 312: ], array_keys($post->getAttributes())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 315: public function testOnlyProperColumnsAreSelectedIfProvided() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 315: public function testOnlyProperColumnsAreSelectedIfProvided() - line 317: $this->seedData(); - line 318: $post = HasManyThroughTestCountry::first()->posts()->first(['title', 'body']); - line 324: ], array_keys($post->getAttributes())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 327: public function testChunkReturnsCorrectModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 327: public function testChunkReturnsCorrectModels() - line 329: $this->seedData(); - line 330: $this->seedDataExtended(); - line 333: $country->posts()->chunk(10, function ($postsChunk) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 348: public function testChunkById() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 348: public function testChunkById() - line 350: $this->seedData(); - line 351: $this->seedDataExtended(); - line 357: $country->posts()->chunkById(2, function ($collection) use (&$i, &$count) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 348: public function testChunkById() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 366: public function testCursorReturnsCorrectModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 366: public function testCursorReturnsCorrectModels() - line 368: $this->seedData(); - line 369: $this->seedDataExtended(); - line 372: $posts = $country->posts()->cursor(); - line 386: ], array_keys($post->getAttributes())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 390: public function testEachReturnsCorrectModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 390: public function testEachReturnsCorrectModels() - line 392: $this->seedData(); - line 393: $this->seedDataExtended(); - line 396: $country->posts()->each(function ($post) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 410: public function testEachByIdReturnsCorrectModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 410: public function testEachByIdReturnsCorrectModels() - line 412: $this->seedData(); - line 413: $this->seedDataExtended(); - line 416: $country->posts()->eachById(function ($post) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 430: public function testLazyReturnsCorrectModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 430: public function testLazyReturnsCorrectModels() - line 432: $this->seedData(); - line 433: $this->seedDataExtended(); - line 436: $country->posts()->lazy(10)->each(function ($post) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 450: public function testLazyById() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 450: public function testLazyById() - line 452: $this->seedData(); - line 453: $this->seedDataExtended(); - line 458: $country->posts()->lazyById(2)->each(function ($post) use (&$i, &$count) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 476: public function testIntermediateSoftDeletesAreIgnored() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 476: public function testIntermediateSoftDeletesAreIgnored() - line 478: $this->seedData(); - line 479: HasManyThroughSoftDeletesTestUser::first()->delete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 487: public function testEagerLoadingLoadsRelatedModelsCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 487: public function testEagerLoadingLoadsRelatedModelsCorrectly() - line 489: $this->seedData(); - line 490: $country = HasManyThroughSoftDeletesTestCountry::with('posts')->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentHasOneOfManyTest.php - Test @ line 73: public function testItGuessesRelationName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 73: public function testItGuessesRelationName() - line 75: $user = HasOneOfManyTestUser::make(); - line 76: $this->assertSame('latest_login', $user->latest_login()->getRelationName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 79: public function testItGuessesRelationNameAndAddsOfManyWhenTableNameIsRelationName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 79: public function testItGuessesRelationNameAndAddsOfManyWhenTableNameIsRelationName() - line 81: $model = HasOneOfManyTestModel::make(); - line 82: $this->assertSame('logins_of_many', $model->logins()->getRelationName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 85: public function testRelationNameCanBeSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 85: public function testRelationNameCanBeSet() - line 87: $user = HasOneOfManyTestUser::create(); - line 90: $relation = $user->latest_login()->ofMany('id', 'max', 'foo'); - line 91: $this->assertSame('foo', $relation->getRelationName()); - line 94: $relation = $user->latest_login()->latestOfMAny('id', 'bar'); - line 95: $this->assertSame('bar', $relation->getRelationName()); - line 98: $relation = $user->latest_login()->oldestOfMAny('id', 'baz'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 109: public function testEagerLoadingAppliesConstraintsToInnerJoinSubQuery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 109: public function testEagerLoadingAppliesConstraintsToInnerJoinSubQuery() - line 111: $user = HasOneOfManyTestUser::create(); - line 112: $relation = $user->latest_login(); - line 113: $relation->addEagerConstraints([$user]); - line 114: $this->assertSame('select MAX("logins"."id") as "id_aggregate", "logins"."user_id" from "logins" where "logins"."user_id" = ? and "logins"."user_id" is not null and "logins"."user_id" in (1) group by "logins"."user_id"', $relation->getOneOfManySubQuery()->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 117: public function testGlobalScopeIsNotAppliedWhenRelationIsDefinedWithoutGlobalScope() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 117: public function testGlobalScopeIsNotAppliedWhenRelationIsDefinedWithoutGlobalScope() - line 120: $query->orderBy('id'); - line 124: $relation = $user->latest_login_without_global_scope(); - line 125: $relation->addEagerConstraints([$user]); - line 126: $this->assertSame('select "logins".* from "logins" inner join (select MAX("logins"."id") as "id_aggregate", "logins"."user_id" from "logins" where "logins"."user_id" = ? and "logins"."user_id" is not null and "logins"."user_id" in (1) group by "logins"."user_id") as "latestOfMany" on "latestOfMany"."id_aggregate" = "logins"."id" and "latestOfMany"."user_id" = "logins"."user_id" where "logins"."user_id" = ? and "logins"."user_id" is not null', $relation->getQuery()->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 132: public function testGlobalScopeIsNotAppliedWhenRelationIsDefinedWithoutGlobalScopeWithComplexQuery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 132: public function testGlobalScopeIsNotAppliedWhenRelationIsDefinedWithoutGlobalScopeWithComplexQuery() - line 135: $query->orderBy('id'); - line 139: $relation = $user->price_without_global_scope(); - line 140: $this->assertSame('select "prices".* from "prices" inner join (select max("prices"."id") as "id_aggregate", min("prices"."published_at") as "published_at_aggregate", "prices"."user_id" from "prices" inner join (select max("prices"."published_at") as "published_at_aggregate", "prices"."user_id" from "prices" where "published_at" < ? and "prices"."user_id" = ? and "prices"."user_id" is not null group by "prices"."user_id") as "price_without_global_scope" on "price_without_global_scope"."published_at_aggregate" = "prices"."published_at" and "price_without_global_scope"."user_id" = "prices"."user_id" where "published_at" < ? group by "prices"."user_id") as "price_without_global_scope" on "price_without_global_scope"."id_aggregate" = "prices"."id" and "price_without_global_scope"."published_at_aggregate" = "prices"."published_at" and "price_without_global_scope"."user_id" = "prices"."user_id" where "prices"."user_id" = ? and "prices"."user_id" is not null', $relation->getQuery()->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 146: public function testQualifyingSubSelectColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 146: public function testQualifyingSubSelectColumn() - line 148: $user = HasOneOfManyTestUser::create(); - line 149: $this->assertSame('latest_login.id', $user->latest_login()->qualifySubSelectColumn('id')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 152: public function testItFailsWhenUsingInvalidAggregate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 152: public function testItFailsWhenUsingInvalidAggregate() - line 154: $this->expectException(InvalidArgumentException::class); - line 155: $this->expectExceptionMessage('Invalid aggregate [count] used within ofMany relation. Available aggregates: MIN, MAX'); - line 157: $user->latest_login_with_invalid_aggregate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 152: public function testItFailsWhenUsingInvalidAggregate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 160: public function testItGetsCorrectResults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 160: public function testItGetsCorrectResults() - line 162: $user = HasOneOfManyTestUser::create(); - line 163: $previousLogin = $user->logins()->create(); - line 164: $latestLogin = $user->logins()->create(); - line 166: $result = $user->latest_login()->getResults(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 160: public function testItGetsCorrectResults() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 171: public function testResultDoesNotHaveAggregateColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 171: public function testResultDoesNotHaveAggregateColumn() - line 173: $user = HasOneOfManyTestUser::create(); - line 174: $user->logins()->create(); - line 176: $result = $user->latest_login()->getResults(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 171: public function testResultDoesNotHaveAggregateColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 181: public function testItGetsCorrectResultsUsingShortcutMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 181: public function testItGetsCorrectResultsUsingShortcutMethod() - line 183: $user = HasOneOfManyTestUser::create(); - line 184: $previousLogin = $user->logins()->create(); - line 185: $latestLogin = $user->logins()->create(); - line 187: $result = $user->latest_login_with_shortcut()->getResults(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 181: public function testItGetsCorrectResultsUsingShortcutMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 192: public function testItGetsCorrectResultsUsingShortcutReceivingMultipleColumnsMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 192: public function testItGetsCorrectResultsUsingShortcutReceivingMultipleColumnsMethod() - line 194: $user = HasOneOfManyTestUser::create(); - line 195: $user->prices()->create([ - line 198: $price = $user->prices()->create([ - line 202: $result = $user->price_with_shortcut()->getResults(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 192: public function testItGetsCorrectResultsUsingShortcutReceivingMultipleColumnsMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 207: public function testKeyIsAddedToAggregatesWhenMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 207: public function testKeyIsAddedToAggregatesWhenMissing() - line 209: $user = HasOneOfManyTestUser::create(); - line 210: $user->prices()->create([ - line 213: $price = $user->prices()->create([ - line 217: $result = $user->price_without_key_in_aggregates()->getResults(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 207: public function testKeyIsAddedToAggregatesWhenMissing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 222: public function testItGetsWithConstraintsCorrectResults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 222: public function testItGetsWithConstraintsCorrectResults() - line 224: $user = HasOneOfManyTestUser::create(); - line 225: $previousLogin = $user->logins()->create(); - line 226: $user->logins()->create(); - line 228: $result = $user->latest_login()->whereKey($previousLogin->getKey())->getResults(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 222: public function testItGetsWithConstraintsCorrectResults() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 232: public function testItEagerLoadsCorrectModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 232: public function testItEagerLoadsCorrectModels() - line 234: $user = HasOneOfManyTestUser::create(); - line 235: $user->logins()->create(); - line 236: $latestLogin = $user->logins()->create(); - line 238: $user = HasOneOfManyTestUser::with('latest_login')->first(); - line 240: $this->assertTrue($user->relationLoaded('latest_login')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 244: public function testItJoinsOtherTableInSubQuery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 244: public function testItJoinsOtherTableInSubQuery() - line 246: $user = HasOneOfManyTestUser::create(); - line 247: $user->logins()->create(); - line 251: $user->unsetRelation('latest_login_with_foo_state'); - line 252: $user->states()->create([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 244: public function testItJoinsOtherTableInSubQuery() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 260: public function testHasNested() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 260: public function testHasNested() - line 262: $user = HasOneOfManyTestUser::create(); - line 263: $previousLogin = $user->logins()->create(); - line 264: $latestLogin = $user->logins()->create(); - line 267: $query->where('logins.id', $latestLogin->id); - line 272: $query->where('logins.id', $previousLogin->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 260: public function testHasNested() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 277: public function testWithHasNested() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 277: public function testWithHasNested() - line 279: $user = HasOneOfManyTestUser::create(); - line 280: $previousLogin = $user->logins()->create(); - line 281: $latestLogin = $user->logins()->create(); - line 284: $query->where('logins.id', $latestLogin->id); - line 288: $this->assertTrue($found->relationLoaded('latest_login')); - line 292: $query->where('logins.id', $previousLogin->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 298: public function testHasCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 298: public function testHasCount() - line 300: $user = HasOneOfManyTestUser::create(); - line 301: $user->logins()->create(); - line 302: $user->logins()->create(); - line 304: $user = HasOneOfManyTestUser::withCount('latest_login')->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 308: public function testExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 308: public function testExists() - line 310: $user = HasOneOfManyTestUser::create(); - line 311: $previousLogin = $user->logins()->create(); - line 312: $latestLogin = $user->logins()->create(); - line 314: $this->assertFalse($user->latest_login()->whereKey($previousLogin->getKey())->exists()); - line 315: $this->assertTrue($user->latest_login()->whereKey($latestLogin->getKey())->exists()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 318: public function testIsMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 318: public function testIsMethod() - line 320: $user = HasOneOfManyTestUser::create(); - line 321: $login1 = $user->latest_login()->create(); - line 322: $login2 = $user->latest_login()->create(); - line 324: $this->assertFalse($user->latest_login()->is($login1)); - line 325: $this->assertTrue($user->latest_login()->is($login2)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 328: public function testIsNotMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 328: public function testIsNotMethod() - line 330: $user = HasOneOfManyTestUser::create(); - line 331: $login1 = $user->latest_login()->create(); - line 332: $login2 = $user->latest_login()->create(); - line 334: $this->assertTrue($user->latest_login()->isNot($login1)); - line 335: $this->assertFalse($user->latest_login()->isNot($login2)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 338: public function testGet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 338: public function testGet() - line 340: $user = HasOneOfManyTestUser::create(); - line 341: $previousLogin = $user->logins()->create(); - line 342: $latestLogin = $user->logins()->create(); - line 344: $latestLogins = $user->latest_login()->get(); - line 346: $this->assertSame($latestLogin->id, $latestLogins->first()->id); - line 348: $latestLogins = $user->latest_login()->whereKey($previousLogin->getKey())->get(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 352: public function testCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 352: public function testCount() - line 354: $user = HasOneOfManyTestUser::create(); - line 355: $user->logins()->create(); - line 356: $user->logins()->create(); - line 358: $this->assertSame(1, $user->latest_login()->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 361: public function testAggregate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 361: public function testAggregate() - line 363: $user = HasOneOfManyTestUser::create(); - line 364: $firstLogin = $user->logins()->create(); - line 365: $user->logins()->create(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 371: public function testJoinConstraints() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 371: public function testJoinConstraints() - line 373: $user = HasOneOfManyTestUser::create(); - line 374: $user->states()->create([ - line 378: $currentForState = $user->states()->create([ - line 382: $user->states()->create([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 391: public function testMultipleAggregates() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 391: public function testMultipleAggregates() - line 393: $user = HasOneOfManyTestUser::create(); - line 395: $user->prices()->create([ - line 398: $price = $user->prices()->create([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 406: public function testEagerLoadingWithMultipleAggregates() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 406: public function testEagerLoadingWithMultipleAggregates() - line 408: $user1 = HasOneOfManyTestUser::create(); - line 411: $user1->prices()->create([ - line 414: $user1Price = $user1->prices()->create([ - line 417: $user1->prices()->create([ - line 421: $user2Price = $user2->prices()->create([ - line 424: $user2->prices()->create([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 406: public function testEagerLoadingWithMultipleAggregates() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 437: public function testWithExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 437: public function testWithExists() - line 439: $user = HasOneOfManyTestUser::create(); - line 441: $user = HasOneOfManyTestUser::withExists('latest_login')->first(); - line 444: $user->logins()->create(); - line 445: $user = HasOneOfManyTestUser::withExists('latest_login')->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 449: public function testWithExistsWithConstraintsInJoinSubSelect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 449: public function testWithExistsWithConstraintsInJoinSubSelect() - line 451: $user = HasOneOfManyTestUser::create(); - line 453: $user = HasOneOfManyTestUser::withExists('foo_state')->first(); - line 457: $user->states()->create([ - line 461: $user = HasOneOfManyTestUser::withExists('foo_state')->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 465: public function testWithSoftDeletes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 465: public function testWithSoftDeletes() - line 467: $user = HasOneOfManyTestUser::create(); - line 468: $user->logins()->create(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 465: public function testWithSoftDeletes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 473: public function testWithConstraintNotInAggregate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 473: public function testWithConstraintNotInAggregate() - line 475: $user = HasOneOfManyTestUser::create(); - line 477: $previousFoo = $user->states()->create([ - line 482: $newFoo = $user->states()->create([ - line 487: $newBar = $user->states()->create([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 496: public function testItGetsCorrectResultUsingAtLeastTwoAggregatesDistinctFromId() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 496: public function testItGetsCorrectResultUsingAtLeastTwoAggregatesDistinctFromId() - line 498: $user = HasOneOfManyTestUser::create(); - line 500: $expectedState = $user->states()->create([ - line 507: $user->states()->create([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentHasOneTest.php - Test @ line 27: public function testHasOneWithDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 27: public function testHasOneWithDefault() - line 29: $relation = $this->getRelation()->withDefault(); - line 31: $this->builder->shouldReceive('first')->once()->andReturnNull(); - line 37: $this->assertSame($newModel, $relation->getResults()); - line 39: $this->assertSame(1, $newModel->getAttribute('foreign_key')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 42: public function testHasOneWithDynamicDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 42: public function testHasOneWithDynamicDefault() - line 44: $relation = $this->getRelation()->withDefault(function ($newModel) { - line 48: $this->builder->shouldReceive('first')->once()->andReturnNull(); - line 54: $this->assertSame($newModel, $relation->getResults()); - line 58: $this->assertSame(1, $newModel->getAttribute('foreign_key')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 61: public function testHasOneWithDynamicDefaultUseParentModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 61: public function testHasOneWithDynamicDefaultUseParentModel() - line 63: $relation = $this->getRelation()->withDefault(function ($newModel, $parentModel) { - line 67: $this->builder->shouldReceive('first')->once()->andReturnNull(); - line 73: $this->assertSame($newModel, $relation->getResults()); - line 77: $this->assertSame(1, $newModel->getAttribute('foreign_key')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 80: public function testHasOneWithArrayDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 80: public function testHasOneWithArrayDefault() - line 84: $relation = $this->getRelation()->withDefault($attributes); - line 86: $this->builder->shouldReceive('first')->once()->andReturnNull(); - line 92: $this->assertSame($newModel, $relation->getResults()); - line 96: $this->assertSame(1, $newModel->getAttribute('foreign_key')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 99: public function testMakeMethodDoesNotSaveNewModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 99: public function testMakeMethodDoesNotSaveNewModel() - line 101: $relation = $this->getRelation(); - line 102: $instance = $this->getMockBuilder(Model::class)->onlyMethods(['save', 'newInstance', 'setAttribute'])->getMock(); - line 103: $relation->getRelated()->shouldReceive('newInstance')->with(['name' => 'taylor'])->andReturn($instance); - line 104: $instance->expects($this->once())->method('setAttribute')->with('foreign_key', 1); - line 105: $instance->expects($this->never())->method('save'); - line 107: $this->assertEquals($instance, $relation->make(['name' => 'taylor'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 110: public function testSaveMethodSetsForeignKeyOnModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 110: public function testSaveMethodSetsForeignKeyOnModel() - line 112: $relation = $this->getRelation(); - line 113: $mockModel = $this->getMockBuilder(Model::class)->onlyMethods(['save'])->getMock(); - line 114: $mockModel->expects($this->once())->method('save')->willReturn(true); - line 115: $result = $relation->save($mockModel); - line 117: $attributes = $result->getAttributes(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 110: public function testSaveMethodSetsForeignKeyOnModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 121: public function testCreateMethodProperlyCreatesNewModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 121: public function testCreateMethodProperlyCreatesNewModel() - line 123: $relation = $this->getRelation(); - line 124: $created = $this->getMockBuilder(Model::class)->onlyMethods(['save', 'getKey', 'setAttribute'])->getMock(); - line 125: $created->expects($this->once())->method('save')->willReturn(true); - line 126: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['name' => 'taylor'])->andReturn($created); - line 127: $created->expects($this->once())->method('setAttribute')->with('foreign_key', 1); - line 129: $this->assertEquals($created, $relation->create(['name' => 'taylor'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 132: public function testForceCreateMethodProperlyCreatesNewModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 132: public function testForceCreateMethodProperlyCreatesNewModel() - line 134: $relation = $this->getRelation(); - line 135: $attributes = ['name' => 'taylor', $relation->getForeignKeyName() => $relation->getParentKey()]; - line 138: $created->shouldReceive('getAttribute')->with($relation->getForeignKeyName())->andReturn($relation->getParentKey()); - line 140: $relation->getRelated()->shouldReceive('forceCreate')->once()->with($attributes)->andReturn($created); - line 142: $this->assertEquals($created, $relation->forceCreate(['name' => 'taylor'])); - line 143: $this->assertEquals(1, $created->getAttribute('foreign_key')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 137: $created = m::mock(Model::class); - Test @ line 146: public function testRelationIsProperlyInitialized() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 146: public function testRelationIsProperlyInitialized() - line 148: $relation = $this->getRelation(); - line 151: $models = $relation->initRelation([$model], 'foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 149: $model = m::mock(Model::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 146: public function testRelationIsProperlyInitialized() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 156: public function testEagerConstraintsAreProperlyAdded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 156: public function testEagerConstraintsAreProperlyAdded() - line 158: $relation = $this->getRelation(); - line 159: $relation->getParent()->shouldReceive('getKeyName')->once()->andReturn('id'); - line 160: $relation->getParent()->shouldReceive('getKeyType')->once()->andReturn('int'); - line 161: $relation->getQuery()->shouldReceive('whereIntegerInRaw')->once()->with('table.foreign_key', [1, 2]); - line 166: $relation->addEagerConstraints([$model1, $model2]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 156: public function testEagerConstraintsAreProperlyAdded() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 169: public function testModelsAreProperlyMatchedToParents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 169: public function testModelsAreProperlyMatchedToParents() - line 171: $relation = $this->getRelation(); - line 195: $models = $relation->match([$model1, $model2, $model3, $model4], new Collection([$result1, $result2, $result3]), 'foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 169: public function testModelsAreProperlyMatchedToParents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 203: public function testRelationCountQueryCanBeBuilt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 203: public function testRelationCountQueryCanBeBuilt() - line 205: $relation = $this->getRelation(); - line 216: $builder->shouldReceive('select')->once()->with(m::type(Expression::class))->andReturnSelf(); - line 217: $relation->getParent()->shouldReceive('qualifyColumn')->andReturn('table.id'); - line 221: $relation->getRelationExistenceCountQuery($builder, $builder); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 206: $builder = m::mock(Builder::class); - line 208: $baseQuery = m::mock(BaseBuilder::class); - line 210: $parentQuery = m::mock(BaseBuilder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 203: public function testRelationCountQueryCanBeBuilt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 224: public function testIsNotNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 224: public function testIsNotNull() - line 226: $relation = $this->getRelation(); - line 228: $this->related->shouldReceive('getTable')->never(); - line 229: $this->related->shouldReceive('getConnectionName')->never(); - line 231: $this->assertFalse($relation->is(null)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 234: public function testIsModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 234: public function testIsModel() - line 236: $relation = $this->getRelation(); - line 246: $this->assertTrue($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 241: $model = m::mock(Model::class); - Test @ line 249: public function testIsModelWithStringRelatedKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 249: public function testIsModelWithStringRelatedKey() - line 251: $relation = $this->getRelation(); - line 261: $this->assertTrue($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 256: $model = m::mock(Model::class); - Test @ line 264: public function testIsNotModelWithNullRelatedKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 264: public function testIsNotModelWithNullRelatedKey() - line 266: $relation = $this->getRelation(); - line 268: $this->related->shouldReceive('getTable')->never(); - line 269: $this->related->shouldReceive('getConnectionName')->never(); - line 273: $model->shouldReceive('getTable')->never(); - line 274: $model->shouldReceive('getConnectionName')->never(); - line 276: $this->assertFalse($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 271: $model = m::mock(Model::class); - Test @ line 279: public function testIsNotModelWithAnotherRelatedKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 279: public function testIsNotModelWithAnotherRelatedKey() - line 281: $relation = $this->getRelation(); - line 283: $this->related->shouldReceive('getTable')->never(); - line 284: $this->related->shouldReceive('getConnectionName')->never(); - line 288: $model->shouldReceive('getTable')->never(); - line 289: $model->shouldReceive('getConnectionName')->never(); - line 291: $this->assertFalse($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 286: $model = m::mock(Model::class); - Test @ line 294: public function testIsNotModelWithAnotherTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 294: public function testIsNotModelWithAnotherTable() - line 296: $relation = $this->getRelation(); - line 299: $this->related->shouldReceive('getConnectionName')->never(); - line 304: $model->shouldReceive('getConnectionName')->never(); - line 306: $this->assertFalse($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 301: $model = m::mock(Model::class); - Test @ line 309: public function testIsNotModelWithAnotherConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 309: public function testIsNotModelWithAnotherConnection() - line 311: $relation = $this->getRelation(); - line 321: $this->assertFalse($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 316: $model = m::mock(Model::class); ❌ tests/Database/DatabaseEloquentHasOneThroughIntegrationTest.php - Test @ line 81: public function testItLoadsADefaultHasOneThroughRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 81: public function testItLoadsADefaultHasOneThroughRelation() - line 83: $this->migrateDefault(); - line 84: $this->seedDefaultData(); - line 88: $this->assertArrayNotHasKey('email', $contract->getAttributes()); - line 90: $this->resetDefault(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 101: public function testEagerLoadingARelationWithCustomIntermediateAndLocalKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 101: public function testEagerLoadingARelationWithCustomIntermediateAndLocalKey() - line 103: $this->seedData(); - line 104: $contract = HasOneThroughIntermediateTestPosition::with('contract')->first()->contract; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 109: public function testWhereHasOnARelationWithCustomIntermediateAndLocalKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 109: public function testWhereHasOnARelationWithCustomIntermediateAndLocalKey() - line 111: $this->seedData(); - line 113: $query->where('title', 'A title'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 119: public function testWithWhereHasOnARelationWithCustomIntermediateAndLocalKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 119: public function testWithWhereHasOnARelationWithCustomIntermediateAndLocalKey() - line 121: $this->seedData(); - line 123: $query->where('title', 'A title'); - line 127: $this->assertTrue($position->first()->relationLoaded('contract')); - line 128: $this->assertEquals($position->first()->contract->pluck('title')->unique()->toArray(), ['A title']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 131: public function testFirstOrFailThrowsAnException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 131: public function testFirstOrFailThrowsAnException() - line 133: $this->expectException(ModelNotFoundException::class); - line 134: $this->expectExceptionMessage('No query results for model [Illuminate\Tests\Database\HasOneThroughTestContract].'); - line 137: ->user()->create(['id' => 1, 'email' => 'taylorotwell@gmail.com', 'position_short' => 'ps']); - line 139: HasOneThroughTestPosition::first()->contract()->firstOrFail(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 131: public function testFirstOrFailThrowsAnException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 142: public function testFindOrFailThrowsAnException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 142: public function testFindOrFailThrowsAnException() - line 144: $this->expectException(ModelNotFoundException::class); - line 147: ->user()->create(['id' => 1, 'email' => 'taylorotwell@gmail.com', 'position_short' => 'ps']); - line 149: HasOneThroughTestPosition::first()->contract()->findOrFail(1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 142: public function testFindOrFailThrowsAnException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 152: public function testFirstRetrievesFirstRecord() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 152: public function testFirstRetrievesFirstRecord() - line 154: $this->seedData(); - line 155: $contract = HasOneThroughTestPosition::first()->contract()->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 161: public function testAllColumnsAreRetrievedByDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 161: public function testAllColumnsAreRetrievedByDefault() - line 163: $this->seedData(); - line 164: $contract = HasOneThroughTestPosition::first()->contract()->first(); - line 174: ], array_keys($contract->getAttributes())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 177: public function testOnlyProperColumnsAreSelectedIfProvided() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 177: public function testOnlyProperColumnsAreSelectedIfProvided() - line 179: $this->seedData(); - line 180: $contract = HasOneThroughTestPosition::first()->contract()->first(['title', 'body']); - line 186: ], array_keys($contract->getAttributes())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 189: public function testChunkReturnsCorrectModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 189: public function testChunkReturnsCorrectModels() - line 191: $this->seedData(); - line 192: $this->seedDataExtended(); - line 195: $position->contract()->chunk(10, function ($contractsChunk) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 209: public function testCursorReturnsCorrectModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 209: public function testCursorReturnsCorrectModels() - line 211: $this->seedData(); - line 212: $this->seedDataExtended(); - line 215: $contracts = $position->contract()->cursor(); - line 226: 'laravel_through_key', ], array_keys($contract->getAttributes())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 230: public function testEachReturnsCorrectModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 230: public function testEachReturnsCorrectModels() - line 232: $this->seedData(); - line 233: $this->seedDataExtended(); - line 236: $position->contract()->each(function ($contract) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 249: public function testLazyReturnsCorrectModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 249: public function testLazyReturnsCorrectModels() - line 251: $this->seedData(); - line 252: $this->seedDataExtended(); - line 255: $position->contract()->lazy()->each(function ($contract) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 268: public function testIntermediateSoftDeletesAreIgnored() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 268: public function testIntermediateSoftDeletesAreIgnored() - line 270: $this->seedData(); - line 271: HasOneThroughSoftDeletesTestUser::first()->delete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 278: public function testEagerLoadingLoadsRelatedModelsCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 278: public function testEagerLoadingLoadsRelatedModelsCorrectly() - line 280: $this->seedData(); - line 281: $position = HasOneThroughSoftDeletesTestPosition::with('contract')->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentIntegrationTest.php - Test @ line 218: public function testBasicModelRetrieval() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 218: public function testBasicModelRetrieval() - line 220: EloquentTestUser::insert([['id' => 1, 'email' => 'taylorotwell@gmail.com'], ['id' => 2, 'email' => 'abigailotwell@gmail.com']]); - line 224: $this->assertFalse(EloquentTestUser::where('email', 'taylorotwell@gmail.com')->doesntExist()); - line 225: $this->assertTrue(EloquentTestUser::where('email', 'mohamed@laravel.com')->doesntExist()); - line 227: $model = EloquentTestUser::where('email', 'taylorotwell@gmail.com')->first(); - line 251: $models = EloquentTestUser::where('id', 1)->cursor(); - line 254: $this->assertSame('default', $model->getConnectionName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 282: public function testPaginatedModelCollectionRetrieval() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 282: public function testPaginatedModelCollectionRetrieval() - line 284: EloquentTestUser::insert([ - line 293: $models = EloquentTestUser::oldest('id')->paginate(2); - line 305: $models = EloquentTestUser::oldest('id')->paginate(2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 313: public function testPaginatedModelCollectionRetrievalUsingCallablePerPage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 313: public function testPaginatedModelCollectionRetrievalUsingCallablePerPage() - line 315: EloquentTestUser::insert([ - line 324: $models = EloquentTestUser::oldest('id')->paginate(function ($total) { - line 340: $models = EloquentTestUser::oldest('id')->paginate(function ($total) { - line 352: $models = EloquentTestUser::oldest('id')->paginate(function ($total) { - line 366: $models = EloquentTestUser::oldest('id')->paginate(function ($total) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 378: public function testPaginatedModelCollectionRetrievalWhenNoElements() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 378: public function testPaginatedModelCollectionRetrievalWhenNoElements() - line 380: Paginator::currentPageResolver(function () { - line 383: $models = EloquentTestUser::oldest('id')->paginate(2); - line 391: $models = EloquentTestUser::oldest('id')->paginate(2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 404: public function testCountForPaginationWithGrouping() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 404: public function testCountForPaginationWithGrouping() - line 406: EloquentTestUser::insert([ - line 413: $query = EloquentTestUser::groupBy('email')->getQuery(); - line 415: $this->assertEquals(3, $query->getCountForPagination()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 418: public function testCountForPaginationWithGroupingAndSubSelects() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 418: public function testCountForPaginationWithGroupingAndSubSelects() - line 420: EloquentTestUser::insert([ - line 428: $user1->friends()->create(['id' => 5, 'email' => 'friend@gmail.com']); - line 432: 'friends_count' => EloquentTestUser::whereColumn('friend_id', 'user_id')->count(), - line 435: $this->assertEquals(4, $query->getCountForPagination()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 438: public function testCursorPaginatedModelCollectionRetrieval() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 438: public function testCursorPaginatedModelCollectionRetrieval() - line 440: EloquentTestUser::insert([ - line 449: $models = EloquentTestUser::oldest('id')->cursorPaginate(2); - line 457: $this->assertTrue($models->hasMorePages()); - line 458: $this->assertTrue($models->hasPages()); - line 463: $models = EloquentTestUser::oldest('id')->cursorPaginate(2); - line 469: $this->assertFalse($models->hasMorePages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 473: public function testPreviousCursorPaginatedModelCollectionRetrieval() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 473: public function testPreviousCursorPaginatedModelCollectionRetrieval() - line 475: EloquentTestUser::insert([ - line 484: $models = EloquentTestUser::oldest('id')->cursorPaginate(2); - line 492: $this->assertTrue($models->hasMorePages()); - line 493: $this->assertTrue($models->hasPages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 496: public function testCursorPaginatedModelCollectionRetrievalWhenNoElements() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 496: public function testCursorPaginatedModelCollectionRetrievalWhenNoElements() - line 498: CursorPaginator::currentCursorResolver(function () { - line 501: $models = EloquentTestUser::oldest('id')->cursorPaginate(2); - line 509: $models = EloquentTestUser::oldest('id')->cursorPaginate(2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 598: public function testCreateOrFirstNonAttributeFieldViolation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 598: public function testCreateOrFirstNonAttributeFieldViolation() - line 601: EloquentTestUniqueUser::create([ - line 606: $this->expectException(UniqueConstraintViolationException::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 598: public function testCreateOrFirstNonAttributeFieldViolation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 657: public function testUpdateOrCreateOnDifferentConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 657: public function testUpdateOrCreateOnDifferentConnection() - line 659: EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 661: EloquentTestUser::on('second_connection')->updateOrCreate( - line 666: EloquentTestUser::on('second_connection')->updateOrCreate( - line 672: $this->assertEquals(2, EloquentTestUser::on('second_connection')->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 675: public function testCheckAndCreateMethodsOnMultiConnections() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 675: public function testCheckAndCreateMethodsOnMultiConnections() - line 677: EloquentTestUser::create(['id' => 1, 'email' => 'taylorotwell@gmail.com']); - line 678: EloquentTestUser::on('second_connection')->find( - line 682: $user1 = EloquentTestUser::on('second_connection')->findOrNew(1); - line 683: $user2 = EloquentTestUser::on('second_connection')->findOrNew(2); - line 686: $this->assertSame('second_connection', $user1->getConnectionName()); - line 687: $this->assertSame('second_connection', $user2->getConnectionName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 712: public function testChunk() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 712: public function testChunk() - line 714: EloquentTestUser::insert([ - line 722: EloquentTestUser::query()->orderBy('id', 'asc')->chunk(2, function (Collection $users, $page) use (&$chunks) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 712: public function testChunk() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 738: public function testChunksWithLimitsWhereLimitIsLessThanTotal() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 738: public function testChunksWithLimitsWhereLimitIsLessThanTotal() - line 740: EloquentTestUser::insert([ - line 748: EloquentTestUser::query()->orderBy('id', 'asc')->limit(2)->chunk(2, function (Collection $users, $page) use (&$chunks) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 738: public function testChunksWithLimitsWhereLimitIsLessThanTotal() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 763: public function testChunksWithLimitsWhereLimitIsMoreThanTotal() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 763: public function testChunksWithLimitsWhereLimitIsMoreThanTotal() - line 765: EloquentTestUser::insert([ - line 773: EloquentTestUser::query()->orderBy('id', 'asc')->limit(10)->chunk(2, function (Collection $users, $page) use (&$chunks) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 763: public function testChunksWithLimitsWhereLimitIsMoreThanTotal() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 791: public function testChunksWithOffset() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 791: public function testChunksWithOffset() - line 793: EloquentTestUser::insert([ - line 801: EloquentTestUser::query()->orderBy('id', 'asc')->offset(1)->chunk(2, function (Collection $users, $page) use (&$chunks) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 791: public function testChunksWithOffset() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 816: public function testChunksWithOffsetWhereMoreThanTotal() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 816: public function testChunksWithOffsetWhereMoreThanTotal() - line 818: EloquentTestUser::insert([ - line 826: EloquentTestUser::query()->orderBy('id', 'asc')->offset(3)->chunk(2, function () use (&$chunks) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 816: public function testChunksWithOffsetWhereMoreThanTotal() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 833: public function testChunksWithLimitsAndOffsets() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 833: public function testChunksWithLimitsAndOffsets() - line 835: EloquentTestUser::insert([ - line 847: EloquentTestUser::query()->orderBy('id', 'asc')->offset(2)->limit(3)->chunk(2, function (Collection $users, $page) use (&$chunks) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 833: public function testChunksWithLimitsAndOffsets() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 865: public function testChunkByIdWithLimits() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 865: public function testChunkByIdWithLimits() - line 867: EloquentTestUser::insert([ - line 875: EloquentTestUser::query()->limit(2)->chunkById(2, function (Collection $users, $page) use (&$chunks) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 865: public function testChunkByIdWithLimits() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 890: public function testChunkByIdWithOffsets() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 890: public function testChunkByIdWithOffsets() - line 892: EloquentTestUser::insert([ - line 900: EloquentTestUser::query()->offset(1)->chunkById(2, function (Collection $users, $page) use (&$chunks) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 890: public function testChunkByIdWithOffsets() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 915: public function testChunkByIdWithLimitsAndOffsets() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 915: public function testChunkByIdWithLimitsAndOffsets() - line 917: EloquentTestUser::insert([ - line 929: EloquentTestUser::query()->offset(2)->limit(3)->chunkById(2, function (Collection $users, $page) use (&$chunks) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 915: public function testChunkByIdWithLimitsAndOffsets() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 947: public function testChunkByIdWithNonIncrementingKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 947: public function testChunkByIdWithNonIncrementingKey() - line 949: EloquentTestNonIncrementingSecond::insert([ - line 956: EloquentTestNonIncrementingSecond::query()->chunkById(2, function (Collection $users) use (&$i) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 947: public function testChunkByIdWithNonIncrementingKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 968: public function testEachByIdWithNonIncrementingKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 968: public function testEachByIdWithNonIncrementingKey() - line 970: EloquentTestNonIncrementingSecond::insert([ - line 977: EloquentTestNonIncrementingSecond::query()->eachById( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 968: public function testEachByIdWithNonIncrementingKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 984: public function testPluck() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 984: public function testPluck() - line 986: EloquentTestUser::insert([ - line 991: $simple = EloquentTestUser::oldest('id')->pluck('users.email')->all(); - line 992: $keyed = EloquentTestUser::oldest('id')->pluck('users.email', 'users.id')->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 998: public function testPluckWithJoin() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 998: public function testPluckWithJoin() - line 1000: $user1 = EloquentTestUser::create(['id' => 1, 'email' => 'taylorotwell@gmail.com']); - line 1003: $user2->posts()->create(['id' => 1, 'name' => 'First post']); - line 1004: $user1->posts()->create(['id' => 2, 'name' => 'Second post']); - line 1008: $this->assertEquals([1 => 'First post', 2 => 'Second post'], $query->pluck('posts.name', 'posts.id')->all()); - line 1009: $this->assertEquals([2 => 'First post', 1 => 'Second post'], $query->pluck('posts.name', 'users.id')->all()); - line 1010: $this->assertEquals(['abigailotwell@gmail.com' => 'First post', 'taylorotwell@gmail.com' => 'Second post'], $query->pluck('posts.name', 'users.email AS user_email')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1013: public function testPluckWithColumnNameContainingASpace() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1013: public function testPluckWithColumnNameContainingASpace() - line 1015: EloquentTestUserWithSpaceInColumnName::insert([ - line 1020: $simple = EloquentTestUserWithSpaceInColumnName::oldest('id')->pluck('users_with_space_in_column_name.email address')->all(); - line 1021: $keyed = EloquentTestUserWithSpaceInColumnName::oldest('id')->pluck('email address', 'id')->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1044: public function testFindOrFailWithSingleIdThrowsModelNotFoundException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1044: public function testFindOrFailWithSingleIdThrowsModelNotFoundException() - line 1046: $this->expectException(ModelNotFoundException::class); - line 1047: $this->expectExceptionMessage('No query results for model [Illuminate\Tests\Database\EloquentTestUser] 1'); - line 1048: $this->expectExceptionObject( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1044: public function testFindOrFailWithSingleIdThrowsModelNotFoundException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1055: public function testFindOrFailWithMultipleIdsThrowsModelNotFoundException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1055: public function testFindOrFailWithMultipleIdsThrowsModelNotFoundException() - line 1057: $this->expectException(ModelNotFoundException::class); - line 1058: $this->expectExceptionMessage('No query results for model [Illuminate\Tests\Database\EloquentTestUser] 2, 3'); - line 1059: $this->expectExceptionObject( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1055: public function testFindOrFailWithMultipleIdsThrowsModelNotFoundException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1067: public function testFindOrFailWithMultipleIdsUsingCollectionThrowsModelNotFoundException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1067: public function testFindOrFailWithMultipleIdsUsingCollectionThrowsModelNotFoundException() - line 1069: $this->expectException(ModelNotFoundException::class); - line 1070: $this->expectExceptionMessage('No query results for model [Illuminate\Tests\Database\EloquentTestUser] 2, 3'); - line 1071: $this->expectExceptionObject( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1067: public function testFindOrFailWithMultipleIdsUsingCollectionThrowsModelNotFoundException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1079: public function testOneToOneRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1079: public function testOneToOneRelationship() - line 1081: $user = EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 1082: $user->post()->create(['name' => 'First Post']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1094: public function testIssetLoadsInRelationshipIfItIsntLoadedAlready() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1094: public function testIssetLoadsInRelationshipIfItIsntLoadedAlready() - line 1096: $user = EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 1097: $user->post()->create(['name' => 'First Post']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1102: public function testOneToManyRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1102: public function testOneToManyRelationship() - line 1104: $user = EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 1105: $user->posts()->create(['name' => 'First Post']); - line 1106: $user->posts()->create(['name' => 'Second Post']); - line 1109: $post2 = $user->posts()->where('name', 'Second Post')->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1102: public function testOneToManyRelationship() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1121: public function testBasicModelHydration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1121: public function testBasicModelHydration() - line 1124: $user->setConnection('second_connection'); - line 1125: $user->save(); - line 1128: $user->setConnection('second_connection'); - line 1129: $user->save(); - line 1131: $models = EloquentTestUser::on('second_connection')->fromQuery('SELECT * FROM users WHERE email = ?', ['abigailotwell@gmail.com']); - line 1136: $this->assertSame('second_connection', $models[0]->getConnectionName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1140: public function testFirstOrNewOnHasOneRelationShip() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1140: public function testFirstOrNewOnHasOneRelationShip() - line 1142: $user1 = EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 1143: $post1 = $user1->post()->firstOrNew(['name' => 'First Post'], ['name' => 'New Post']); - line 1148: $post = $user2->post()->create(['name' => 'First Post']); - line 1149: $post2 = $user2->post()->firstOrNew(['name' => 'First Post'], ['name' => 'New Post']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1140: public function testFirstOrNewOnHasOneRelationShip() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1155: public function testFirstOrCreateOnHasOneRelationShip() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1155: public function testFirstOrCreateOnHasOneRelationShip() - line 1157: $user1 = EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 1158: $post1 = $user1->post()->firstOrCreate(['name' => 'First Post'], ['name' => 'New Post']); - line 1163: $post = $user2->post()->create(['name' => 'First Post']); - line 1164: $post2 = $user2->post()->firstOrCreate(['name' => 'First Post'], ['name' => 'New Post']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1155: public function testFirstOrCreateOnHasOneRelationShip() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1170: public function testHasOnSelfReferencingBelongsToManyRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1170: public function testHasOnSelfReferencingBelongsToManyRelationship() - line 1172: $user = EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 1173: $user->friends()->create(['email' => 'abigailotwell@gmail.com']); - line 1180: $this->assertSame('taylorotwell@gmail.com', $results->first()->email); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1183: public function testWhereHasOnSelfReferencingBelongsToManyRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1183: public function testWhereHasOnSelfReferencingBelongsToManyRelationship() - line 1185: $user = EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 1186: $user->friends()->create(['email' => 'abigailotwell@gmail.com']); - line 1189: $query->where('email', 'abigailotwell@gmail.com'); - line 1193: $this->assertSame('taylorotwell@gmail.com', $results->first()->email); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1196: public function testWithWhereHasOnSelfReferencingBelongsToManyRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1196: public function testWithWhereHasOnSelfReferencingBelongsToManyRelationship() - line 1198: $user = EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 1199: $user->friends()->create(['email' => 'abigailotwell@gmail.com']); - line 1202: $query->where('email', 'abigailotwell@gmail.com'); - line 1206: $this->assertSame('taylorotwell@gmail.com', $results->first()->email); - line 1207: $this->assertTrue($results->first()->relationLoaded('friends')); - line 1208: $this->assertSame($results->first()->friends->pluck('email')->unique()->toArray(), ['abigailotwell@gmail.com']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1211: public function testHasOnNestedSelfReferencingBelongsToManyRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1211: public function testHasOnNestedSelfReferencingBelongsToManyRelationship() - line 1213: $user = EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 1214: $friend = $user->friends()->create(['email' => 'abigailotwell@gmail.com']); - line 1215: $friend->friends()->create(['email' => 'foo@gmail.com']); - line 1220: $this->assertSame('taylorotwell@gmail.com', $results->first()->email); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1223: public function testWhereHasOnNestedSelfReferencingBelongsToManyRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1223: public function testWhereHasOnNestedSelfReferencingBelongsToManyRelationship() - line 1225: $user = EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 1226: $friend = $user->friends()->create(['email' => 'abigailotwell@gmail.com']); - line 1227: $friend->friends()->create(['email' => 'foo@gmail.com']); - line 1230: $query->where('email', 'foo@gmail.com'); - line 1234: $this->assertSame('taylorotwell@gmail.com', $results->first()->email); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1237: public function testWithWhereHasOnNestedSelfReferencingBelongsToManyRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1237: public function testWithWhereHasOnNestedSelfReferencingBelongsToManyRelationship() - line 1239: $user = EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 1240: $friend = $user->friends()->create(['email' => 'abigailotwell@gmail.com']); - line 1241: $friend->friends()->create(['email' => 'foo@gmail.com']); - line 1244: $query->where('email', 'foo@gmail.com'); - line 1248: $this->assertSame('taylorotwell@gmail.com', $results->first()->email); - line 1249: $this->assertTrue($results->first()->relationLoaded('friends')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1254: public function testHasOnSelfReferencingBelongsToManyRelationshipWithWherePivot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1254: public function testHasOnSelfReferencingBelongsToManyRelationshipWithWherePivot() - line 1256: $user = EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 1257: $user->friends()->create(['email' => 'abigailotwell@gmail.com']); - line 1262: $this->assertSame('taylorotwell@gmail.com', $results->first()->email); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1265: public function testHasOnNestedSelfReferencingBelongsToManyRelationshipWithWherePivot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1265: public function testHasOnNestedSelfReferencingBelongsToManyRelationshipWithWherePivot() - line 1267: $user = EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 1268: $friend = $user->friends()->create(['email' => 'abigailotwell@gmail.com']); - line 1269: $friend->friends()->create(['email' => 'foo@gmail.com']); - line 1274: $this->assertSame('taylorotwell@gmail.com', $results->first()->email); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1277: public function testHasOnSelfReferencingBelongsToRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1277: public function testHasOnSelfReferencingBelongsToRelationship() - line 1279: $parentPost = EloquentTestPost::create(['name' => 'Parent Post', 'user_id' => 1]); - line 1285: $this->assertSame('Child Post', $results->first()->name); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1299: public function testWhereHasOnSelfReferencingBelongsToRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1299: public function testWhereHasOnSelfReferencingBelongsToRelationship() - line 1301: $parentPost = EloquentTestPost::create(['name' => 'Parent Post', 'user_id' => 1]); - line 1305: $query->where('name', 'Parent Post'); - line 1309: $this->assertSame('Child Post', $results->first()->name); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1312: public function testWithWhereHasOnSelfReferencingBelongsToRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1312: public function testWithWhereHasOnSelfReferencingBelongsToRelationship() - line 1314: $parentPost = EloquentTestPost::create(['name' => 'Parent Post', 'user_id' => 1]); - line 1318: $query->where('name', 'Parent Post'); - line 1322: $this->assertSame('Child Post', $results->first()->name); - line 1323: $this->assertTrue($results->first()->relationLoaded('parentPost')); - line 1324: $this->assertSame($results->first()->parentPost->name, 'Parent Post'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1327: public function testHasOnNestedSelfReferencingBelongsToRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1327: public function testHasOnNestedSelfReferencingBelongsToRelationship() - line 1329: $grandParentPost = EloquentTestPost::create(['name' => 'Grandparent Post', 'user_id' => 1]); - line 1336: $this->assertSame('Child Post', $results->first()->name); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1339: public function testWhereHasOnNestedSelfReferencingBelongsToRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1339: public function testWhereHasOnNestedSelfReferencingBelongsToRelationship() - line 1341: $grandParentPost = EloquentTestPost::create(['name' => 'Grandparent Post', 'user_id' => 1]); - line 1346: $query->where('name', 'Grandparent Post'); - line 1350: $this->assertSame('Child Post', $results->first()->name); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1353: public function testWithWhereHasOnNestedSelfReferencingBelongsToRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 1353: public function testWithWhereHasOnNestedSelfReferencingBelongsToRelationship() - line 1355: $grandParentPost = EloquentTestPost::create(['name' => 'Grandparent Post', 'user_id' => 1]); - line 1360: $query->where('name', 'Grandparent Post'); - line 1364: $this->assertSame('Child Post', $results->first()->name); - line 1365: $this->assertTrue($results->first()->relationLoaded('parentPost')); - line 1366: $this->assertSame($results->first()->parentPost->name, 'Parent Post'); - line 1367: $this->assertTrue($results->first()->parentPost->relationLoaded('parentPost')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1371: public function testHasOnSelfReferencingHasManyRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1371: public function testHasOnSelfReferencingHasManyRelationship() - line 1373: $parentPost = EloquentTestPost::create(['name' => 'Parent Post', 'user_id' => 1]); - line 1379: $this->assertSame('Parent Post', $results->first()->name); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1382: public function testWhereHasOnSelfReferencingHasManyRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1382: public function testWhereHasOnSelfReferencingHasManyRelationship() - line 1384: $parentPost = EloquentTestPost::create(['name' => 'Parent Post', 'user_id' => 1]); - line 1388: $query->where('name', 'Child Post'); - line 1392: $this->assertSame('Parent Post', $results->first()->name); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1395: public function testWithWhereHasOnSelfReferencingHasManyRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1395: public function testWithWhereHasOnSelfReferencingHasManyRelationship() - line 1397: $parentPost = EloquentTestPost::create(['name' => 'Parent Post', 'user_id' => 1]); - line 1401: $query->where('name', 'Child Post'); - line 1405: $this->assertSame('Parent Post', $results->first()->name); - line 1406: $this->assertTrue($results->first()->relationLoaded('childPosts')); - line 1407: $this->assertSame($results->first()->childPosts->pluck('name')->unique()->toArray(), ['Child Post']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1410: public function testHasOnNestedSelfReferencingHasManyRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1410: public function testHasOnNestedSelfReferencingHasManyRelationship() - line 1412: $grandParentPost = EloquentTestPost::create(['name' => 'Grandparent Post', 'user_id' => 1]); - line 1419: $this->assertSame('Grandparent Post', $results->first()->name); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1422: public function testWhereHasOnNestedSelfReferencingHasManyRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1422: public function testWhereHasOnNestedSelfReferencingHasManyRelationship() - line 1424: $grandParentPost = EloquentTestPost::create(['name' => 'Grandparent Post', 'user_id' => 1]); - line 1429: $query->where('name', 'Child Post'); - line 1433: $this->assertSame('Grandparent Post', $results->first()->name); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1436: public function testWithWhereHasOnNestedSelfReferencingHasManyRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1436: public function testWithWhereHasOnNestedSelfReferencingHasManyRelationship() - line 1438: $grandParentPost = EloquentTestPost::create(['name' => 'Grandparent Post', 'user_id' => 1]); - line 1443: $query->where('name', 'Child Post'); - line 1447: $this->assertSame('Grandparent Post', $results->first()->name); - line 1448: $this->assertTrue($results->first()->relationLoaded('childPosts')); - line 1449: $this->assertSame($results->first()->childPosts->pluck('name')->unique()->toArray(), ['Parent Post']); - line 1450: $this->assertSame($results->first()->childPosts->pluck('childPosts')->flatten()->pluck('name')->unique()->toArray(), ['Child Post']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1453: public function testHasWithNonWhereBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1453: public function testHasWithNonWhereBindings() - line 1455: $user = EloquentTestUser::create(['id' => 1, 'email' => 'taylorotwell@gmail.com']); - line 1457: $user->posts()->create(['name' => 'Post 2']) - line 1462: $bindingsCount = count($query->getBindings()); - line 1463: $questionMarksCount = substr_count($query->toSql(), '?'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1453: public function testHasWithNonWhereBindings() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1468: public function testHasOnMorphToRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1468: public function testHasOnMorphToRelationship() - line 1470: $post = EloquentTestPost::create(['name' => 'Morph Post', 'user_id' => 1]); - line 1471: (new EloquentTestPhoto)->imageable()->associate($post)->fill(['name' => 'Morph Photo'])->save(); - line 1475: $this->assertEquals(1, $photos->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1478: public function testBelongsToManyRelationshipModelsAreProperlyHydratedWithSoleQuery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1478: public function testBelongsToManyRelationshipModelsAreProperlyHydratedWithSoleQuery() - line 1480: $user = EloquentTestUserWithCustomFriendPivot::create(['email' => 'taylorotwell@gmail.com']); - line 1481: $user->friends()->create(['email' => 'abigailotwell@gmail.com']); - line 1483: $user->friends()->get()->each(function ($friend) { - line 1487: $soleFriend = $user->friends()->where('email', 'abigailotwell@gmail.com')->sole(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1478: public function testBelongsToManyRelationshipModelsAreProperlyHydratedWithSoleQuery() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1492: public function testBelongsToManyRelationshipMissingModelExceptionWithSoleQueryWorks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1492: public function testBelongsToManyRelationshipMissingModelExceptionWithSoleQueryWorks() - line 1494: $this->expectException(ModelNotFoundException::class); - line 1496: $user->friends()->where('email', 'abigailotwell@gmail.com')->sole(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1492: public function testBelongsToManyRelationshipMissingModelExceptionWithSoleQueryWorks() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1499: public function testBelongsToManyRelationshipModelsAreProperlyHydratedOverChunkedRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1499: public function testBelongsToManyRelationshipModelsAreProperlyHydratedOverChunkedRequest() - line 1501: $user = EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 1502: $friend = $user->friends()->create(['email' => 'abigailotwell@gmail.com']); - line 1504: EloquentTestUser::first()->friends()->chunk(2, function ($friends) use ($user, $friend) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1512: public function testBelongsToManyRelationshipModelsAreProperlyHydratedOverEachRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1512: public function testBelongsToManyRelationshipModelsAreProperlyHydratedOverEachRequest() - line 1514: $user = EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 1515: $friend = $user->friends()->create(['email' => 'abigailotwell@gmail.com']); - line 1517: EloquentTestUser::first()->friends()->each(function ($result) use ($user, $friend) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1524: public function testBelongsToManyRelationshipModelsAreProperlyHydratedOverCursorRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1524: public function testBelongsToManyRelationshipModelsAreProperlyHydratedOverCursorRequest() - line 1526: $user = EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 1527: $friend = $user->friends()->create(['email' => 'abigailotwell@gmail.com']); - line 1529: foreach (EloquentTestUser::first()->friends()->cursor() as $result) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1536: public function testWhereAttachedTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 1536: public function testWhereAttachedTo() - line 1538: EloquentTestUser::insert([ - line 1549: $user1->eloquentTestAchievements()->attach([$achievement1]); - line 1550: $user2->eloquentTestAchievements()->attach([$achievement1, $achievement3]); - line 1551: $user3->eloquentTestAchievements()->attach([$achievement2, $achievement3]); - line 1555: $this->assertSame(2, $achievedAchievement1->count()); - line 1556: $this->assertTrue($achievedAchievement1->contains($user1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1568: public function testBasicHasManyEagerLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1568: public function testBasicHasManyEagerLoading() - line 1570: $user = EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 1571: $user->posts()->create(['name' => 'First Post']); - line 1572: $user = EloquentTestUser::with('posts')->where('email', 'taylorotwell@gmail.com')->first(); - line 1574: $this->assertSame('First Post', $user->posts->first()->name); - line 1576: $post = EloquentTestPost::with('user')->where('name', 'First Post')->get(); - line 1577: $this->assertSame('taylorotwell@gmail.com', $post->first()->user->email); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1580: public function testBasicNestedSelfReferencingHasManyEagerLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 1580: public function testBasicNestedSelfReferencingHasManyEagerLoading() - line 1582: $user = EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 1583: $post = $user->posts()->create(['name' => 'First Post']); - line 1584: $post->childPosts()->create(['name' => 'Child Post', 'user_id' => $user->id]); - line 1586: $user = EloquentTestUser::with('posts.childPosts')->where('email', 'taylorotwell@gmail.com')->first(); - line 1588: $this->assertNotNull($user->posts->first()); - line 1589: $this->assertSame('First Post', $user->posts->first()->name); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1600: public function testBasicMorphManyRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1600: public function testBasicMorphManyRelationship() - line 1602: $user = EloquentTestUser::create(['email' => 'taylorotwell@gmail.com']); - line 1603: $user->photos()->create(['name' => 'Avatar 1']); - line 1604: $user->photos()->create(['name' => 'Avatar 2']); - line 1605: $post = $user->posts()->create(['name' => 'First Post']); - line 1606: $post->photos()->create(['name' => 'Hero 1']); - line 1607: $post->photos()->create(['name' => 'Hero 2']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1630: public function testMorphMapIsUsedForCreatingAndFetchingThroughRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1630: public function testMorphMapIsUsedForCreatingAndFetchingThroughRelation() - line 1632: Relation::morphMap([ - line 1638: $user->photos()->create(['name' => 'Avatar 1']); - line 1639: $user->photos()->create(['name' => 'Avatar 2']); - line 1640: $post = $user->posts()->create(['name' => 'First Post']); - line 1641: $post->photos()->create(['name' => 'Hero 1']); - line 1642: $post->photos()->create(['name' => 'Hero 2']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1661: public function testMorphMapIsUsedWhenFetchingParent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1661: public function testMorphMapIsUsedWhenFetchingParent() - line 1663: Relation::morphMap([ - line 1669: $user->photos()->create(['name' => 'Avatar 1']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1661: public function testMorphMapIsUsedWhenFetchingParent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1706: public function testEmptyMorphToRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1706: public function testEmptyMorphToRelationship() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1706: public function testEmptyMorphToRelationship() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1724: public function testSavingJSONFields() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1724: public function testSavingJSONFields() - line 1726: $model = EloquentTestWithJSON::create(['json' => ['x' => 0]]); - line 1729: $model->fillable(['json->y', 'json->a->b']); - line 1731: $model->update(['json->y' => '1']); - line 1732: $this->assertArrayNotHasKey('json->y', $model->toArray()); - line 1735: $model->update(['json->a->b' => '3']); - line 1736: $this->assertArrayNotHasKey('json->a->b', $model->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1740: public function testSaveOrFailWithDuplicatedEntry() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1740: public function testSaveOrFailWithDuplicatedEntry() - line 1742: $this->expectException(QueryException::class); - line 1743: $this->expectExceptionMessage('SQLSTATE[23000]:'); - line 1754: $post->saveOrFail(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1740: public function testSaveOrFailWithDuplicatedEntry() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1781: public function testNestedTransactions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1781: public function testNestedTransactions() - line 1783: $user = EloquentTestUser::create(['email' => 'taylor@laravel.com']); - line 1784: $this->connection()->transaction(function () use ($user) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1799: public function testNestedTransactionsUsingSaveOrFailWillSucceed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1799: public function testNestedTransactionsUsingSaveOrFailWillSucceed() - line 1801: $user = EloquentTestUser::create(['email' => 'taylor@laravel.com']); - line 1802: $this->connection()->transaction(function () use ($user) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1816: public function testNestedTransactionsUsingSaveOrFailWillFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1816: public function testNestedTransactionsUsingSaveOrFailWillFails() - line 1818: $user = EloquentTestUser::create(['email' => 'taylor@laravel.com']); - line 1819: $this->connection()->transaction(function () use ($user) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1834: public function testToArrayIncludesDefaultFormattedTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1834: public function testToArrayIncludesDefaultFormattedTimestamps() - line 1838: $model->setRawAttributes([ - line 1843: $array = $model->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1849: public function testToArrayIncludesCustomFormattedTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1849: public function testToArrayIncludesCustomFormattedTimestamps() - line 1853: $model->setRawAttributes([ - line 1858: $array = $model->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1864: public function testIncrementingPrimaryKeysAreCastToIntegersByDefault() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1864: public function testIncrementingPrimaryKeysAreCastToIntegersByDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1872: public function testDefaultIncrementingPrimaryKeyIntegerCastCanBeOverwritten() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1872: public function testDefaultIncrementingPrimaryKeyIntegerCastCanBeOverwritten() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1880: public function testRelationsArePreloadedInGlobalScope() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1880: public function testRelationsArePreloadedInGlobalScope() - line 1882: $user = EloquentTestUserWithGlobalScope::create(['email' => 'taylorotwell@gmail.com']); - line 1883: $user->posts()->create(['name' => 'My Post']); - line 1887: $this->assertCount(1, $result->getRelations()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1890: public function testModelIgnoredByGlobalScopeCanBeRefreshed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1890: public function testModelIgnoredByGlobalScopeCanBeRefreshed() - line 1892: $user = EloquentTestUserWithOmittingGlobalScope::create(['id' => 1, 'email' => 'taylorotwell@gmail.com']); - line 1894: $this->assertNotNull($user->fresh()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1890: public function testModelIgnoredByGlobalScopeCanBeRefreshed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1897: public function testGlobalScopeCanBeRemovedByOtherGlobalScope() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1897: public function testGlobalScopeCanBeRemovedByOtherGlobalScope() - line 1899: $user = EloquentTestUserWithGlobalScopeRemovingOtherScope::create(['id' => 1, 'email' => 'taylorotwell@gmail.com']); - line 1900: $user->delete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1897: public function testGlobalScopeCanBeRemovedByOtherGlobalScope() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1905: public function testForPageBeforeIdCorrectlyPaginates() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1905: public function testForPageBeforeIdCorrectlyPaginates() - line 1907: EloquentTestUser::insert([ - line 1914: $this->assertEquals(1, $results->first()->id); - line 1916: $results = EloquentTestUser::orderBy('id', 'desc')->forPageBeforeId(15, 2); - line 1918: $this->assertEquals(1, $results->first()->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1921: public function testForPageAfterIdCorrectlyPaginates() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1921: public function testForPageAfterIdCorrectlyPaginates() - line 1923: EloquentTestUser::insert([ - line 1930: $this->assertEquals(2, $results->first()->id); - line 1932: $results = EloquentTestUser::orderBy('id', 'desc')->forPageAfterId(15, 1); - line 1934: $this->assertEquals(2, $results->first()->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1937: public function testMorphToRelationsAcrossDatabaseConnections() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1937: public function testMorphToRelationsAcrossDatabaseConnections() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1952: public function testEagerLoadedMorphToRelationsOnAnotherDatabaseConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1952: public function testEagerLoadedMorphToRelationsOnAnotherDatabaseConnection() - line 1954: EloquentTestPost::create(['id' => 1, 'name' => 'Default Connection Post', 'user_id' => 1]); - line 1958: ->create(['id' => 1, 'name' => 'Second Connection Post', 'user_id' => 1]); - line 1960: ->create(['id' => 1, 'imageable_type' => EloquentTestPost::class, 'imageable_id' => 1, 'name' => 'Photo']); - line 1962: $defaultConnectionPost = EloquentTestPhoto::with('imageable')->first()->imageable; - line 1963: $secondConnectionPost = EloquentTestPhoto::on('second_connection')->with('imageable')->first()->imageable; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1969: public function testBelongsToManyCustomPivot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 1969: public function testBelongsToManyCustomPivot() - line 1971: $john = EloquentTestUserWithCustomFriendPivot::create(['id' => 1, 'name' => 'John Doe', 'email' => 'johndoe@example.com']); - line 1982: $john->friends()->attach($jane, ['friend_level_id' => 1]); - line 1983: $john->friends()->attach($jack, ['friend_level_id' => 2]); - line 1984: $john->friends()->attach($jule, ['friend_level_id' => 3]); - line 1986: $johnWithFriends = EloquentTestUserWithCustomFriendPivot::with('friends')->find(1); - line 1989: $this->assertSame('friend', $johnWithFriends->friends->find(3)->pivot->level->level); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1993: public function testIsAfterRetrievingTheSameModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1993: public function testIsAfterRetrievingTheSameModel() - line 1995: $saved = EloquentTestUser::create(['id' => 1, 'email' => 'taylorotwell@gmail.com']); - line 1998: $this->assertTrue($saved->is($retrieved)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2001: public function testFreshMethodOnModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 2001: public function testFreshMethodOnModel() - line 2003: $now = Carbon::now()->startOfSecond(); - line 2004: $nowSerialized = $now->toJSON(); - line 2005: $nowWithFractionsSerialized = $now->toJSON(); - line 2013: $storedUser1->newQuery()->update([ - line 2017: $freshStoredUser1 = $storedUser1->fresh(); - line 2024: $storedUser2->newQuery()->update(['email' => 'dev@mathieutu.ovh']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2076: public function testFreshMethodOnCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2076: public function testFreshMethodOnCollection() - line 2078: EloquentTestUser::insert([['id' => 1, 'email' => 'taylorotwell@gmail.com'], ['id' => 2, 'email' => 'taylorotwell@gmail.com']]); - line 2081: ->add(new EloquentTestUser(['id' => 3, 'email' => 'taylorotwell@gmail.com'])); - line 2083: EloquentTestUser::find(1)->update(['name' => 'Mathieu TUDISCO']); - line 2084: EloquentTestUser::find(2)->update(['email' => 'dev@mathieutu.ovh']); - line 2090: $refreshedUsers = $users->fresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2097: public function testTimestampsUsingDefaultDateFormat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2097: public function testTimestampsUsingDefaultDateFormat() - line 2100: $model->setDateFormat('Y-m-d H:i:s'); // Default MySQL/PostgreSQL/SQLite date format - line 2101: $model->setRawAttributes([ - line 2105: $this->assertSame('2017-11-14 08:23:19', $model->fromDateTime($model->getAttribute('created_at'))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2108: public function testTimestampsUsingDefaultSqlServerDateFormat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2108: public function testTimestampsUsingDefaultSqlServerDateFormat() - line 2111: $model->setDateFormat('Y-m-d H:i:s.v'); // Default SQL Server date format - line 2112: $model->setRawAttributes([ - line 2117: $this->assertSame('2017-11-14 08:23:19.000', $model->fromDateTime($model->getAttribute('created_at'))); - line 2118: $this->assertSame('2017-11-14 08:23:19.734', $model->fromDateTime($model->getAttribute('updated_at'))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2121: public function testTimestampsUsingCustomDateFormat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2121: public function testTimestampsUsingCustomDateFormat() - line 2125: $model->setDateFormat('Y-m-d H:i:s.u'); // Custom date format - line 2126: $model->setRawAttributes([ - line 2132: $this->assertSame('2017-11-14 08:23:19.000000', $model->fromDateTime($model->getAttribute('created_at'))); - line 2133: $this->assertSame('2017-11-14 08:23:19.734800', $model->fromDateTime($model->getAttribute('updated_at'))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2136: public function testTimestampsUsingOldSqlServerDateFormat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2136: public function testTimestampsUsingOldSqlServerDateFormat() - line 2139: $model->setDateFormat('Y-m-d H:i:s.000'); // Old SQL Server date format - line 2140: $model->setRawAttributes([ - line 2144: $this->assertSame('2017-11-14 08:23:19.000', $model->fromDateTime($model->getAttribute('created_at'))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2147: public function testTimestampsUsingOldSqlServerDateFormatFallbackToDefaultParsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 2147: public function testTimestampsUsingOldSqlServerDateFormatFallbackToDefaultParsing() - line 2150: $model->setDateFormat('Y-m-d H:i:s.000'); // Old SQL Server date format - line 2151: $model->setRawAttributes([ - line 2155: $date = $model->getAttribute('updated_at'); - line 2156: $this->assertSame('2017-11-14 08:23:19.734', $date->format('Y-m-d H:i:s.v'), 'the date should contains the precision'); - line 2157: $this->assertSame('2017-11-14 08:23:19.000', $model->fromDateTime($date), 'the format should trims it'); - line 2160: $this->assertTrue(Date::hasFormat('2017-11-14 08:23:19.000', $model->getDateFormat())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2164: public function testSpecialFormats() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 2164: public function testSpecialFormats() - line 2167: $model->setDateFormat('!Y-d-m \\Y'); - line 2168: $model->setRawAttributes([ - line 2172: $date = $model->getAttribute('updated_at'); - line 2173: $this->assertSame('2017-11-05 00:00:00.000000', $date->format('Y-m-d H:i:s.u'), 'the date should respect the whole format'); - line 2175: $model->setDateFormat('Y d m|'); - line 2176: $model->setRawAttributes([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2192: public function testUpdatingChildModelTouchesParent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 2192: public function testUpdatingChildModelTouchesParent() - line 2196: $user = EloquentTouchingUser::create(['id' => 1, 'email' => 'taylorotwell@gmail.com']); - line 2199: $this->assertTrue($before->isSameDay($user->updated_at)); - line 2200: $this->assertTrue($before->isSameDay($post->updated_at)); - line 2202: Carbon::setTestNow($future = $before->copy()->addDays(3)); - line 2204: $post->update(['name' => 'Updated']); - line 2206: $this->assertTrue($future->isSameDay($post->fresh()->updated_at), 'It is not touching model own timestamps.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2210: public function testMultiLevelTouchingWorks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2210: public function testMultiLevelTouchingWorks() - line 2214: $user = EloquentTouchingUser::create(['id' => 1, 'email' => 'taylorotwell@gmail.com']); - line 2217: $this->assertTrue($before->isSameDay($user->updated_at)); - line 2218: $this->assertTrue($before->isSameDay($post->updated_at)); - line 2220: Carbon::setTestNow($future = $before->copy()->addDays(3)); - line 2224: $this->assertTrue($future->isSameDay($post->fresh()->updated_at), 'It is not touching models related timestamps.'); - line 2225: $this->assertTrue($future->isSameDay($user->fresh()->updated_at), 'It is not touching models related timestamps.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2228: public function testDeletingChildModelTouchesParentTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2228: public function testDeletingChildModelTouchesParentTimestamps() - line 2232: $user = EloquentTouchingUser::create(['id' => 1, 'email' => 'taylorotwell@gmail.com']); - line 2235: $this->assertTrue($before->isSameDay($user->updated_at)); - line 2236: $this->assertTrue($before->isSameDay($post->updated_at)); - line 2238: Carbon::setTestNow($future = $before->copy()->addDays(3)); - line 2240: $post->delete(); - line 2242: $this->assertTrue($future->isSameDay($user->fresh()->updated_at), 'It is not touching models related timestamps.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2245: public function testTouchingChildModelUpdatesParentsTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 2245: public function testTouchingChildModelUpdatesParentsTimestamps() - line 2249: $user = EloquentTouchingUser::create(['id' => 1, 'email' => 'taylorotwell@gmail.com']); - line 2252: $this->assertTrue($before->isSameDay($user->updated_at)); - line 2253: $this->assertTrue($before->isSameDay($post->updated_at)); - line 2255: Carbon::setTestNow($future = $before->copy()->addDays(3)); - line 2257: $post->touch(); - line 2259: $this->assertTrue($future->isSameDay($post->fresh()->updated_at), 'It is not touching model own timestamps.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2263: public function testTouchingChildModelRespectsParentNoTouching() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 2263: public function testTouchingChildModelRespectsParentNoTouching() - line 2267: $user = EloquentTouchingUser::create(['id' => 1, 'email' => 'taylorotwell@gmail.com']); - line 2270: $this->assertTrue($before->isSameDay($user->updated_at)); - line 2271: $this->assertTrue($before->isSameDay($post->updated_at)); - line 2273: Carbon::setTestNow($future = $before->copy()->addDays(3)); - line 2276: $post->touch(); - line 2280: $future->isSameDay($post->fresh()->updated_at), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2290: public function testUpdatingChildPostRespectsNoTouchingDefinition() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 2290: public function testUpdatingChildPostRespectsNoTouchingDefinition() - line 2294: $user = EloquentTouchingUser::create(['id' => 1, 'email' => 'taylorotwell@gmail.com']); - line 2297: $this->assertTrue($before->isSameDay($user->updated_at)); - line 2298: $this->assertTrue($before->isSameDay($post->updated_at)); - line 2300: Carbon::setTestNow($future = $before->copy()->addDays(3)); - line 2303: $post->update(['name' => 'Updated']); - line 2306: $this->assertTrue($future->isSameDay($post->fresh()->updated_at), 'It is not touching model own timestamps when it should.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2310: public function testUpdatingModelInTheDisabledScopeTouchesItsOwnTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 2310: public function testUpdatingModelInTheDisabledScopeTouchesItsOwnTimestamps() - line 2314: $user = EloquentTouchingUser::create(['id' => 1, 'email' => 'taylorotwell@gmail.com']); - line 2317: $this->assertTrue($before->isSameDay($user->updated_at)); - line 2318: $this->assertTrue($before->isSameDay($post->updated_at)); - line 2320: Carbon::setTestNow($future = $before->copy()->addDays(3)); - line 2323: $post->update(['name' => 'Updated']); - line 2326: $this->assertTrue($future->isSameDay($post->fresh()->updated_at), 'It is touching models when it should be disabled.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2330: public function testDeletingChildModelRespectsTheNoTouchingRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2330: public function testDeletingChildModelRespectsTheNoTouchingRule() - line 2334: $user = EloquentTouchingUser::create(['id' => 1, 'email' => 'taylorotwell@gmail.com']); - line 2337: $this->assertTrue($before->isSameDay($user->updated_at)); - line 2338: $this->assertTrue($before->isSameDay($post->updated_at)); - line 2340: Carbon::setTestNow($future = $before->copy()->addDays(3)); - line 2343: $post->delete(); - line 2346: $this->assertTrue($before->isSameDay($user->fresh()->updated_at), 'It is touching models when it should be disabled.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2349: public function testRespectedMultiLevelTouchingChain() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2349: public function testRespectedMultiLevelTouchingChain() - line 2353: $user = EloquentTouchingUser::create(['id' => 1, 'email' => 'taylorotwell@gmail.com']); - line 2356: $this->assertTrue($before->isSameDay($user->updated_at)); - line 2357: $this->assertTrue($before->isSameDay($post->updated_at)); - line 2359: Carbon::setTestNow($future = $before->copy()->addDays(3)); - line 2365: $this->assertTrue($future->isSameDay($post->fresh()->updated_at), 'It is touching models when it should be disabled.'); - line 2366: $this->assertTrue($before->isSameDay($user->fresh()->updated_at), 'It is touching models when it should be disabled.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2369: public function testTouchesGreatParentEvenWhenParentIsInNoTouchScope() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2369: public function testTouchesGreatParentEvenWhenParentIsInNoTouchScope() - line 2373: $user = EloquentTouchingUser::create(['id' => 1, 'email' => 'taylorotwell@gmail.com']); - line 2376: $this->assertTrue($before->isSameDay($user->updated_at)); - line 2377: $this->assertTrue($before->isSameDay($post->updated_at)); - line 2379: Carbon::setTestNow($future = $before->copy()->addDays(3)); - line 2385: $this->assertTrue($before->isSameDay($post->fresh()->updated_at), 'It is touching models when it should be disabled.'); - line 2386: $this->assertTrue($future->isSameDay($user->fresh()->updated_at), 'It is touching models when it should be disabled.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2389: public function testCanNestCallsOfNoTouching() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2389: public function testCanNestCallsOfNoTouching() - line 2393: $user = EloquentTouchingUser::create(['id' => 1, 'email' => 'taylorotwell@gmail.com']); - line 2396: $this->assertTrue($before->isSameDay($user->updated_at)); - line 2397: $this->assertTrue($before->isSameDay($post->updated_at)); - line 2399: Carbon::setTestNow($future = $before->copy()->addDays(3)); - line 2407: $this->assertTrue($before->isSameDay($post->fresh()->updated_at), 'It is touching models when it should be disabled.'); - line 2408: $this->assertTrue($before->isSameDay($user->fresh()->updated_at), 'It is touching models when it should be disabled.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2411: public function testCanPassArrayOfModelsToIgnore() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2411: public function testCanPassArrayOfModelsToIgnore() - line 2415: $user = EloquentTouchingUser::create(['id' => 1, 'email' => 'taylorotwell@gmail.com']); - line 2418: $this->assertTrue($before->isSameDay($user->updated_at)); - line 2419: $this->assertTrue($before->isSameDay($post->updated_at)); - line 2421: Carbon::setTestNow($future = $before->copy()->addDays(3)); - line 2427: $this->assertTrue($before->isSameDay($post->fresh()->updated_at), 'It is touching models when it should be disabled.'); - line 2428: $this->assertTrue($before->isSameDay($user->fresh()->updated_at), 'It is touching models when it should be disabled.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2462: public function testPivotsCanBeRefreshed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2462: public function testPivotsCanBeRefreshed() - line 2464: EloquentTestFriendLevel::create(['id' => 1, 'level' => 'acquaintance']); - line 2468: $user->friends()->create(['id' => 2, 'email' => 'abigailotwell@gmail.com'], ['friend_level_id' => 1]); - line 2473: DB::table('friends')->where('user_id', 1)->where('friend_id', 2)->update([ - line 2477: $this->assertInstanceOf(Pivot::class, $freshPivot = $pivot->fresh()); - line 2480: $this->assertSame($pivot, $pivot->refresh()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2484: public function testMorphPivotsCanBeRefreshed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2484: public function testMorphPivotsCanBeRefreshed() - line 2486: $post = EloquentTestPost::create(['name' => 'MorphToMany Post', 'user_id' => 1]); - line 2487: $post->tags()->create(['id' => 1, 'name' => 'News']); - line 2493: ->where([ - line 2502: $this->assertInstanceOf(MorphPivot::class, $freshPivot = $pivot->fresh()); - line 2505: $this->assertSame($pivot, $pivot->refresh()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2509: public function testTouchingChaperonedChildModelUpdatesParentTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 2509: public function testTouchingChaperonedChildModelUpdatesParentTimestamps() - line 2513: $one = EloquentTouchingCategory::create(['id' => 1, 'name' => 'One']); - line 2514: $two = $one->children()->create(['id' => 2, 'name' => 'Two']); - line 2516: $this->assertTrue($before->isSameDay($one->updated_at)); - line 2517: $this->assertTrue($before->isSameDay($two->updated_at)); - line 2519: Carbon::setTestNow($future = $before->copy()->addDays(3)); - line 2521: $two->touch(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2527: public function testTouchingBiDirectionalChaperonedModelUpdatesAllRelatedTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 2527: public function testTouchingBiDirectionalChaperonedModelUpdatesAllRelatedTimestamps() - line 2531: EloquentTouchingCategory::insert([ - line 2542: $this->assertTrue($before->isSameDay($one->updated_at)); - line 2543: $this->assertTrue($before->isSameDay($two->updated_at)); - line 2544: $this->assertTrue($before->isSameDay($three->updated_at)); - line 2545: $this->assertTrue($before->isSameDay($four->updated_at)); - line 2547: Carbon::setTestNow($future = $before->copy()->addDays(3)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2564: public function testCanFillAndInsert() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2564: public function testCanFillAndInsert() - line 2569: $this->assertTrue(EloquentTestUser::fillAndInsert([ - line 2579: $users->take(2)->each(function (EloquentTestUser $user) { - line 2584: $tim = $users->firstWhere('email', 'tim@laravel.com'); - line 2591: $this->assertEquals('1987-11-01', $users[2]->birthday->format('Y-m-d')); - line 2604: $testsWithJson->each(function (EloquentTestWithJSON $testWithJson) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2610: public function testCanFillAndInsertWithUniqueStringIds() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2610: public function testCanFillAndInsertWithUniqueStringIds() - line 2612: Str::createUuidsUsingSequence([ - line 2635: $taylor = $models->firstWhere('name', 'Taylor'); - line 2636: $nuno = $models->firstWhere('name', 'Nuno'); - line 2637: $dries = $models->firstWhere('name', 'Dries'); - line 2638: $chris = $models->firstWhere('name', 'Chris'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2657: public function testFillAndInsertOrIgnore() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2657: public function testFillAndInsertOrIgnore() - line 2659: Str::createUuidsUsingSequence([ - line 2681: $this->assertSame('00000000-0000-7000-0000-000000000000', $models->firstWhere('name', 'Taylor')->uuid); - line 2684: $models->firstWhere('name', 'Nuno')->only('uuid', 'role') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentInverseRelationHasManyTest.php - Test @ line 61: public function testHasManyInverseRelationIsProperlySetToParentWhenLazyLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 61: public function testHasManyInverseRelationIsProperlySetToParentWhenLazyLoaded() - line 63: HasManyInverseUserModel::factory()->count(3)->withPosts()->create(); - line 67: $this->assertFalse($user->relationLoaded('posts')); - line 69: $this->assertTrue($post->relationLoaded('user')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 75: public function testHasManyInverseRelationIsProperlySetToParentWhenEagerLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 75: public function testHasManyInverseRelationIsProperlySetToParentWhenEagerLoaded() - line 77: HasManyInverseUserModel::factory()->count(3)->withPosts()->create(); - line 81: $posts = $user->getRelation('posts'); - line 84: $this->assertTrue($post->relationLoaded('user')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 90: public function testHasLatestOfManyInverseRelationIsProperlySetToParentWhenLazyLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 90: public function testHasLatestOfManyInverseRelationIsProperlySetToParentWhenLazyLoaded() - line 92: HasManyInverseUserModel::factory()->count(3)->withPosts()->create(); - line 96: $this->assertFalse($user->relationLoaded('lastPost')); - line 99: $this->assertTrue($post->relationLoaded('user')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 104: public function testHasLatestOfManyInverseRelationIsProperlySetToParentWhenEagerLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 104: public function testHasLatestOfManyInverseRelationIsProperlySetToParentWhenEagerLoaded() - line 106: HasManyInverseUserModel::factory()->count(3)->withPosts()->create(); - line 110: $post = $user->getRelation('lastPost'); - line 112: $this->assertTrue($post->relationLoaded('user')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 117: public function testOneOfManyInverseRelationIsProperlySetToParentWhenLazyLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 117: public function testOneOfManyInverseRelationIsProperlySetToParentWhenLazyLoaded() - line 119: HasManyInverseUserModel::factory()->count(3)->withPosts()->create(); - line 123: $this->assertFalse($user->relationLoaded('firstPost')); - line 126: $this->assertTrue($post->relationLoaded('user')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 131: public function testOneOfManyInverseRelationIsProperlySetToParentWhenEagerLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 131: public function testOneOfManyInverseRelationIsProperlySetToParentWhenEagerLoaded() - line 133: HasManyInverseUserModel::factory()->count(3)->withPosts()->create(); - line 137: $post = $user->getRelation('firstPost'); - line 139: $this->assertTrue($post->relationLoaded('user')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 144: public function testHasManyInverseRelationIsProperlySetToParentWhenMakingMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 144: public function testHasManyInverseRelationIsProperlySetToParentWhenMakingMany() - line 146: $user = HasManyInverseUserModel::create(); - line 148: $posts = $user->posts()->makeMany(array_fill(0, 3, [])); - line 151: $this->assertTrue($post->relationLoaded('user')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 156: public function testHasManyInverseRelationIsProperlySetToParentWhenCreatingMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 156: public function testHasManyInverseRelationIsProperlySetToParentWhenCreatingMany() - line 158: $user = HasManyInverseUserModel::create(); - line 160: $posts = $user->posts()->createMany(array_fill(0, 3, [])); - line 163: $this->assertTrue($post->relationLoaded('user')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 168: public function testHasManyInverseRelationIsProperlySetToParentWhenCreatingManyQuietly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 168: public function testHasManyInverseRelationIsProperlySetToParentWhenCreatingManyQuietly() - line 170: $user = HasManyInverseUserModel::create(); - line 172: $posts = $user->posts()->createManyQuietly(array_fill(0, 3, [])); - line 175: $this->assertTrue($post->relationLoaded('user')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 180: public function testHasManyInverseRelationIsProperlySetToParentWhenSavingMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 180: public function testHasManyInverseRelationIsProperlySetToParentWhenSavingMany() - line 182: $user = HasManyInverseUserModel::create(); - line 186: $user->posts()->saveMany($posts); - line 189: $this->assertTrue($post->relationLoaded('user')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 194: public function testHasManyInverseRelationIsProperlySetToParentWhenUpdatingMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 194: public function testHasManyInverseRelationIsProperlySetToParentWhenUpdatingMany() - line 196: $user = HasManyInverseUserModel::create(); - line 198: $posts = HasManyInversePostModel::factory()->count(3)->create(); - line 201: $this->assertTrue($user->isNot($post->user)); - line 204: $user->posts()->saveMany($posts); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentInverseRelationHasOneTest.php - Test @ line 60: public function testHasOneInverseRelationIsProperlySetToParentWhenLazyLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 60: public function testHasOneInverseRelationIsProperlySetToParentWhenLazyLoaded() - line 62: HasOneInverseChildModel::factory(5)->create(); - line 66: $this->assertFalse($parent->relationLoaded('child')); - line 68: $this->assertTrue($child->relationLoaded('parent')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 73: public function testHasOneInverseRelationIsProperlySetToParentWhenEagerLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 73: public function testHasOneInverseRelationIsProperlySetToParentWhenEagerLoaded() - line 75: HasOneInverseChildModel::factory(5)->create(); - line 82: $this->assertTrue($child->relationLoaded('parent')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 87: public function testHasOneInverseRelationIsProperlySetToParentWhenMaking() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 87: public function testHasOneInverseRelationIsProperlySetToParentWhenMaking() - line 89: $parent = HasOneInverseParentModel::create(); - line 91: $child = $parent->child()->make(); - line 93: $this->assertTrue($child->relationLoaded('parent')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 97: public function testHasOneInverseRelationIsProperlySetToParentWhenCreating() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 97: public function testHasOneInverseRelationIsProperlySetToParentWhenCreating() - line 99: $parent = HasOneInverseParentModel::create(); - line 101: $child = $parent->child()->create(); - line 103: $this->assertTrue($child->relationLoaded('parent')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 107: public function testHasOneInverseRelationIsProperlySetToParentWhenCreatingQuietly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 107: public function testHasOneInverseRelationIsProperlySetToParentWhenCreatingQuietly() - line 109: $parent = HasOneInverseParentModel::create(); - line 111: $child = $parent->child()->createQuietly(); - line 113: $this->assertTrue($child->relationLoaded('parent')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 117: public function testHasOneInverseRelationIsProperlySetToParentWhenForceCreating() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 117: public function testHasOneInverseRelationIsProperlySetToParentWhenForceCreating() - line 119: $parent = HasOneInverseParentModel::create(); - line 121: $child = $parent->child()->forceCreate(); - line 123: $this->assertTrue($child->relationLoaded('parent')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 127: public function testHasOneInverseRelationIsProperlySetToParentWhenSaving() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 127: public function testHasOneInverseRelationIsProperlySetToParentWhenSaving() - line 129: $parent = HasOneInverseParentModel::create(); - line 132: $this->assertFalse($child->relationLoaded('parent')); - line 133: $parent->child()->save($child); - line 135: $this->assertTrue($child->relationLoaded('parent')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 139: public function testHasOneInverseRelationIsProperlySetToParentWhenSavingQuietly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 139: public function testHasOneInverseRelationIsProperlySetToParentWhenSavingQuietly() - line 141: $parent = HasOneInverseParentModel::create(); - line 144: $this->assertFalse($child->relationLoaded('parent')); - line 145: $parent->child()->saveQuietly($child); - line 147: $this->assertTrue($child->relationLoaded('parent')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 151: public function testHasOneInverseRelationIsProperlySetToParentWhenUpdating() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 151: public function testHasOneInverseRelationIsProperlySetToParentWhenUpdating() - line 153: $parent = HasOneInverseParentModel::create(); - line 154: $child = HasOneInverseChildModel::factory()->create(); - line 156: $this->assertTrue($parent->isNot($child->parent)); - line 158: $parent->child()->save($child); - line 160: $this->assertTrue($parent->is($child->parent)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentInverseRelationMorphManyTest.php - Test @ line 61: public function testMorphManyInverseRelationIsProperlySetToParentWhenLazyLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 61: public function testMorphManyInverseRelationIsProperlySetToParentWhenLazyLoaded() - line 63: MorphManyInversePostModel::factory()->withComments()->count(3)->create(); - line 67: $this->assertFalse($post->relationLoaded('comments')); - line 70: $this->assertTrue($comment->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 76: public function testMorphManyInverseRelationIsProperlySetToParentWhenEagerLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 76: public function testMorphManyInverseRelationIsProperlySetToParentWhenEagerLoaded() - line 78: MorphManyInversePostModel::factory()->withComments()->count(3)->create(); - line 82: $comments = $post->getRelation('comments'); - line 85: $this->assertTrue($comment->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 91: public function testMorphManyGuessedInverseRelationIsProperlySetToParentWhenLazyLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 91: public function testMorphManyGuessedInverseRelationIsProperlySetToParentWhenLazyLoaded() - line 93: MorphManyInversePostModel::factory()->withComments()->count(3)->create(); - line 97: $this->assertFalse($post->relationLoaded('guessedComments')); - line 100: $this->assertTrue($comment->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 106: public function testMorphManyGuessedInverseRelationIsProperlySetToParentWhenEagerLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 106: public function testMorphManyGuessedInverseRelationIsProperlySetToParentWhenEagerLoaded() - line 108: MorphManyInversePostModel::factory()->withComments()->count(3)->create(); - line 112: $comments = $post->getRelation('guessedComments'); - line 115: $this->assertTrue($comment->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 121: public function testMorphLatestOfManyInverseRelationIsProperlySetToParentWhenLazyLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 121: public function testMorphLatestOfManyInverseRelationIsProperlySetToParentWhenLazyLoaded() - line 123: MorphManyInversePostModel::factory()->count(3)->withComments()->create(); - line 127: $this->assertFalse($post->relationLoaded('lastComment')); - line 130: $this->assertTrue($comment->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 135: public function testMorphLatestOfManyInverseRelationIsProperlySetToParentWhenEagerLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 135: public function testMorphLatestOfManyInverseRelationIsProperlySetToParentWhenEagerLoaded() - line 137: MorphManyInversePostModel::factory()->count(3)->withComments()->create(); - line 141: $comment = $post->getRelation('lastComment'); - line 143: $this->assertTrue($comment->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 148: public function testMorphLatestOfManyGuessedInverseRelationIsProperlySetToParentWhenLazyLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 148: public function testMorphLatestOfManyGuessedInverseRelationIsProperlySetToParentWhenLazyLoaded() - line 150: MorphManyInversePostModel::factory()->count(3)->withComments()->create(); - line 154: $this->assertFalse($post->relationLoaded('guessedLastComment')); - line 157: $this->assertTrue($comment->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 162: public function testMorphLatestOfManyGuessedInverseRelationIsProperlySetToParentWhenEagerLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 162: public function testMorphLatestOfManyGuessedInverseRelationIsProperlySetToParentWhenEagerLoaded() - line 164: MorphManyInversePostModel::factory()->count(3)->withComments()->create(); - line 168: $comment = $post->getRelation('guessedLastComment'); - line 170: $this->assertTrue($comment->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 175: public function testMorphOneOfManyInverseRelationIsProperlySetToParentWhenLazyLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 175: public function testMorphOneOfManyInverseRelationIsProperlySetToParentWhenLazyLoaded() - line 177: MorphManyInversePostModel::factory()->count(3)->withComments()->create(); - line 181: $this->assertFalse($post->relationLoaded('firstComment')); - line 184: $this->assertTrue($comment->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 189: public function testMorphOneOfManyInverseRelationIsProperlySetToParentWhenEagerLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 189: public function testMorphOneOfManyInverseRelationIsProperlySetToParentWhenEagerLoaded() - line 191: MorphManyInversePostModel::factory()->count(3)->withComments()->create(); - line 195: $comment = $post->getRelation('firstComment'); - line 197: $this->assertTrue($comment->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 202: public function testMorphManyInverseRelationIsProperlySetToParentWhenMakingMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 202: public function testMorphManyInverseRelationIsProperlySetToParentWhenMakingMany() - line 204: $post = MorphManyInversePostModel::create(); - line 206: $comments = $post->comments()->makeMany(array_fill(0, 3, [])); - line 209: $this->assertTrue($comment->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 214: public function testMorphManyInverseRelationIsProperlySetToParentWhenCreatingMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 214: public function testMorphManyInverseRelationIsProperlySetToParentWhenCreatingMany() - line 216: $post = MorphManyInversePostModel::create(); - line 218: $comments = $post->comments()->createMany(array_fill(0, 3, [])); - line 221: $this->assertTrue($comment->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 226: public function testMorphManyInverseRelationIsProperlySetToParentWhenCreatingManyQuietly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 226: public function testMorphManyInverseRelationIsProperlySetToParentWhenCreatingManyQuietly() - line 228: $post = MorphManyInversePostModel::create(); - line 230: $comments = $post->comments()->createManyQuietly(array_fill(0, 3, [])); - line 233: $this->assertTrue($comment->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 238: public function testMorphManyInverseRelationIsProperlySetToParentWhenSavingMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 238: public function testMorphManyInverseRelationIsProperlySetToParentWhenSavingMany() - line 240: $post = MorphManyInversePostModel::create(); - line 243: $post->comments()->saveMany($comments); - line 246: $this->assertTrue($comment->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 251: public function testMorphManyInverseRelationIsProperlySetToParentWhenUpdatingMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 251: public function testMorphManyInverseRelationIsProperlySetToParentWhenUpdatingMany() - line 253: $post = MorphManyInversePostModel::create(); - line 254: $comments = MorphManyInverseCommentModel::factory()->count(3)->create(); - line 257: $this->assertTrue($post->isNot($comment->commentable)); - line 260: $post->comments()->saveMany($comments); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentInverseRelationMorphOneTest.php - Test @ line 60: public function testMorphOneInverseRelationIsProperlySetToParentWhenLazyLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 60: public function testMorphOneInverseRelationIsProperlySetToParentWhenLazyLoaded() - line 62: MorphOneInverseImageModel::factory(6)->create(); - line 66: $this->assertFalse($post->relationLoaded('image')); - line 68: $this->assertTrue($image->relationLoaded('imageable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 73: public function testMorphOneInverseRelationIsProperlySetToParentWhenEagerLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 73: public function testMorphOneInverseRelationIsProperlySetToParentWhenEagerLoaded() - line 75: MorphOneInverseImageModel::factory(6)->create(); - line 79: $image = $post->getRelation('image'); - line 81: $this->assertTrue($image->relationLoaded('imageable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 86: public function testMorphOneGuessedInverseRelationIsProperlySetToParentWhenLazyLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 86: public function testMorphOneGuessedInverseRelationIsProperlySetToParentWhenLazyLoaded() - line 88: MorphOneInverseImageModel::factory(6)->create(); - line 92: $this->assertFalse($post->relationLoaded('guessedImage')); - line 94: $this->assertTrue($image->relationLoaded('imageable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 99: public function testMorphOneGuessedInverseRelationIsProperlySetToParentWhenEagerLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 99: public function testMorphOneGuessedInverseRelationIsProperlySetToParentWhenEagerLoaded() - line 101: MorphOneInverseImageModel::factory(6)->create(); - line 105: $image = $post->getRelation('guessedImage'); - line 107: $this->assertTrue($image->relationLoaded('imageable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 112: public function testMorphOneInverseRelationIsProperlySetToParentWhenMaking() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 112: public function testMorphOneInverseRelationIsProperlySetToParentWhenMaking() - line 114: $post = MorphOneInversePostModel::create(); - line 116: $image = $post->image()->make(); - line 118: $this->assertTrue($image->relationLoaded('imageable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 122: public function testMorphOneInverseRelationIsProperlySetToParentWhenCreating() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 122: public function testMorphOneInverseRelationIsProperlySetToParentWhenCreating() - line 124: $post = MorphOneInversePostModel::create(); - line 126: $image = $post->image()->create(); - line 128: $this->assertTrue($image->relationLoaded('imageable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 132: public function testMorphOneInverseRelationIsProperlySetToParentWhenCreatingQuietly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 132: public function testMorphOneInverseRelationIsProperlySetToParentWhenCreatingQuietly() - line 134: $post = MorphOneInversePostModel::create(); - line 136: $image = $post->image()->createQuietly(); - line 138: $this->assertTrue($image->relationLoaded('imageable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 142: public function testMorphOneInverseRelationIsProperlySetToParentWhenForceCreating() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 142: public function testMorphOneInverseRelationIsProperlySetToParentWhenForceCreating() - line 144: $post = MorphOneInversePostModel::create(); - line 146: $image = $post->image()->forceCreate(); - line 148: $this->assertTrue($image->relationLoaded('imageable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 152: public function testMorphOneInverseRelationIsProperlySetToParentWhenSaving() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 152: public function testMorphOneInverseRelationIsProperlySetToParentWhenSaving() - line 154: $post = MorphOneInversePostModel::create(); - line 157: $this->assertFalse($image->relationLoaded('imageable')); - line 158: $post->image()->save($image); - line 160: $this->assertTrue($image->relationLoaded('imageable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 164: public function testMorphOneInverseRelationIsProperlySetToParentWhenSavingQuietly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 164: public function testMorphOneInverseRelationIsProperlySetToParentWhenSavingQuietly() - line 166: $post = MorphOneInversePostModel::create(); - line 169: $this->assertFalse($image->relationLoaded('imageable')); - line 170: $post->image()->saveQuietly($image); - line 172: $this->assertTrue($image->relationLoaded('imageable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 176: public function testMorphOneInverseRelationIsProperlySetToParentWhenUpdating() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 176: public function testMorphOneInverseRelationIsProperlySetToParentWhenUpdating() - line 178: $post = MorphOneInversePostModel::create(); - line 179: $image = MorphOneInverseImageModel::factory()->create(); - line 181: $this->assertTrue($post->isNot($image->imageable)); - line 183: $post->image()->save($image); - line 185: $this->assertTrue($post->is($image->imageable)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentInverseRelationTest.php - Test @ line 24: public function testBuilderCallbackIsNotAppliedWhenInverseRelationIsNotSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 24: public function testBuilderCallbackIsNotAppliedWhenInverseRelationIsNotSet() - line 26: $builder = m::mock(Builder::class); - line 28: $builder->shouldReceive('afterQuery')->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 26: $builder = m::mock(Builder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 24: public function testBuilderCallbackIsNotAppliedWhenInverseRelationIsNotSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 33: public function testBuilderCallbackIsNotSetIfInverseRelationIsEmptyString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 33: public function testBuilderCallbackIsNotSetIfInverseRelationIsEmptyString() - line 35: $builder = m::mock(Builder::class); - line 37: $builder->shouldReceive('afterQuery')->never(); - line 39: $this->expectException(RelationNotFoundException::class); - line 41: (new HasInverseRelationStub($builder, new HasInverseRelationParentStub()))->inverse(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 35: $builder = m::mock(Builder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 33: public function testBuilderCallbackIsNotSetIfInverseRelationIsEmptyString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 44: public function testBuilderCallbackIsNotSetIfInverseRelationshipDoesNotExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 44: public function testBuilderCallbackIsNotSetIfInverseRelationshipDoesNotExist() - line 46: $builder = m::mock(Builder::class); - line 48: $builder->shouldReceive('afterQuery')->never(); - line 50: $this->expectException(RelationNotFoundException::class); - line 52: (new HasInverseRelationStub($builder, new HasInverseRelationParentStub()))->inverse('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 46: $builder = m::mock(Builder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 44: public function testBuilderCallbackIsNotSetIfInverseRelationshipDoesNotExist() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 55: public function testWithoutInverseMethodRemovesInverseRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 55: public function testWithoutInverseMethodRemovesInverseRelation() - line 57: $builder = m::mock(Builder::class); - line 59: $builder->shouldReceive('afterQuery')->once()->andReturnSelf(); - line 62: $this->assertNull($relation->getInverseRelationship()); - line 64: $relation->inverse('test'); - line 65: $this->assertSame('test', $relation->getInverseRelationship()); - line 67: $relation->withoutInverse(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 57: $builder = m::mock(Builder::class); - Test @ line 71: public function testBuilderCallbackIsAppliedWhenInverseRelationIsSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 71: public function testBuilderCallbackIsAppliedWhenInverseRelationIsSet() - line 75: $builder = m::mock(Builder::class); - line 77: $builder->shouldReceive('afterQuery')->withArgs(function (\Closure $callback) use ($parent) { - line 83: (new HasInverseRelationStub($builder, $parent))->inverse('test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 75: $builder = m::mock(Builder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 71: public function testBuilderCallbackIsAppliedWhenInverseRelationIsSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 86: public function testBuilderCallbackAppliesInverseRelationToAllModelsInResult() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 86: public function testBuilderCallbackAppliesInverseRelationToAllModelsInResult() - line 88: $builder = m::mock(Builder::class); - line 93: $builder->shouldReceive('afterQuery')->withArgs(function (\Closure $callback) use (&$afterQuery) { - line 98: (new HasInverseRelationStub($builder, $parent))->inverse('test'); - line 103: $this->assertEmpty($model->getRelations()); - line 104: $this->assertFalse($model->relationLoaded('test')); - line 110: $this->assertNotEmpty($model->getRelations()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 88: $builder = m::mock(Builder::class); - Test @ line 116: public function testInverseRelationIsNotSetIfInverseRelationIsUnset() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 116: public function testInverseRelationIsNotSetIfInverseRelationIsUnset() - line 118: $builder = m::mock(Builder::class); - line 123: $builder->shouldReceive('afterQuery')->withArgs(function (\Closure $callback) use (&$afterQuery) { - line 129: $relation->inverse('test'); - line 133: $this->assertEmpty($model->getRelations()); - line 137: $this->assertNotEmpty($model->getRelations()); - line 138: $this->assertSame($parent, $model->getRelation('test')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 118: $builder = m::mock(Builder::class); - Test @ line 153: public function testProvidesPossibleInverseRelationBasedOnParent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 153: public function testProvidesPossibleInverseRelationBasedOnParent() - line 155: $builder = m::mock(Builder::class); - line 161: $this->assertSame($possibleRelations, array_values($relation->exposeGetPossibleInverseRelations())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 155: $builder = m::mock(Builder::class); - Test @ line 164: public function testProvidesPossibleInverseRelationBasedOnForeignKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 164: public function testProvidesPossibleInverseRelationBasedOnForeignKey() - line 166: $builder = m::mock(Builder::class); - line 171: $this->assertTrue(in_array('test', $relation->exposeGetPossibleInverseRelations())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 166: $builder = m::mock(Builder::class); - Test @ line 174: public function testProvidesPossibleRecursiveRelationsIfRelatedIsTheSameClassAsParent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 174: public function testProvidesPossibleRecursiveRelationsIfRelatedIsTheSameClassAsParent() - line 176: $builder = m::mock(Builder::class); - line 181: $this->assertTrue(in_array('parent', $relation->exposeGetPossibleInverseRelations())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 176: $builder = m::mock(Builder::class); - Test @ line 185: public function testGuessesInverseRelationBasedOnParent($guessedRelation) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 185: public function testGuessesInverseRelationBasedOnParent($guessedRelation) - line 187: $related = m::mock(Model::class); - line 188: $related->shouldReceive('isRelation')->andReturnUsing(fn ($relation) => $relation === $guessedRelation); - line 195: $this->assertSame($guessedRelation, $relation->exposeGuessInverseRelation()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 187: $related = m::mock(Model::class); - line 190: $builder = m::mock(Builder::class); - Test @ line 198: public function testGuessesPossibleInverseRelationBasedOnForeignKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 198: public function testGuessesPossibleInverseRelationBasedOnForeignKey() - line 200: $related = m::mock(Model::class); - line 201: $related->shouldReceive('isRelation')->andReturnUsing(fn ($relation) => $relation === 'test'); - line 208: $this->assertSame('test', $relation->exposeGuessInverseRelation()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 200: $related = m::mock(Model::class); - line 203: $builder = m::mock(Builder::class); - Test @ line 211: public function testGuessesRecursiveInverseRelationsIfRelatedIsSameClassAsParent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 211: public function testGuessesRecursiveInverseRelationsIfRelatedIsSameClassAsParent() - line 213: $related = m::mock(Model::class); - line 214: $related->shouldReceive('isRelation')->andReturnUsing(fn ($relation) => $relation === 'parent'); - line 225: $this->assertSame('parent', $relation->exposeGuessInverseRelation()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 213: $related = m::mock(Model::class); - line 220: $builder = m::mock(Builder::class); - Test @ line 229: public function testSetsGuessedInverseRelationBasedOnParent($guessedRelation) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 229: public function testSetsGuessedInverseRelationBasedOnParent($guessedRelation) - line 231: $related = m::mock(Model::class); - line 232: $related->shouldReceive('isRelation')->andReturnUsing(fn ($relation) => $relation === $guessedRelation); - line 236: $builder->shouldReceive('afterQuery')->once()->andReturnSelf(); - line 238: $relation = (new HasInverseRelationStub($builder, new HasInverseRelationParentStub))->inverse(); - line 240: $this->assertSame($guessedRelation, $relation->getInverseRelationship()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 231: $related = m::mock(Model::class); - line 234: $builder = m::mock(Builder::class); - Test @ line 243: public function testSetsRecursiveInverseRelationsIfRelatedIsSameClassAsParent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 243: public function testSetsRecursiveInverseRelationsIfRelatedIsSameClassAsParent() - line 245: $related = m::mock(Model::class); - line 246: $related->shouldReceive('isRelation')->andReturnUsing(fn ($relation) => $relation === 'parent'); - line 254: $builder->shouldReceive('afterQuery')->once()->andReturnSelf(); - line 256: $relation = (new HasInverseRelationStub($builder, $parent))->inverse(); - line 258: $this->assertSame('parent', $relation->getInverseRelationship()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 245: $related = m::mock(Model::class); - line 252: $builder = m::mock(Builder::class); - Test @ line 261: public function testSetsGuessedInverseRelationBasedOnForeignKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 261: public function testSetsGuessedInverseRelationBasedOnForeignKey() - line 263: $related = m::mock(Model::class); - line 264: $related->shouldReceive('isRelation')->andReturnUsing(fn ($relation) => $relation === 'test'); - line 268: $builder->shouldReceive('afterQuery')->once()->andReturnSelf(); - line 270: $relation = (new HasInverseRelationStub($builder, new HasInverseRelationParentStub, 'test_id'))->inverse(); - line 272: $this->assertSame('test', $relation->getInverseRelationship()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 263: $related = m::mock(Model::class); - line 266: $builder = m::mock(Builder::class); - Test @ line 275: public function testOnlyHydratesInverseRelationOnModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 275: public function testOnlyHydratesInverseRelationOnModels() - line 277: $relation = m::mock(HasInverseRelationStub::class)->shouldAllowMockingProtectedMethods()->makePartial(); - line 280: $relation->exposeApplyInverseRelationToCollection([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 277: $relation = m::mock(HasInverseRelationStub::class)->shouldAllowMockingProtectedMethods()->makePartial(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 275: public function testOnlyHydratesInverseRelationOnModels() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseEloquentIrregularPluralTest.php - Test @ line 81: public function testItTouchesTheParentWithAnIrregularPlural() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 81: public function testItTouchesTheParentWithAnIrregularPlural() - line 85: IrregularPluralHuman::create(['email' => 'taylorotwell@gmail.com']); - line 91: $human = IrregularPluralHuman::query()->first(); - line 97: $human->irregularPluralTokens()->sync($tokenIds); - line 99: $human->refresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 81: public function testItTouchesTheParentWithAnIrregularPlural() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 105: public function testItPluralizesMorphToManyRelationships() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 105: public function testItPluralizesMorphToManyRelationships() - line 107: $human = IrregularPluralHuman::create(['email' => 'bobby@example.com']); - line 109: $human->mottoes()->create(['name' => 'Real eyes realize real lies']); - line 111: $motto = IrregularPluralMotto::query()->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 105: public function testItPluralizesMorphToManyRelationships() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseEloquentLocalScopesTest.php - Test @ line 28: public function testCanCheckExistenceOfLocalScope() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 28: public function testCanCheckExistenceOfLocalScope() - line 32: $this->assertTrue($model->hasNamedScope('active')); - line 33: $this->assertTrue($model->hasNamedScope('type')); - line 35: $this->assertFalse($model->hasNamedScope('nonExistentLocalScope')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 38: public function testLocalScopeIsApplied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 38: public function testLocalScopeIsApplied() - line 41: $query = $model->newQuery()->active(); - line 43: $this->assertSame('select * from "table" where "active" = ?', $query->toSql()); - line 44: $this->assertEquals([true], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 47: public function testDynamicLocalScopeIsApplied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 47: public function testDynamicLocalScopeIsApplied() - line 50: $query = $model->newQuery()->type('foo'); - line 52: $this->assertSame('select * from "table" where "type" = ?', $query->toSql()); - line 53: $this->assertEquals(['foo'], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 56: public function testLocalScopesCanChained() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 56: public function testLocalScopesCanChained() - line 59: $query = $model->newQuery()->active()->type('foo'); - line 61: $this->assertSame('select * from "table" where "active" = ? and "type" = ?', $query->toSql()); - line 62: $this->assertEquals([true, 'foo'], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 65: public function testLocalScopeNestingDoesntDoubleFirstWhereClauseNegation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 65: public function testLocalScopeNestingDoesntDoubleFirstWhereClauseNegation() - line 69: ->newQuery() - line 74: $this->assertSame('select * from "table" where (not "firstWhere" = ? or "secondWhere" = ?) and "active" = ?', $query->toSql()); - line 75: $this->assertEquals([true, true, true], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 78: public function testLocalScopeNestingGroupsOrNotWhereClause() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 78: public function testLocalScopeNestingGroupsOrNotWhereClause() - line 82: ->newQuery() - line 87: $this->assertSame('select * from "table" where ("firstWhere" = ? or not "secondWhere" = ?) and "active" = ?', $query->toSql()); - line 88: $this->assertEquals([true, true, true], $query->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentModelTest.php - Test @ line 84: public function testAttributeManipulation() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 84: public function testAttributeManipulation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 100: public function testSetAttributeWithNumericKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 100: public function testSetAttributeWithNumericKey() - line 103: $model->setAttribute(0, 'value'); - line 105: $this->assertEquals([0 => 'value'], $model->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 108: public function testDirtyAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 108: public function testDirtyAttributes() - line 111: $model->syncOriginal(); - line 116: $this->assertTrue($model->isDirty()); - line 117: $this->assertFalse($model->isDirty('foo')); - line 118: $this->assertTrue($model->isDirty('bar')); - line 119: $this->assertTrue($model->isDirty('foo', 'bar')); - line 120: $this->assertTrue($model->isDirty(['foo', 'bar'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 123: public function testIntAndNullComparisonWhenDirty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 123: public function testIntAndNullComparisonWhenDirty() - line 127: $model->syncOriginal(); - line 128: $this->assertFalse($model->isDirty('intAttribute')); - line 129: $model->forceFill(['intAttribute' => 0]); - line 130: $this->assertTrue($model->isDirty('intAttribute')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 133: public function testFloatAndNullComparisonWhenDirty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 133: public function testFloatAndNullComparisonWhenDirty() - line 137: $model->syncOriginal(); - line 138: $this->assertFalse($model->isDirty('floatAttribute')); - line 139: $model->forceFill(['floatAttribute' => 0.0]); - line 140: $this->assertTrue($model->isDirty('floatAttribute')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 143: public function testDirtyOnCastOrDateAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 143: public function testDirtyOnCastOrDateAttributes() - line 146: $model->setDateFormat('Y-m-d H:i:s'); - line 152: $model->syncOriginal(); - line 160: $this->assertTrue($model->isDirty()); - line 161: $this->assertTrue($model->isDirty('foo')); - line 162: $this->assertTrue($model->isDirty('bar')); - line 163: $this->assertFalse($model->isDirty('boolAttribute')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 168: public function testDirtyOnCastedObjects() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 168: public function testDirtyOnCastedObjects() - line 171: $model->setRawAttributes([ - line 175: $model->syncOriginal(); - line 180: $this->assertFalse($model->isDirty()); - line 181: $this->assertFalse($model->isDirty('objectAttribute')); - line 182: $this->assertFalse($model->isDirty('collectionAttribute')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 185: public function testDirtyOnCastedArrayObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 185: public function testDirtyOnCastedArrayObject() - line 188: $model->setRawAttributes([ - line 191: $model->syncOriginal(); - line 194: $this->assertFalse($model->isDirty('asarrayobjectAttribute')); - line 197: $this->assertFalse($model->isDirty('asarrayobjectAttribute')); - line 200: $this->assertTrue($model->isDirty('asarrayobjectAttribute')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 203: public function testDirtyOnCastedCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 203: public function testDirtyOnCastedCollection() - line 206: $model->setRawAttributes([ - line 209: $model->syncOriginal(); - line 212: $this->assertFalse($model->isDirty('ascollectionAttribute')); - line 215: $this->assertFalse($model->isDirty('ascollectionAttribute')); - line 218: $this->assertTrue($model->isDirty('ascollectionAttribute')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 221: public function testDirtyOnCastedCustomCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 221: public function testDirtyOnCastedCustomCollection() - line 224: $model->setRawAttributes([ - line 227: $model->syncOriginal(); - line 230: $this->assertFalse($model->isDirty('asCustomCollectionAttribute')); - line 233: $this->assertFalse($model->isDirty('asCustomCollectionAttribute')); - line 236: $this->assertTrue($model->isDirty('asCustomCollectionAttribute')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 239: public function testDirtyOnCastedCustomCollectionAsArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 239: public function testDirtyOnCastedCustomCollectionAsArray() - line 242: $model->setRawAttributes([ - line 245: $model->syncOriginal(); - line 248: $this->assertFalse($model->isDirty('asCustomCollectionAsArrayAttribute')); - line 251: $this->assertFalse($model->isDirty('asCustomCollectionAsArrayAttribute')); - line 254: $this->assertTrue($model->isDirty('asCustomCollectionAsArrayAttribute')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 257: public function testDirtyOnCastedStringable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 257: public function testDirtyOnCastedStringable() - line 260: $model->setRawAttributes([ - line 263: $model->syncOriginal(); - line 266: $this->assertFalse($model->isDirty('asStringableAttribute')); - line 269: $this->assertFalse($model->isDirty('asStringableAttribute')); - line 272: $this->assertTrue($model->isDirty('asStringableAttribute')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 275: public function testDirtyOnCastedHtmlString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 275: public function testDirtyOnCastedHtmlString() - line 278: $model->setRawAttributes([ - line 281: $model->syncOriginal(); - line 284: $this->assertFalse($model->isDirty('asHtmlStringAttribute')); - line 287: $this->assertFalse($model->isDirty('asHtmlStringAttribute')); - line 290: $this->assertTrue($model->isDirty('asHtmlStringAttribute')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 293: public function testDirtyOnCastedUri() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 293: public function testDirtyOnCastedUri() - line 296: $model->setRawAttributes([ - line 299: $model->syncOriginal(); - line 302: $this->assertFalse($model->isDirty('asUriAttribute')); - line 305: $this->assertFalse($model->isDirty('asUriAttribute')); - line 308: $this->assertTrue($model->isDirty('asUriAttribute')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 311: public function testDirtyOnCastedFluent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 311: public function testDirtyOnCastedFluent() - line 321: $model->setRawAttributes(['asFluentAttribute' => json_encode($value)]); - line 322: $model->syncOriginal(); - line 325: $this->assertFalse($model->isDirty('asFluentAttribute')); - line 328: $this->assertFalse($model->isDirty('asFluentAttribute')); - line 332: $this->assertTrue($model->isDirty('asFluentAttribute')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 506: public function testDirtyOnEnumCollectionObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 506: public function testDirtyOnEnumCollectionObject() - line 509: $model->setRawAttributes([ - line 512: $model->syncOriginal(); - line 515: $this->assertFalse($model->isDirty('asEnumCollectionAttribute')); - line 518: $this->assertFalse($model->isDirty('asEnumCollectionAttribute')); - line 521: $this->assertTrue($model->isDirty('asEnumCollectionAttribute')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 524: public function testDirtyOnCustomEnumCollectionObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 524: public function testDirtyOnCustomEnumCollectionObject() - line 527: $model->setRawAttributes([ - line 530: $model->syncOriginal(); - line 533: $this->assertFalse($model->isDirty('asCustomEnumCollectionAttribute')); - line 536: $this->assertFalse($model->isDirty('asCustomEnumCollectionAttribute')); - line 539: $this->assertTrue($model->isDirty('asCustomEnumCollectionAttribute')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 542: public function testDirtyOnEnumArrayObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 542: public function testDirtyOnEnumArrayObject() - line 545: $model->setRawAttributes([ - line 548: $model->syncOriginal(); - line 551: $this->assertFalse($model->isDirty('asEnumArrayObjectAttribute')); - line 554: $this->assertFalse($model->isDirty('asEnumArrayObjectAttribute')); - line 557: $this->assertTrue($model->isDirty('asEnumArrayObjectAttribute')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 560: public function testDirtyOnCustomEnumArrayObjectUsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 560: public function testDirtyOnCustomEnumArrayObjectUsing() - line 563: $model->setRawAttributes([ - line 566: $model->syncOriginal(); - line 569: $this->assertFalse($model->isDirty('asCustomEnumArrayObjectAttribute')); - line 572: $this->assertFalse($model->isDirty('asCustomEnumArrayObjectAttribute')); - line 575: $this->assertTrue($model->isDirty('asCustomEnumArrayObjectAttribute')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 584: public function testCleanAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 584: public function testCleanAttributes() - line 587: $model->syncOriginal(); - line 592: $this->assertFalse($model->isClean()); - line 593: $this->assertTrue($model->isClean('foo')); - line 594: $this->assertFalse($model->isClean('bar')); - line 595: $this->assertFalse($model->isClean('foo', 'bar')); - line 596: $this->assertFalse($model->isClean(['foo', 'bar'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 599: public function testCleanWhenFloatUpdateAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 599: public function testCleanWhenFloatUpdateAttribute() - line 603: $model->syncOriginal(); - line 605: $this->assertTrue($model->originalIsEquivalent('castedFloat')); - line 609: $model->syncOriginal(); - line 611: $this->assertFalse($model->originalIsEquivalent('castedFloat')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 630: public function testArrayAccessToAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 630: public function testArrayAccessToAttributes() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 630: public function testArrayAccessToAttributes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 644: public function testOnly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 644: public function testOnly() - line 651: $this->assertEquals(['project' => 'laravel'], $model->only('project')); - line 652: $this->assertEquals(['first_name' => 'taylor', 'last_name' => 'otwell'], $model->only('first_name', 'last_name')); - line 653: $this->assertEquals(['first_name' => 'taylor', 'last_name' => 'otwell'], $model->only(['first_name', 'last_name'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 656: public function testExcept() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 656: public function testExcept() - line 663: $this->assertEquals(['first_name' => 'taylor', 'last_name' => 'otwell'], $model->except('project')); - line 664: $this->assertEquals(['project' => 'laravel'], $model->except('first_name', 'last_name')); - line 665: $this->assertEquals(['project' => 'laravel'], $model->except(['first_name', 'last_name'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 676: public function testNewInstanceReturnsNewInstanceWithTableSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 676: public function testNewInstanceReturnsNewInstanceWithTableSet() - line 679: $model->setTable('test'); - line 680: $newInstance = $model->newInstance(); - line 682: $this->assertSame('test', $newInstance->getTable()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 685: public function testNewInstanceReturnsNewInstanceWithMergedCasts() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 685: public function testNewInstanceReturnsNewInstanceWithMergedCasts() - line 688: $model->mergeCasts(['foo' => 'date']); - line 689: $newInstance = $model->newInstance(); - line 691: $this->assertArrayHasKey('foo', $newInstance->getCasts()); - line 692: $this->assertSame('date', $newInstance->getCasts()['foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 695: public function testCreateMethodSavesNewModel() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 697: $_SERVER['__eloquent.saved'] = false; - Test @ line 703: public function testMakeMethodDoesNotSaveNewModel() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 705: $_SERVER['__eloquent.saved'] = false; - Test @ line 711: public function testForceCreateMethodSavesNewModelWithGuardedAttributes() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 713: $_SERVER['__eloquent.saved'] = false; - Test @ line 719: public function testFindMethodUseWritePdo() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 719: public function testFindMethodUseWritePdo() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 724: public function testDestroyMethodCallsQueryBuilderCorrectly() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 724: public function testDestroyMethodCallsQueryBuilderCorrectly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 729: public function testDestroyMethodCallsQueryBuilderCorrectlyWithCollection() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 729: public function testDestroyMethodCallsQueryBuilderCorrectlyWithCollection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 734: public function testDestroyMethodCallsQueryBuilderCorrectlyWithEloquentCollection() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 734: public function testDestroyMethodCallsQueryBuilderCorrectlyWithEloquentCollection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 743: public function testDestroyMethodCallsQueryBuilderCorrectlyWithMultipleArgs() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 743: public function testDestroyMethodCallsQueryBuilderCorrectlyWithMultipleArgs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 754: public function testWithMethodCallsQueryBuilderCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 754: public function testWithMethodCallsQueryBuilderCorrectly() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 760: public function testWithoutMethodRemovesEagerLoadedRelationshipCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 760: public function testWithoutMethodRemovesEagerLoadedRelationshipCorrectly() - line 763: $this->addMockConnection($model); - line 764: $instance = $model->newInstance()->newQuery()->without('foo'); - line 765: $this->assertEmpty($instance->getEagerLoads()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 760: public function testWithoutMethodRemovesEagerLoadedRelationshipCorrectly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 768: public function testWithOnlyMethodLoadsRelationshipCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 768: public function testWithOnlyMethodLoadsRelationshipCorrectly() - line 771: $this->addMockConnection($model); - line 772: $instance = $model->newInstance()->newQuery()->withOnly('taylor'); - line 773: $this->assertNotNull($instance->getEagerLoads()['taylor']); - line 774: $this->assertArrayNotHasKey('foo', $instance->getEagerLoads()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 777: public function testEagerLoadingWithColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 777: public function testEagerLoadingWithColumns() - line 780: $instance = $model->newInstance()->newQuery()->with('foo:bar,baz', 'hadi'); - line 783: $this->assertNotNull($instance->getEagerLoads()['hadi']); - line 784: $this->assertNotNull($instance->getEagerLoads()['foo']); - line 785: $closure = $instance->getEagerLoads()['foo']; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 781: $builder = m::mock(Builder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 777: public function testEagerLoadingWithColumns() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 789: public function testWithWhereHasWithSpecificColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 789: public function testWithWhereHasWithSpecificColumns() - line 792: $instance = $model->newInstance()->newQuery()->withWhereHas('foo:diaa,fares'); - line 795: $this->assertNotNull($instance->getEagerLoads()['foo']); - line 796: $closure = $instance->getEagerLoads()['foo']; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 793: $builder = m::mock(Builder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 789: public function testWithWhereHasWithSpecificColumns() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 800: public function testWithWhereHasWorksInNestedQuery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 800: public function testWithWhereHasWorksInNestedQuery() - line 803: $instance = $model->newInstance()->newQuery()->where(fn (Builder $q) => $q->withWhereHas('foo:diaa,fares')); - line 806: $this->assertNotNull($instance->getEagerLoads()['foo']); - line 807: $closure = $instance->getEagerLoads()['foo']; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 804: $builder = m::mock(Builder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 800: public function testWithWhereHasWorksInNestedQuery() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 811: public function testWithMethodCallsQueryBuilderCorrectlyWithArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 811: public function testWithMethodCallsQueryBuilderCorrectlyWithArray() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 817: public function testUpdateProcess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 817: public function testUpdateProcess() - line 819: $model = $this->getMockBuilder(EloquentModelStub::class)->onlyMethods(['newModelQuery', 'updateTimestamps'])->getMock(); - line 823: $model->expects($this->once())->method('newModelQuery')->willReturn($query); - line 824: $model->expects($this->once())->method('updateTimestamps'); - line 825: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - line 834: $model->syncOriginal(); - line 837: $this->assertTrue($model->save()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 820: $query = m::mock(Builder::class); - line 825: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - Test @ line 840: public function testUpdateProcessDoesntOverrideTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 840: public function testUpdateProcessDoesntOverrideTimestamps() - line 842: $model = $this->getMockBuilder(EloquentModelStub::class)->onlyMethods(['newModelQuery'])->getMock(); - line 846: $model->expects($this->once())->method('newModelQuery')->willReturn($query); - line 847: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - line 852: $model->syncOriginal(); - line 856: $this->assertTrue($model->save()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 843: $query = m::mock(Builder::class); - line 847: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - Test @ line 859: public function testSaveIsCanceledIfSavingEventReturnsFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 859: public function testSaveIsCanceledIfSavingEventReturnsFalse() - line 861: $model = $this->getMockBuilder(EloquentModelStub::class)->onlyMethods(['newModelQuery'])->getMock(); - line 863: $model->expects($this->once())->method('newModelQuery')->willReturn($query); - line 864: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - line 868: $this->assertFalse($model->save()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 862: $query = m::mock(Builder::class); - line 864: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - Test @ line 871: public function testUpdateIsCanceledIfUpdatingEventReturnsFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 871: public function testUpdateIsCanceledIfUpdatingEventReturnsFalse() - line 873: $model = $this->getMockBuilder(EloquentModelStub::class)->onlyMethods(['newModelQuery'])->getMock(); - line 875: $model->expects($this->once())->method('newModelQuery')->willReturn($query); - line 876: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - line 882: $this->assertFalse($model->save()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 874: $query = m::mock(Builder::class); - line 876: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - Test @ line 885: public function testEventsCanBeFiredWithCustomEventObjects() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 885: public function testEventsCanBeFiredWithCustomEventObjects() - line 887: $model = $this->getMockBuilder(EloquentModelEventObjectStub::class)->onlyMethods(['newModelQuery'])->getMock(); - line 889: $model->expects($this->once())->method('newModelQuery')->willReturn($query); - line 890: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - line 894: $this->assertFalse($model->save()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 888: $query = m::mock(Builder::class); - line 890: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - Test @ line 897: public function testUpdateProcessWithoutTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 897: public function testUpdateProcessWithoutTimestamps() - line 899: $model = $this->getMockBuilder(EloquentModelEventObjectStub::class)->onlyMethods(['newModelQuery', 'updateTimestamps', 'fireModelEvent'])->getMock(); - line 904: $model->expects($this->once())->method('newModelQuery')->willReturn($query); - line 905: $model->expects($this->never())->method('updateTimestamps'); - line 906: $model->expects($this->any())->method('fireModelEvent')->willReturn(true); - line 909: $model->syncOriginal(); - line 912: $this->assertTrue($model->save()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 901: $query = m::mock(Builder::class); - Test @ line 915: public function testUpdateUsesOldPrimaryKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 915: public function testUpdateUsesOldPrimaryKey() - line 917: $model = $this->getMockBuilder(EloquentModelStub::class)->onlyMethods(['newModelQuery', 'updateTimestamps'])->getMock(); - line 921: $model->expects($this->once())->method('newModelQuery')->willReturn($query); - line 922: $model->expects($this->once())->method('updateTimestamps'); - line 923: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - line 930: $model->syncOriginal(); - line 935: $this->assertTrue($model->save()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 918: $query = m::mock(Builder::class); - line 923: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - Test @ line 938: public function testTimestampsAreReturnedAsObjects() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 938: public function testTimestampsAreReturnedAsObjects() - line 940: $model = $this->getMockBuilder(EloquentDateModelStub::class)->onlyMethods(['getDateFormat'])->getMock(); - line 941: $model->expects($this->any())->method('getDateFormat')->willReturn('Y-m-d'); - line 942: $model->setRawAttributes([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 938: public function testTimestampsAreReturnedAsObjects() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 951: public function testTimestampsAreReturnedAsObjectsFromPlainDatesAndTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 951: public function testTimestampsAreReturnedAsObjectsFromPlainDatesAndTimestamps() - line 953: $model = $this->getMockBuilder(EloquentDateModelStub::class)->onlyMethods(['getDateFormat'])->getMock(); - line 954: $model->expects($this->any())->method('getDateFormat')->willReturn('Y-m-d H:i:s'); - line 955: $model->setRawAttributes([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 951: public function testTimestampsAreReturnedAsObjectsFromPlainDatesAndTimestamps() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 964: public function testTimestampsAreReturnedAsObjectsOnCreate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 964: public function testTimestampsAreReturnedAsObjectsOnCreate() - line 971: Model::setConnectionResolver($resolver = m::mock(ConnectionResolverInterface::class)); - line 975: $instance = $model->newInstance($timestamps); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 971: Model::setConnectionResolver($resolver = m::mock(ConnectionResolverInterface::class)); - line 972: $resolver->shouldReceive('connection')->andReturn($mockConnection = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 964: public function testTimestampsAreReturnedAsObjectsOnCreate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 980: public function testDateTimeAttributesReturnNullIfSetToNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 980: public function testDateTimeAttributesReturnNullIfSetToNull() - line 987: Model::setConnectionResolver($resolver = m::mock(ConnectionResolverInterface::class)); - line 991: $instance = $model->newInstance($timestamps); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 987: Model::setConnectionResolver($resolver = m::mock(ConnectionResolverInterface::class)); - line 988: $resolver->shouldReceive('connection')->andReturn($mockConnection = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 980: public function testDateTimeAttributesReturnNullIfSetToNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 997: public function testTimestampsAreCreatedFromStringsAndIntegers() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 997: public function testTimestampsAreCreatedFromStringsAndIntegers() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1016: public function testFromDateTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1016: public function testFromDateTime() - line 1021: $this->assertSame('2015-04-17 22:59:01', $model->fromDateTime($value)); - line 1026: $this->assertSame('2015-04-17 22:59:01', $model->fromDateTime($value)); - line 1031: $this->assertSame('2015-04-17 22:59:01', $model->fromDateTime($value)); - line 1034: $this->assertSame('2015-04-17 22:59:01', $model->fromDateTime($value)); - line 1037: $this->assertSame('2015-04-17 00:00:00', $model->fromDateTime($value)); - line 1040: $this->assertSame('2015-04-17 00:00:00', $model->fromDateTime($value)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1048: public function testFromDateTimeMilliseconds() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1048: public function testFromDateTimeMilliseconds() - line 1050: $model = $this->getMockBuilder('Illuminate\Tests\Database\EloquentDateModelStub')->onlyMethods(['getDateFormat'])->getMock(); - line 1051: $model->expects($this->any())->method('getDateFormat')->willReturn('Y-m-d H:s.vi'); - line 1052: $model->setRawAttributes([ - line 1057: $this->assertSame('22:30:59.321000', $model->created_at->format('H:i:s.u')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1060: public function testInsertProcess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 1060: public function testInsertProcess() - line 1062: $model = $this->getMockBuilder(EloquentModelStub::class)->onlyMethods(['newModelQuery', 'updateTimestamps', 'refresh'])->getMock(); - line 1066: $model->expects($this->once())->method('newModelQuery')->willReturn($query); - line 1067: $model->expects($this->once())->method('updateTimestamps'); - line 1069: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - line 1077: $this->assertTrue($model->save()); - line 1081: $model = $this->getMockBuilder(EloquentModelStub::class)->onlyMethods(['newModelQuery', 'updateTimestamps', 'refresh'])->getMock(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1063: $query = m::mock(Builder::class); - line 1069: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - line 1082: $query = m::mock(Builder::class); - line 1089: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - Test @ line 1102: public function testInsertIsCanceledIfCreatingEventReturnsFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1102: public function testInsertIsCanceledIfCreatingEventReturnsFalse() - line 1104: $model = $this->getMockBuilder(EloquentModelStub::class)->onlyMethods(['newModelQuery'])->getMock(); - line 1107: $model->expects($this->once())->method('newModelQuery')->willReturn($query); - line 1108: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - line 1112: $this->assertFalse($model->save()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1105: $query = m::mock(Builder::class); - line 1108: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - Test @ line 1116: public function testDeleteProperlyDeletesModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1116: public function testDeleteProperlyDeletesModel() - line 1118: $model = $this->getMockBuilder(Model::class)->onlyMethods(['newModelQuery', 'updateTimestamps', 'touchOwners'])->getMock(); - line 1122: $model->expects($this->once())->method('newModelQuery')->willReturn($query); - line 1123: $model->expects($this->once())->method('touchOwners'); - line 1126: $model->delete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1119: $query = m::mock(Builder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1116: public function testDeleteProperlyDeletesModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1129: public function testPushNoRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1129: public function testPushNoRelations() - line 1131: $model = $this->getMockBuilder(EloquentModelStub::class)->onlyMethods(['newModelQuery', 'updateTimestamps', 'refresh'])->getMock(); - line 1135: $model->expects($this->once())->method('newModelQuery')->willReturn($query); - line 1136: $model->expects($this->once())->method('updateTimestamps'); - line 1141: $this->assertTrue($model->push()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1132: $query = m::mock(Builder::class); - Test @ line 1146: public function testPushEmptyOneRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1146: public function testPushEmptyOneRelation() - line 1148: $model = $this->getMockBuilder(EloquentModelStub::class)->onlyMethods(['newModelQuery', 'updateTimestamps', 'refresh'])->getMock(); - line 1152: $model->expects($this->once())->method('newModelQuery')->willReturn($query); - line 1153: $model->expects($this->once())->method('updateTimestamps'); - line 1157: $model->setRelation('relationOne', null); - line 1159: $this->assertTrue($model->push()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1149: $query = m::mock(Builder::class); - Test @ line 1165: public function testPushOneRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1165: public function testPushOneRelation() - line 1167: $related1 = $this->getMockBuilder(EloquentModelStub::class)->onlyMethods(['newModelQuery', 'updateTimestamps', 'refresh'])->getMock(); - line 1171: $related1->expects($this->once())->method('newModelQuery')->willReturn($query); - line 1172: $related1->expects($this->once())->method('updateTimestamps'); - line 1176: $model = $this->getMockBuilder(EloquentModelStub::class)->onlyMethods(['newModelQuery', 'updateTimestamps', 'refresh'])->getMock(); - line 1180: $model->expects($this->once())->method('newModelQuery')->willReturn($query); - line 1181: $model->expects($this->once())->method('updateTimestamps'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1168: $query = m::mock(Builder::class); - line 1177: $query = m::mock(Builder::class); - Test @ line 1196: public function testPushEmptyManyRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1196: public function testPushEmptyManyRelation() - line 1198: $model = $this->getMockBuilder(EloquentModelStub::class)->onlyMethods(['newModelQuery', 'updateTimestamps', 'refresh'])->getMock(); - line 1202: $model->expects($this->once())->method('newModelQuery')->willReturn($query); - line 1203: $model->expects($this->once())->method('updateTimestamps'); - line 1207: $model->setRelation('relationMany', new Collection([])); - line 1209: $this->assertTrue($model->push()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1199: $query = m::mock(Builder::class); - Test @ line 1215: public function testPushManyRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 1215: public function testPushManyRelation() - line 1217: $related1 = $this->getMockBuilder(EloquentModelStub::class)->onlyMethods(['newModelQuery', 'updateTimestamps', 'refresh'])->getMock(); - line 1221: $related1->expects($this->once())->method('newModelQuery')->willReturn($query); - line 1222: $related1->expects($this->once())->method('updateTimestamps'); - line 1226: $related2 = $this->getMockBuilder(EloquentModelStub::class)->onlyMethods(['newModelQuery', 'updateTimestamps', 'refresh'])->getMock(); - line 1230: $related2->expects($this->once())->method('newModelQuery')->willReturn($query); - line 1231: $related2->expects($this->once())->method('updateTimestamps'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1218: $query = m::mock(Builder::class); - line 1227: $query = m::mock(Builder::class); - line 1236: $query = m::mock(Builder::class); - Test @ line 1253: public function testPushCircularRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 1253: public function testPushCircularRelations() - line 1257: $parent->setRelation('self', $parent); - line 1262: $child->setRelation('parent', $parent); - line 1263: $child->setRelation('self', $child); - line 1264: $children->push($child); - line 1266: $parent->setRelation('children', $children); - line 1269: $this->assertTrue($parent->push()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1275: public function testNewQueryReturnsEloquentQueryBuilder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1275: public function testNewQueryReturnsEloquentQueryBuilder() - line 1277: $conn = m::mock(Connection::class); - line 1281: $conn->shouldReceive('query')->andReturnUsing(function () use ($conn, $grammar, $processor) { - line 1286: $builder = $model->newQuery(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1277: $conn = m::mock(Connection::class); - line 1278: $grammar = m::mock(Grammar::class); - line 1279: $processor = m::mock(Processor::class); - line 1280: EloquentModelStub::setConnectionResolver($resolver = m::mock(ConnectionResolverInterface::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1275: public function testNewQueryReturnsEloquentQueryBuilder() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1290: public function testGetAndSetTableOperations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1290: public function testGetAndSetTableOperations() - line 1293: $this->assertSame('stub', $model->getTable()); - line 1294: $model->setTable('foo'); - line 1295: $this->assertSame('foo', $model->getTable()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1298: public function testGetKeyReturnsValueOfPrimaryKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1298: public function testGetKeyReturnsValueOfPrimaryKey() - line 1302: $this->assertEquals(1, $model->getKey()); - line 1303: $this->assertSame('id', $model->getKeyName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1306: public function testConnectionManagement() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1306: public function testConnectionManagement() - line 1308: EloquentModelStub::setConnectionResolver($resolver = m::mock(ConnectionResolverInterface::class)); - line 1311: $retval = $model->setConnection('foo'); - line 1318: $this->assertSame('bar', $model->getConnection()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1308: EloquentModelStub::setConnectionResolver($resolver = m::mock(ConnectionResolverInterface::class)); - Test @ line 1324: public function testConnectionEnums(string|\UnitEnum $connectionName) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1324: public function testConnectionEnums(string|\UnitEnum $connectionName) - line 1326: EloquentModelStub::setConnectionResolver($resolver = m::mock(ConnectionResolverInterface::class)); - line 1329: $retval = $model->setConnection($connectionName); - line 1331: $this->assertSame('Foo', $model->getConnectionName()); - line 1335: $this->assertSame('bar', $model->getConnection()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1326: EloquentModelStub::setConnectionResolver($resolver = m::mock(ConnectionResolverInterface::class)); - Test @ line 1338: public function testToArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1338: public function testToArray() - line 1344: $model->setHidden(['password']); - line 1345: $model->setRelation('names', new BaseCollection([ - line 1348: $model->setRelation('partner', new EloquentModelStub(['name' => 'abby'])); - line 1349: $model->setRelation('group', null); - line 1350: $model->setRelation('multi', new BaseCollection); - line 1351: $array = $model->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1367: public function testToArrayWithCircularRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 1367: public function testToArrayWithCircularRelations() - line 1371: $parent->setRelation('self', $parent); - line 1376: $child->setRelation('parent', $parent); - line 1377: $child->setRelation('self', $child); - line 1378: $children->push($child); - line 1380: $parent->setRelation('children', $children); - line 1403: $parent->toArray() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1410: public function testGetQueueableRelationsWithCircularRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 1410: public function testGetQueueableRelationsWithCircularRelations() - line 1414: $parent->setRelation('self', $parent); - line 1419: $child->setRelation('parent', $parent); - line 1420: $child->setRelation('self', $child); - line 1421: $children->push($child); - line 1423: $parent->setRelation('children', $children); - line 1433: $parent->getQueueableRelations() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1440: public function testVisibleCreatesArrayWhitelist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1440: public function testVisibleCreatesArrayWhitelist() - line 1443: $model->setVisible(['name']); - line 1446: $array = $model->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1451: public function testHiddenCanAlsoExcludeRelationships() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1451: public function testHiddenCanAlsoExcludeRelationships() - line 1455: $model->setRelation('foo', ['bar']); - line 1456: $model->setHidden(['foo', 'list_items', 'password']); - line 1457: $array = $model->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1462: public function testGetArrayableRelationsFunctionExcludeHiddenRelationships() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1462: public function testGetArrayableRelationsFunctionExcludeHiddenRelationships() - line 1467: $method = $class->getMethod('getArrayableRelations'); - line 1469: $model->setRelation('foo', ['bar']); - line 1470: $model->setRelation('bam', ['boom']); - line 1471: $model->setHidden(['foo']); - line 1473: $array = $method->invokeArgs($model, []); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1462: public function testGetArrayableRelationsFunctionExcludeHiddenRelationships() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1478: public function testToArraySnakeAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1478: public function testToArraySnakeAttributes() - line 1481: $model->setRelation('namesList', new BaseCollection([ - line 1484: $array = $model->toArray(); - line 1490: $model->setRelation('namesList', new BaseCollection([ - line 1493: $array = $model->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1508: public function testHidden() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1508: public function testHidden() - line 1511: $model->setHidden(['age', 'id']); - line 1512: $array = $model->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1517: public function testMergeHiddenMergesHidden() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1517: public function testMergeHiddenMergesHidden() - line 1521: $hiddenCount = count($model->getHidden()); - line 1522: $this->assertContains('foo', $model->getHidden()); - line 1524: $model->mergeHidden(['bar']); - line 1525: $this->assertCount($hiddenCount + 1, $model->getHidden()); - line 1526: $this->assertContains('bar', $model->getHidden()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1529: public function testVisible() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1529: public function testVisible() - line 1532: $model->setVisible(['name', 'id']); - line 1533: $array = $model->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1538: public function testMergeVisibleMergesVisible() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1538: public function testMergeVisibleMergesVisible() - line 1542: $visibleCount = count($model->getVisible()); - line 1543: $this->assertContains('foo', $model->getVisible()); - line 1545: $model->mergeVisible(['bar']); - line 1546: $this->assertCount($visibleCount + 1, $model->getVisible()); - line 1547: $this->assertContains('bar', $model->getVisible()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1558: public function testWithHidden() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1558: public function testWithHidden() - line 1561: $model->setHidden(['age', 'id']); - line 1562: $model->makeVisible('age'); - line 1563: $array = $model->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1569: public function testMakeHidden() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1569: public function testMakeHidden() - line 1572: $array = $model->toArray(); - line 1578: $array = $model->makeHidden('address')->toArray(); - line 1584: $array = $model->makeHidden(['name', 'age'])->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1599: public function testMakeVisibleIf() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 1599: public function testMakeVisibleIf() - line 1602: $model->setHidden(['age', 'id']); - line 1603: $model->makeVisibleIf(true, 'age'); - line 1604: $array = $model->toArray(); - line 1609: $model->setHidden(['age', 'id']); - line 1610: $model->makeVisibleIf(false, 'age'); - line 1611: $array = $model->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1626: public function testMakeHiddenIf() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1626: public function testMakeHiddenIf() - line 1629: $array = $model->toArray(); - line 1635: $array = $model->makeHiddenIf(true, 'address')->toArray(); - line 1641: $model->makeVisible('address'); - line 1643: $array = $model->makeHiddenIf(false, ['name', 'age'])->toArray(); - line 1649: $array = $model->makeHiddenIf(function ($model) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1658: public function testFillable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1658: public function testFillable() - line 1661: $model->fillable(['name', 'age']); - line 1662: $model->fill(['name' => 'foo', 'age' => 'bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1658: public function testFillable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1680: public function testFillingJSONAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1680: public function testFillingJSONAttributes() - line 1683: $model->fillable(['meta->name', 'meta->price', 'meta->size->width']); - line 1684: $model->fill(['meta->name' => 'foo', 'meta->price' => 'bar', 'meta->size->width' => 'baz']); - line 1687: $model->toArray() - line 1691: $model->fillable(['meta->name', 'meta->price', 'meta->size->width']); - line 1692: $model->fill(['meta->name' => 'foo', 'meta->price' => 'bar', 'meta->size->width' => 'baz']); - line 1695: $model->toArray() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1699: public function testUnguardAllowsAnythingToBeSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1699: public function testUnguardAllowsAnythingToBeSet() - line 1702: EloquentModelStub::unguard(); - line 1703: $model->guard(['*']); - line 1704: $model->fill(['name' => 'foo', 'age' => 'bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1699: public function testUnguardAllowsAnythingToBeSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1710: public function testUnderscorePropertiesAreNotFilled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1710: public function testUnderscorePropertiesAreNotFilled() - line 1713: $model->fill(['_method' => 'PUT']); - line 1714: $this->assertEquals([], $model->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1717: public function testGuarded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1717: public function testGuarded() - line 1721: EloquentModelStub::setConnectionResolver($resolver = m::mock(Resolver::class)); - line 1725: $model->guard(['name', 'age']); - line 1726: $model->fill(['name' => 'foo', 'age' => 'bar', 'foo' => 'bar']); - line 1732: $model->guard(['name', 'age']); - line 1733: $model->fill(['Foo' => 'bar']); - line 1740: $this->expectException(MassAssignmentException::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1721: EloquentModelStub::setConnectionResolver($resolver = m::mock(Resolver::class)); - line 1722: $resolver->shouldReceive('connection')->andReturn($connection = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1717: public function testGuarded() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1769: public function testUsesOverriddenHandlerWhenDiscardingAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1769: public function testUsesOverriddenHandlerWhenDiscardingAttributes() - line 1771: EloquentModelStub::setConnectionResolver($resolver = m::mock(Resolver::class)); - line 1785: $model->guard(['name', 'age']); - line 1786: $model->fill(['Foo' => 'bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1771: EloquentModelStub::setConnectionResolver($resolver = m::mock(Resolver::class)); - line 1772: $resolver->shouldReceive('connection')->andReturn($connection = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1769: public function testUsesOverriddenHandlerWhenDiscardingAttributes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1795: public function testFillableOverridesGuarded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1795: public function testFillableOverridesGuarded() - line 1797: Model::preventSilentlyDiscardingAttributes(false); - line 1800: $model->guard([]); - line 1801: $model->fillable(['age', 'foo']); - line 1802: $model->fill(['name' => 'foo', 'age' => 'bar', 'foo' => 'bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1795: public function testFillableOverridesGuarded() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1808: public function testGlobalGuarded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1808: public function testGlobalGuarded() - line 1810: $this->expectException(MassAssignmentException::class); - line 1811: $this->expectExceptionMessage('name'); - line 1814: $model->guard(['*']); - line 1815: $model->fill(['name' => 'foo', 'age' => 'bar', 'votes' => 'baz']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1808: public function testGlobalGuarded() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1827: public function testUnguardedCallDoesNotChangeUnguardedState() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1827: public function testUnguardedCallDoesNotChangeUnguardedState() - line 1829: Model::unguard(); - line 1831: return (new EloquentModelStub)->guard(['*'])->fill(['name' => 'Taylor']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1850: public function testHasOneCreatesProperRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1850: public function testHasOneCreatesProperRelation() - line 1853: $this->addMockConnection($model); - line 1854: $relation = $model->hasOne(EloquentModelSaveStub::class); - line 1855: $this->assertSame('save_stub.eloquent_model_stub_id', $relation->getQualifiedForeignKeyName()); - line 1858: $this->addMockConnection($model); - line 1859: $relation = $model->hasOne(EloquentModelSaveStub::class, 'foo'); - line 1860: $this->assertSame('save_stub.foo', $relation->getQualifiedForeignKeyName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1865: public function testMorphOneCreatesProperRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1865: public function testMorphOneCreatesProperRelation() - line 1868: $this->addMockConnection($model); - line 1869: $relation = $model->morphOne(EloquentModelSaveStub::class, 'morph'); - line 1870: $this->assertSame('save_stub.morph_id', $relation->getQualifiedForeignKeyName()); - line 1871: $this->assertSame('save_stub.morph_type', $relation->getQualifiedMorphType()); - line 1872: $this->assertEquals(EloquentModelStub::class, $relation->getMorphClass()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1875: public function testCorrectMorphClassIsReturned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1875: public function testCorrectMorphClassIsReturned() - line 1877: Relation::morphMap(['alias' => 'AnotherModel']); - line 1881: $this->assertEquals(EloquentModelStub::class, $model->getMorphClass()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1887: public function testHasManyCreatesProperRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1887: public function testHasManyCreatesProperRelation() - line 1890: $this->addMockConnection($model); - line 1891: $relation = $model->hasMany(EloquentModelSaveStub::class); - line 1892: $this->assertSame('save_stub.eloquent_model_stub_id', $relation->getQualifiedForeignKeyName()); - line 1895: $this->addMockConnection($model); - line 1896: $relation = $model->hasMany(EloquentModelSaveStub::class, 'foo'); - line 1898: $this->assertSame('save_stub.foo', $relation->getQualifiedForeignKeyName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1903: public function testMorphManyCreatesProperRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1903: public function testMorphManyCreatesProperRelation() - line 1906: $this->addMockConnection($model); - line 1907: $relation = $model->morphMany(EloquentModelSaveStub::class, 'morph'); - line 1908: $this->assertSame('save_stub.morph_id', $relation->getQualifiedForeignKeyName()); - line 1909: $this->assertSame('save_stub.morph_type', $relation->getQualifiedMorphType()); - line 1910: $this->assertEquals(EloquentModelStub::class, $relation->getMorphClass()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1913: public function testBelongsToCreatesProperRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1913: public function testBelongsToCreatesProperRelation() - line 1916: $this->addMockConnection($model); - line 1917: $relation = $model->belongsToStub(); - line 1918: $this->assertSame('belongs_to_stub_id', $relation->getForeignKeyName()); - line 1919: $this->assertSame($model, $relation->getParent()); - line 1920: $this->assertInstanceOf(EloquentModelSaveStub::class, $relation->getQuery()->getModel()); - line 1923: $this->addMockConnection($model); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1928: public function testMorphToCreatesProperRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 20. Evidence: - line 1928: public function testMorphToCreatesProperRelation() - line 1931: $this->addMockConnection($model); - line 1934: $model->setAttribute('morph_to_stub_type', EloquentModelSaveStub::class); - line 1935: $relation = $model->morphToStub(); - line 1936: $this->assertSame('morph_to_stub_id', $relation->getForeignKeyName()); - line 1937: $this->assertSame('morph_to_stub_type', $relation->getMorphType()); - line 1938: $this->assertSame('morphToStub', $relation->getRelationName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1961: public function testBelongsToManyCreatesProperRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 1961: public function testBelongsToManyCreatesProperRelation() - line 1964: $this->addMockConnection($model); - line 1966: $relation = $model->belongsToMany(EloquentModelSaveStub::class); - line 1967: $this->assertSame('eloquent_model_save_stub_eloquent_model_stub.eloquent_model_stub_id', $relation->getQualifiedForeignPivotKeyName()); - line 1968: $this->assertSame('eloquent_model_save_stub_eloquent_model_stub.eloquent_model_save_stub_id', $relation->getQualifiedRelatedPivotKeyName()); - line 1969: $this->assertSame($model, $relation->getParent()); - line 1970: $this->assertInstanceOf(EloquentModelSaveStub::class, $relation->getQuery()->getModel()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1982: public function testRelationsWithVariedConnections() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 48. Evidence: - line 1982: public function testRelationsWithVariedConnections() - line 1986: $model->setConnection('non_default'); - line 1987: $this->addMockConnection($model); - line 1988: $relation = $model->hasOne(EloquentNoConnectionModelStub::class); - line 1989: $this->assertSame('non_default', $relation->getRelated()->getConnectionName()); - line 1992: $model->setConnection('non_default'); - line 1993: $this->addMockConnection($model); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2063: public function testModelsAssumeTheirName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2063: public function testModelsAssumeTheirName() - line 2068: $this->assertSame('eloquent_model_without_table_stubs', $model->getTable()); - line 2071: $this->assertSame('eloquent_model_namespaced_stubs', $namespacedModel->getTable()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2100: public function testCloneModelMakesAFreshCopyOfTheModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2100: public function testCloneModelMakesAFreshCopyOfTheModel() - line 2107: $class->created_at = $class->freshTimestamp(); - line 2108: $class->updated_at = $class->freshTimestamp(); - line 2109: $class->setRelation('foo', ['bar']); - line 2111: $clone = $class->replicate(); - line 2117: $this->assertArrayNotHasKey('created_at', $clone->getAttributes()); - line 2118: $this->assertArrayNotHasKey('updated_at', $clone->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2122: public function testCloneModelMakesAFreshCopyOfTheModelWhenModelHasUuidPrimaryKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2122: public function testCloneModelMakesAFreshCopyOfTheModelWhenModelHasUuidPrimaryKey() - line 2129: $class->created_at = $class->freshTimestamp(); - line 2130: $class->updated_at = $class->freshTimestamp(); - line 2131: $class->setRelation('foo', ['bar']); - line 2133: $clone = $class->replicate(); - line 2139: $this->assertArrayNotHasKey('created_at', $clone->getAttributes()); - line 2140: $this->assertArrayNotHasKey('updated_at', $clone->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2144: public function testCloneModelMakesAFreshCopyOfTheModelWhenModelHasUuid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2144: public function testCloneModelMakesAFreshCopyOfTheModelWhenModelHasUuid() - line 2152: $class->created_at = $class->freshTimestamp(); - line 2153: $class->updated_at = $class->freshTimestamp(); - line 2154: $class->setRelation('foo', ['bar']); - line 2156: $clone = $class->replicate(); - line 2163: $this->assertArrayNotHasKey('created_at', $clone->getAttributes()); - line 2164: $this->assertArrayNotHasKey('updated_at', $clone->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2168: public function testCloneModelMakesAFreshCopyOfTheModelWhenModelHasUlidPrimaryKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2168: public function testCloneModelMakesAFreshCopyOfTheModelWhenModelHasUlidPrimaryKey() - line 2175: $class->created_at = $class->freshTimestamp(); - line 2176: $class->updated_at = $class->freshTimestamp(); - line 2177: $class->setRelation('foo', ['bar']); - line 2179: $clone = $class->replicate(); - line 2185: $this->assertArrayNotHasKey('created_at', $clone->getAttributes()); - line 2186: $this->assertArrayNotHasKey('updated_at', $clone->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2190: public function testCloneModelMakesAFreshCopyOfTheModelWhenModelHasUlid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2190: public function testCloneModelMakesAFreshCopyOfTheModelWhenModelHasUlid() - line 2198: $class->created_at = $class->freshTimestamp(); - line 2199: $class->updated_at = $class->freshTimestamp(); - line 2200: $class->setRelation('foo', ['bar']); - line 2202: $clone = $class->replicate(); - line 2209: $this->assertArrayNotHasKey('created_at', $clone->getAttributes()); - line 2210: $this->assertArrayNotHasKey('updated_at', $clone->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2214: public function testModelObserversCanBeAttachedToModels() Violations: - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2216: EloquentModelStub::setEventDispatcher($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2214: public function testModelObserversCanBeAttachedToModels() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2224: public function testModelObserversCanBeAttachedToModelsWithString() Violations: - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2226: EloquentModelStub::setEventDispatcher($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2224: public function testModelObserversCanBeAttachedToModelsWithString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2234: public function testModelObserversCanBeAttachedToModelsThroughAnArray() Violations: - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2236: EloquentModelStub::setEventDispatcher($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2234: public function testModelObserversCanBeAttachedToModelsThroughAnArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2244: public function testModelObserversCanBeAttachedToModelsWithStringUsingAttribute() Violations: - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2246: EloquentModelWithObserveAttributeStub::setEventDispatcher($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2244: public function testModelObserversCanBeAttachedToModelsWithStringUsingAttribute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2254: public function testModelObserversCanBeAttachedToModelsThroughAnArrayUsingAttribute() Violations: - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2256: EloquentModelWithObserveAttributeUsingArrayStub::setEventDispatcher($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2254: public function testModelObserversCanBeAttachedToModelsThroughAnArrayUsingAttribute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2264: public function testModelObserversCanBeAttachedToModelsThroughAttributesOnParentClasses() Violations: - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2266: EloquentModelWithObserveAttributeGrandchildStub::setEventDispatcher($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2264: public function testModelObserversCanBeAttachedToModelsThroughAttributesOnParentClasses() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2278: public function testThrowExceptionOnAttachingNotExistsModelObserverWithString() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2278: public function testThrowExceptionOnAttachingNotExistsModelObserverWithString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2284: public function testThrowExceptionOnAttachingNotExistsModelObserversThroughAnArray() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2284: public function testThrowExceptionOnAttachingNotExistsModelObserversThroughAnArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2290: public function testModelObserversCanBeAttachedToModelsThroughCallingObserveMethodOnlyOnce() Violations: - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2292: EloquentModelStub::setEventDispatcher($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2290: public function testModelObserversCanBeAttachedToModelsThroughCallingObserveMethodOnlyOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2309: public function testWithoutEventDispatcher() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2309: public function testWithoutEventDispatcher() - line 2311: EloquentModelSaveStub::setEventDispatcher($events = m::mock(Dispatcher::class)); - line 2314: $events->shouldNotReceive('until'); - line 2315: $events->shouldNotReceive('dispatch'); - line 2321: $model->save(); - line 2326: $model->withoutEvents(function () use ($model) { - line 2335: $model->save(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2311: EloquentModelSaveStub::setEventDispatcher($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2309: public function testWithoutEventDispatcher() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2340: public function testSetObservableEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2340: public function testSetObservableEvents() - line 2343: $class->setObservableEvents(['foo']); - line 2345: $this->assertContains('foo', $class->getObservableEvents()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2340: public function testSetObservableEvents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2348: public function testAddObservableEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2348: public function testAddObservableEvent() - line 2351: $class->addObservableEvents('foo'); - line 2353: $this->assertContains('foo', $class->getObservableEvents()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2348: public function testAddObservableEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2356: public function testAddMultipleObserveableEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2356: public function testAddMultipleObserveableEvents() - line 2359: $class->addObservableEvents('foo', 'bar'); - line 2361: $this->assertContains('foo', $class->getObservableEvents()); - line 2362: $this->assertContains('bar', $class->getObservableEvents()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2356: public function testAddMultipleObserveableEvents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2365: public function testRemoveObservableEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2365: public function testRemoveObservableEvent() - line 2368: $class->setObservableEvents(['foo', 'bar']); - line 2369: $class->removeObservableEvents('bar'); - line 2371: $this->assertNotContains('bar', $class->getObservableEvents()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2365: public function testRemoveObservableEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2374: public function testRemoveMultipleObservableEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2374: public function testRemoveMultipleObservableEvents() - line 2377: $class->setObservableEvents(['foo', 'bar']); - line 2378: $class->removeObservableEvents('foo', 'bar'); - line 2380: $this->assertNotContains('foo', $class->getObservableEvents()); - line 2381: $this->assertNotContains('bar', $class->getObservableEvents()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2374: public function testRemoveMultipleObservableEvents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2384: public function testGetModelAttributeMethodThrowsExceptionIfNotRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2384: public function testGetModelAttributeMethodThrowsExceptionIfNotRelation() - line 2386: $this->expectException(LogicException::class); - line 2387: $this->expectExceptionMessage('Illuminate\Tests\Database\EloquentModelStub::incorrectRelationStub must return a relationship instance.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2384: public function testGetModelAttributeMethodThrowsExceptionIfNotRelation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2406: public function testCallbacksCanBeRunAfterBootingHasFinished() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2406: public function testCallbacksCanBeRunAfterBootingHasFinished() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2417: public function testBootedCallbacksAreSeparatedByClass() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2417: public function testBootedCallbacksAreSeparatedByClass() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2435: public function testModelsTraitIsInitialized() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 2435: public function testModelsTraitIsInitialized() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2435: public function testModelsTraitIsInitialized() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2441: public function testAppendingOfAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 2441: public function testAppendingOfAttributes() - line 2453: $this->assertEquals(['is_admin', 'camelCased', 'StudlyCased'], $model->getAppends()); - line 2455: $this->assertTrue($model->hasAppended('is_admin')); - line 2456: $this->assertTrue($model->hasAppended('camelCased')); - line 2457: $this->assertTrue($model->hasAppended('StudlyCased')); - line 2458: $this->assertFalse($model->hasAppended('not_appended')); - line 2460: $model->setHidden(['is_admin', 'camelCased', 'StudlyCased']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2467: public function testMergeAppendsMergesAppends() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2467: public function testMergeAppendsMergesAppends() - line 2471: $appendsCount = count($model->getAppends()); - line 2472: $this->assertEquals(['is_admin', 'camelCased', 'StudlyCased'], $model->getAppends()); - line 2474: $model->mergeAppends(['bar']); - line 2475: $this->assertCount($appendsCount + 1, $model->getAppends()); - line 2476: $this->assertContains('bar', $model->getAppends()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2479: public function testGetMutatedAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2479: public function testGetMutatedAttributes() - line 2483: $this->assertEquals(['first_name', 'middle_name', 'last_name'], $model->getMutatedAttributes()); - line 2488: $this->assertEquals(['firstName', 'middleName', 'lastName'], $model->getMutatedAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2506: public function testReplicatingEventIsFiredWhenReplicatingModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2506: public function testReplicatingEventIsFiredWhenReplicatingModel() - line 2510: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - line 2512: return $model->is($m); - line 2515: $model->replicate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2510: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2506: public function testReplicatingEventIsFiredWhenReplicatingModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2518: public function testReplicateQuietlyCreatesANewModelInstanceWithSameAttributeValuesAndIsQuiet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2518: public function testReplicateQuietlyCreatesANewModelInstanceWithSameAttributeValuesAndIsQuiet() - line 2525: $replicated = $model->replicateQuietly(); - line 2527: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - line 2528: $events->shouldReceive('dispatch')->never()->with('eloquent.replicating: '.get_class($model), $model)->andReturn(true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2527: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - Test @ line 2536: public function testIncrementOnExistingModelCallsQueryAndSetsAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2536: public function testIncrementOnExistingModelCallsQueryAndSetsAttribute() - line 2538: $model = m::mock(EloquentModelStub::class.'[newQueryWithoutScopes]'); - line 2541: $model->syncOriginalAttribute('id'); - line 2549: $model->publicIncrement('foo', 1); - line 2550: $this->assertFalse($model->isDirty()); - line 2552: $model->publicIncrement('foo', 1, ['category' => 1]); - line 2555: $this->assertTrue($model->isDirty('category')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2544: $model->shouldReceive('newQueryWithoutScopes')->andReturn($query = m::mock(stdClass::class)); - Test @ line 2558: public function testIncrementQuietlyOnExistingModelCallsQueryAndSetsAttributeAndIsQuiet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 2558: public function testIncrementQuietlyOnExistingModelCallsQueryAndSetsAttributeAndIsQuiet() - line 2560: $model = m::mock(EloquentModelStub::class.'[newQueryWithoutScopes]'); - line 2563: $model->syncOriginalAttribute('id'); - line 2570: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - line 2571: $events->shouldReceive('until')->never()->with('eloquent.saving: '.get_class($model), $model)->andReturn(true); - line 2572: $events->shouldReceive('until')->never()->with('eloquent.updating: '.get_class($model), $model)->andReturn(true); - line 2573: $events->shouldReceive('dispatch')->never()->with('eloquent.updated: '.get_class($model), $model)->andReturn(true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2566: $model->shouldReceive('newQueryWithoutScopes')->andReturn($query = m::mock(stdClass::class)); - line 2570: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - Test @ line 2585: public function testDecrementQuietlyOnExistingModelCallsQueryAndSetsAttributeAndIsQuiet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 2585: public function testDecrementQuietlyOnExistingModelCallsQueryAndSetsAttributeAndIsQuiet() - line 2587: $model = m::mock(EloquentModelStub::class.'[newQueryWithoutScopes]'); - line 2590: $model->syncOriginalAttribute('id'); - line 2597: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - line 2598: $events->shouldReceive('until')->never()->with('eloquent.saving: '.get_class($model), $model)->andReturn(true); - line 2599: $events->shouldReceive('until')->never()->with('eloquent.updating: '.get_class($model), $model)->andReturn(true); - line 2600: $events->shouldReceive('dispatch')->never()->with('eloquent.updated: '.get_class($model), $model)->andReturn(true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2593: $model->shouldReceive('newQueryWithoutScopes')->andReturn($query = m::mock(stdClass::class)); - line 2597: $model->setEventDispatcher($events = m::mock(Dispatcher::class)); - Test @ line 2612: public function testRelationshipTouchOwnersIsPropagated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2612: public function testRelationshipTouchOwnersIsPropagated() - line 2614: $relation = $this->getMockBuilder(BelongsTo::class)->onlyMethods(['touch'])->disableOriginalConstructor()->getMock(); - line 2615: $relation->expects($this->once())->method('touch'); - line 2618: $this->addMockConnection($model); - line 2620: $model->setTouchedRelations(['partner']); - line 2624: $model->setRelation('partner', $mockPartnerModel); - line 2626: $model->touchOwners(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2612: public function testRelationshipTouchOwnersIsPropagated() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2629: public function testRelationshipTouchOwnersIsNotPropagatedIfNoRelationshipResult() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2629: public function testRelationshipTouchOwnersIsNotPropagatedIfNoRelationshipResult() - line 2631: $relation = $this->getMockBuilder(BelongsTo::class)->onlyMethods(['touch'])->disableOriginalConstructor()->getMock(); - line 2632: $relation->expects($this->once())->method('touch'); - line 2635: $this->addMockConnection($model); - line 2637: $model->setTouchedRelations(['partner']); - line 2639: $model->setRelation('partner', null); - line 2641: $model->touchOwners(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2629: public function testRelationshipTouchOwnersIsNotPropagatedIfNoRelationshipResult() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2644: public function testModelAttributesAreCastedWhenPresentInCastsPropertyOrCastsMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2644: public function testModelAttributesAreCastedWhenPresentInCastsPropertyOrCastsMethod() - line 2647: $model->setDateFormat('Y-m-d H:i:s'); - line 2679: $this->assertSame('{"foo":"bar"}', $model->jsonAttributeValue()); - line 2681: $this->assertSame('{"こんにちは":"世界"}', $model->jsonAttributeWithUnicodeValue()); - line 2686: $this->assertSame('1969-07-20', $model->dateAttribute->toDateString()); - line 2687: $this->assertSame('1969-07-20 22:56:00', $model->datetimeAttribute->toDateTimeString()); - line 2690: $arr = $model->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2713: public function testModelDateAttributeCastingResetsTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2713: public function testModelDateAttributeCastingResetsTime() - line 2716: $model->setDateFormat('Y-m-d H:i:s'); - line 2719: $this->assertSame('1969-07-20 00:00:00', $model->dateAttribute->toDateTimeString()); - line 2721: $arr = $model->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2725: public function testModelAttributeCastingPreservesNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2725: public function testModelAttributeCastingPreservesNull() - line 2742: $attributes = $model->getAttributes(); - line 2772: $array = $model->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2725: public function testModelAttributeCastingPreservesNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2789: public function testModelAttributeCastingFailsOnUnencodableData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2789: public function testModelAttributeCastingFailsOnUnencodableData() - line 2791: $this->expectException(JsonEncodingException::class); - line 2792: $this->expectExceptionMessage('Unable to encode attribute [objectAttribute] for model [Illuminate\Tests\Database\EloquentModelCastingStub] to JSON: Malformed UTF-8 characters, possibly incorrectly encoded.'); - line 2800: $model->getAttributes(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2789: public function testModelAttributeCastingFailsOnUnencodableData() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2803: public function testModelJsonCastingFailsOnUnencodableData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2803: public function testModelJsonCastingFailsOnUnencodableData() - line 2805: $this->expectException(JsonEncodingException::class); - line 2806: $this->expectExceptionMessage('Unable to encode attribute [jsonAttribute] for model [Illuminate\Tests\Database\EloquentModelCastingStub] to JSON: Malformed UTF-8 characters, possibly incorrectly encoded.'); - line 2811: $model->getAttributes(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2803: public function testModelJsonCastingFailsOnUnencodableData() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2814: public function testModelAttributeCastingFailsOnUnencodableDataWithUnicode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2814: public function testModelAttributeCastingFailsOnUnencodableDataWithUnicode() - line 2816: $this->expectException(JsonEncodingException::class); - line 2817: $this->expectExceptionMessage('Unable to encode attribute [jsonAttributeWithUnicode] for model [Illuminate\Tests\Database\EloquentModelCastingStub] to JSON: Malformed UTF-8 characters, possibly incorrectly encoded.'); - line 2822: $model->getAttributes(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2814: public function testModelAttributeCastingFailsOnUnencodableDataWithUnicode() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2825: public function testJsonCastingRespectsUnicodeOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2825: public function testJsonCastingRespectsUnicodeOption() - line 2832: $this->assertSame('{"\u3053\u3093\u306b\u3061\u306f":"\u4e16\u754c"}', $model->jsonAttributeValue()); - line 2833: $this->assertSame('{"こんにちは":"世界"}', $model->jsonAttributeWithUnicodeValue()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2838: public function testModelAttributeCastingWithFloats() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 2838: public function testModelAttributeCastingWithFloats() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2838: public function testModelAttributeCastingWithFloats() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2864: public function testModelAttributeCastingWithArrays() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 2864: public function testModelAttributeCastingWithArrays() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2864: public function testModelAttributeCastingWithArrays() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2872: public function testMergeCastsMergesCasts() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2872: public function testMergeCastsMergesCasts() - line 2876: $castCount = count($model->getCasts()); - line 2877: $this->assertArrayNotHasKey('foo', $model->getCasts()); - line 2879: $model->mergeCasts(['foo' => 'date']); - line 2880: $this->assertCount($castCount + 1, $model->getCasts()); - line 2881: $this->assertArrayHasKey('foo', $model->getCasts()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2884: public function testMergeCastsMergesCastsUsingArrays() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 2884: public function testMergeCastsMergesCastsUsingArrays() - line 2888: $castCount = count($model->getCasts()); - line 2889: $this->assertArrayNotHasKey('foo', $model->getCasts()); - line 2891: $model->mergeCasts([ - line 2896: $this->assertCount($castCount + 2, $model->getCasts()); - line 2897: $this->assertArrayHasKey('foo', $model->getCasts()); - line 2898: $this->assertEquals($model->getCasts()['foo'], 'MyClass:myArgumentA'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2902: public function testUnsetCastAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2902: public function testUnsetCastAttributes() - line 2905: $model->asToObjectCast = TestValueObject::make([ - line 2910: $this->assertArrayNotHasKey('asToObjectCast', $model->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2902: public function testUnsetCastAttributes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2919: public function testIssetBehavesCorrectlyWithAttributesAndRelationships() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2919: public function testIssetBehavesCorrectlyWithAttributesAndRelationships() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2931: public function testNonExistingAttributeWithInternalMethodNameDoesntCallMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2931: public function testNonExistingAttributeWithInternalMethodNameDoesntCallMethod() - line 2933: $model = m::mock(EloquentModelStub::class.'[delete,getRelationValue]'); - line 2935: $model->shouldNotReceive('delete'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2952: public function testIntKeyTypePreserved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2952: public function testIntKeyTypePreserved() - line 2954: $model = $this->getMockBuilder(EloquentModelStub::class)->onlyMethods(['newModelQuery', 'updateTimestamps', 'refresh'])->getMock(); - line 2958: $model->expects($this->once())->method('newModelQuery')->willReturn($query); - line 2960: $this->assertTrue($model->save()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2955: $query = m::mock(Builder::class); - Test @ line 2964: public function testStringKeyTypePreserved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2964: public function testStringKeyTypePreserved() - line 2966: $model = $this->getMockBuilder(EloquentKeyTypeModelStub::class)->onlyMethods(['newModelQuery', 'updateTimestamps', 'refresh'])->getMock(); - line 2971: $model->expects($this->once())->method('newModelQuery')->willReturn($query); - line 2973: $this->assertTrue($model->save()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2968: $query = m::mock(Builder::class); - Test @ line 2977: public function testScopesMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2977: public function testScopesMethod() - line 2980: $this->addMockConnection($model); - line 2989: $this->assertInstanceOf(Builder::class, $model->scopes($scopes)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2993: public function testScopesMethodWithString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2993: public function testScopesMethodWithString() - line 2996: $this->addMockConnection($model); - line 2998: $this->assertInstanceOf(Builder::class, $model->scopes('published')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2993: public function testScopesMethodWithString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3026: public function testIsWithAnotherTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3026: public function testIsWithAnotherTable() - line 3030: $secondInstance->setTable('foo'); - line 3031: $result = $firstInstance->is($secondInstance); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3035: public function testIsWithAnotherConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3035: public function testIsWithAnotherConnection() - line 3039: $secondInstance->setConnection('foo'); - line 3040: $result = $firstInstance->is($secondInstance); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3044: public function testWithoutTouchingCallback() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3044: public function testWithoutTouchingCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3057: public function testWithoutTouchingOnCallback() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3057: public function testWithoutTouchingOnCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3070: public function testThrowsWhenAccessingMissingAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3070: public function testThrowsWhenAccessingMissingAttributes() - line 3072: $originalMode = Model::preventsAccessingMissingAttributes(); - line 3080: $this->expectException(MissingAttributeException::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3070: public function testThrowsWhenAccessingMissingAttributes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3088: public function testThrowsWhenAccessingMissingAttributesWhichArePrimitiveCasts() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3088: public function testThrowsWhenAccessingMissingAttributesWhichArePrimitiveCasts() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3127: public function testUsesOverriddenHandlerWhenAccessingMissingAttributes() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3127: public function testUsesOverriddenHandlerWhenAccessingMissingAttributes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3154: public function testDoesntThrowWhenAccessingMissingAttributesOnModelThatIsNotSaved() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3154: public function testDoesntThrowWhenAccessingMissingAttributesOnModelThatIsNotSaved() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3170: public function testDoesntThrowWhenAccessingMissingAttributesOnModelThatWasRecentlyCreated() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3170: public function testDoesntThrowWhenAccessingMissingAttributesOnModelThatWasRecentlyCreated() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3187: public function testDoesntThrowWhenAssigningMissingAttributes() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3187: public function testDoesntThrowWhenAssigningMissingAttributes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3202: public function testDoesntThrowWhenTestingMissingAttributes() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3202: public function testDoesntThrowWhenTestingMissingAttributes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3252: public function testGetOriginalCastsAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 25. Evidence: - line 3252: public function testGetOriginalCastsAttributes() - line 3272: $model->syncOriginal(); - line 3293: $this->assertIsInt($model->getOriginal('intAttribute')); - line 3294: $this->assertEquals(1, $model->getOriginal('intAttribute')); - line 3296: $this->assertEquals(2, $model->getAttribute('intAttribute')); - line 3298: $this->assertIsFloat($model->getOriginal('floatAttribute')); - line 3299: $this->assertEquals(0.1234, $model->getOriginal('floatAttribute')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3333: public function testCastsMethodHasPriorityOverCastsProperty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3333: public function testCastsMethodHasPriorityOverCastsProperty() - line 3336: $model->setRawAttributes([ - line 3342: $this->assertEquals(1, $model->getAttribute('duplicatedAttribute')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3345: public function testCastsMethodIsTakenInConsiderationOnSerialization() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3345: public function testCastsMethodIsTakenInConsiderationOnSerialization() - line 3348: $model->setRawAttributes([ - line 3356: $this->assertEquals(1, $model->getAttribute('duplicatedAttribute')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3359: public function testCastOnArrayFormatWithOneElement() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3359: public function testCastOnArrayFormatWithOneElement() - line 3362: $model->setRawAttributes([ - line 3365: $model->syncOriginal(); - line 3368: $this->assertEquals(['bar' => 'foo'], $model->singleElementInArrayAttribute->toArray()); - line 3369: $this->assertEquals(['bar' => 'foo'], $model->getAttribute('singleElementInArrayAttribute')->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3379: public function testMergeingStringableObjectCastUSesStringRepresentation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3379: public function testMergeingStringableObjectCastUSesStringRepresentation() - line 3384: $model = (new EloquentModelCastingStub)->mergeCasts([ - line 3388: $this->assertEquals('test', $model->getCasts()['something']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3391: public function testUsingPlainObjectAsCastThrowsException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3391: public function testUsingPlainObjectAsCastThrowsException() - line 3395: $this->expectException(InvalidArgumentException::class); - line 3396: $this->expectExceptionMessage('The cast object for the something attribute must implement Stringable.'); - line 3398: $model->mergeCasts([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3391: public function testUsingPlainObjectAsCastThrowsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3403: public function testUnsavedModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 3403: public function testUnsavedModel() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3403: public function testUnsavedModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3411: public function testDiscardChanges() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 3411: public function testDiscardChanges() - line 3417: $this->assertNotEmpty($user->isDirty()); - line 3418: $this->assertNull($user->getOriginal('name')); - line 3419: $this->assertSame('Taylor Otwell', $user->getAttribute('name')); - line 3421: $user->discardChanges(); - line 3423: $this->assertEmpty($user->isDirty()); - line 3424: $this->assertNull($user->getOriginal('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3428: public function testDiscardChangesWithCasts() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3428: public function testDiscardChangesWithCasts() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3443: public function testHasAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 3443: public function testHasAttribute() - line 3449: $this->assertTrue($user->hasAttribute('name')); - line 3450: $this->assertTrue($user->hasAttribute('password')); - line 3451: $this->assertTrue($user->hasAttribute('castedFloat')); - line 3452: $this->assertFalse($user->hasAttribute('nonexistent')); - line 3453: $this->assertFalse($user->hasAttribute('belongsToStub')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3484: public function testFillableWithMutators() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3484: public function testFillableWithMutators() - line 3487: $model->fillable(['full_name', 'full_address']); - line 3488: $model->fill(['id' => 1, 'full_name' => 'John Doe', 'full_address' => '123 Main Street, Anytown']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3484: public function testFillableWithMutators() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3497: public function testGuardedWithMutators() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3497: public function testGuardedWithMutators() - line 3500: $model->guard(['id']); - line 3501: $model->fill(['id' => 1, 'full_name' => 'John Doe', 'full_address' => '123 Main Street, Anytown']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3497: public function testGuardedWithMutators() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3510: public function testCollectedByAttribute() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3510: public function testCollectedByAttribute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3518: public function testUseFactoryAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3518: public function testUseFactoryAttribute() - line 3521: $instance = EloquentModelWithUseFactoryAttribute::factory()->make(['name' => 'test name']); - line 3526: $this->assertEquals(EloquentModelWithUseFactoryAttribute::class, $factory->modelName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3530: public function testUseCustomBuilderWithUseEloquentBuilderAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3530: public function testUseCustomBuilderWithUseEloquentBuilderAttribute() - line 3534: $query = $this->createMock(\Illuminate\Database\Query\Builder::class); - line 3535: $eloquentBuilder = $model->newEloquentBuilder($query); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking framework internals is forbidden; use Laravel fakes (Event::fake/Queue::fake/etc.) Evidence: - line 3534: $query = $this->createMock(\Illuminate\Database\Query\Builder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3530: public function testUseCustomBuilderWithUseEloquentBuilderAttribute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3540: public function testDefaultBuilderIsUsedWhenUseEloquentBuilderAttributeIsNotPresent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3540: public function testDefaultBuilderIsUsedWhenUseEloquentBuilderAttributeIsNotPresent() - line 3544: $query = $this->createMock(\Illuminate\Database\Query\Builder::class); - line 3545: $eloquentBuilder = $model->newEloquentBuilder($query); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking framework internals is forbidden; use Laravel fakes (Event::fake/Queue::fake/etc.) Evidence: - line 3544: $query = $this->createMock(\Illuminate\Database\Query\Builder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3540: public function testDefaultBuilderIsUsedWhenUseEloquentBuilderAttributeIsNotPresent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseEloquentMorphOneOfManyTest.php - Test @ line 56: public function testEagerLoadingAppliesConstraintsToInnerJoinSubQuery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 56: public function testEagerLoadingAppliesConstraintsToInnerJoinSubQuery() - line 58: $product = MorphOneOfManyTestProduct::create(); - line 59: $relation = $product->current_state(); - line 60: $relation->addEagerConstraints([$product]); - line 61: $this->assertSame('select MAX("states"."id") as "id_aggregate", "states"."stateful_id", "states"."stateful_type" from "states" where "states"."stateful_type" = ? and "states"."stateful_id" = ? and "states"."stateful_id" is not null and "states"."stateful_id" in (1) and "states"."stateful_type" = ? group by "states"."stateful_id", "states"."stateful_type"', $relation->getOneOfManySubQuery()->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 64: public function testReceivingModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 64: public function testReceivingModel() - line 66: $product = MorphOneOfManyTestProduct::create(); - line 67: $product->states()->create([ - line 70: $product->states()->create([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 78: public function testMorphType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 78: public function testMorphType() - line 80: $product = MorphOneOfManyTestProduct::create(); - line 81: $product->states()->create([ - line 84: $product->states()->create([ - line 87: $state = $product->states()->make([ - line 91: $state->save(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 97: public function testForceCreateMorphType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 97: public function testForceCreateMorphType() - line 99: $product = MorphOneOfManyTestProduct::create(); - line 100: $state = $product->states()->forceCreate([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 108: public function testExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 108: public function testExists() - line 110: $product = MorphOneOfManyTestProduct::create(); - line 111: $previousState = $product->states()->create([ - line 114: $currentState = $product->states()->create([ - line 119: $q->whereKey($previousState->getKey()); - line 124: $q->whereKey($currentState->getKey()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 108: public function testExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 129: public function testWithWhereHas() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 129: public function testWithWhereHas() - line 131: $product = MorphOneOfManyTestProduct::create(); - line 132: $previousState = $product->states()->create([ - line 135: $currentState = $product->states()->create([ - line 140: $q->whereKey($previousState->getKey()); - line 145: $q->whereKey($currentState->getKey()); - line 149: $this->assertTrue($exists->first()->relationLoaded('current_state')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 153: public function testWithWhereRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 153: public function testWithWhereRelation() - line 155: $product = MorphOneOfManyTestProduct::create(); - line 156: $currentState = $product->states()->create([ - line 160: $exists = MorphOneOfManyTestProduct::withWhereRelation('current_state', 'state', 'active')->exists(); - line 166: $this->assertTrue($exists->first()->relationLoaded('current_state')); - line 167: $this->assertSame($exists->first()->current_state->state, $currentState->state); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 170: public function testWithExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 170: public function testWithExists() - line 172: $product = MorphOneOfManyTestProduct::create(); - line 174: $product = MorphOneOfManyTestProduct::withExists('current_state')->first(); - line 177: $product->states()->create([ - line 180: $product = MorphOneOfManyTestProduct::withExists('current_state')->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 184: public function testWithExistsWithConstraintsInJoinSubSelect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 184: public function testWithExistsWithConstraintsInJoinSubSelect() - line 186: $product = MorphOneOfManyTestProduct::create(); - line 188: $product = MorphOneOfManyTestProduct::withExists('current_foo_state')->first(); - line 191: $product->states()->create([ - line 195: $product = MorphOneOfManyTestProduct::withExists('current_foo_state')->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentMorphTest.php - Test @ line 26: public function testMorphOneSetsProperConstraints() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 26: public function testMorphOneSetsProperConstraints() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 31: public function testMorphOneEagerConstraintsAreProperlyAdded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 31: public function testMorphOneEagerConstraintsAreProperlyAdded() - line 33: $relation = $this->getOneRelation(); - line 34: $relation->getParent()->shouldReceive('getKeyName')->once()->andReturn('id'); - line 35: $relation->getParent()->shouldReceive('getKeyType')->once()->andReturn('string'); - line 36: $relation->getQuery()->shouldReceive('whereIn')->once()->with('table.morph_id', [1, 2]); - line 37: $relation->getQuery()->shouldReceive('where')->once()->with('table.morph_type', get_class($relation->getParent())); - line 43: $relation->addEagerConstraints([$model1, $model2]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 31: public function testMorphOneEagerConstraintsAreProperlyAdded() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 50: public function testMorphManySetsProperConstraints() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 50: public function testMorphManySetsProperConstraints() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 55: public function testMorphManyEagerConstraintsAreProperlyAdded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 55: public function testMorphManyEagerConstraintsAreProperlyAdded() - line 57: $relation = $this->getManyRelation(); - line 58: $relation->getParent()->shouldReceive('getKeyName')->once()->andReturn('id'); - line 59: $relation->getParent()->shouldReceive('getKeyType')->once()->andReturn('int'); - line 60: $relation->getQuery()->shouldReceive('whereIntegerInRaw')->once()->with('table.morph_id', [1, 2]); - line 61: $relation->getQuery()->shouldReceive('where')->once()->with('table.morph_type', get_class($relation->getParent())); - line 67: $relation->addEagerConstraints([$model1, $model2]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 55: public function testMorphManyEagerConstraintsAreProperlyAdded() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 70: public function testMorphRelationUpsertFillsForeignKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 70: public function testMorphRelationUpsertFillsForeignKey() - line 72: $relation = $this->getManyRelation(); - line 74: $relation->getQuery()->shouldReceive('upsert')->once()->with( - line 82: $relation->upsert( - line 88: $relation->getQuery()->shouldReceive('upsert')->once()->with( - line 97: $relation->upsert( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 70: public function testMorphRelationUpsertFillsForeignKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 107: public function testMakeFunctionOnMorph() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 107: public function testMakeFunctionOnMorph() - line 111: $relation = $this->getOneRelation(); - line 114: $instance->shouldReceive('setAttribute')->once()->with('morph_type', get_class($relation->getParent())); - line 115: $instance->shouldReceive('save')->never(); - line 116: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['name' => 'taylor'])->andReturn($instance); - line 118: $this->assertEquals($instance, $relation->make(['name' => 'taylor'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 109: $_SERVER['__eloquent.saved'] = false; - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 112: $instance = m::mock(Model::class); - Test @ line 121: public function testCreateFunctionOnMorph() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 121: public function testCreateFunctionOnMorph() - line 124: $relation = $this->getOneRelation(); - line 127: $created->shouldReceive('setAttribute')->once()->with('morph_type', get_class($relation->getParent())); - line 128: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['name' => 'taylor'])->andReturn($created); - line 131: $this->assertEquals($created, $relation->create(['name' => 'taylor'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 125: $created = m::mock(Model::class); - Test @ line 134: public function testFindOrNewMethodFindsModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 134: public function testFindOrNewMethodFindsModel() - line 136: $relation = $this->getOneRelation(); - line 137: $relation->getQuery()->shouldReceive('find')->once()->with('foo', ['*'])->andReturn($model = m::mock(Model::class)); - line 138: $relation->getRelated()->shouldReceive('newInstance')->never(); - line 139: $model->shouldReceive('setAttribute')->never(); - line 140: $model->shouldReceive('save')->never(); - line 142: $this->assertInstanceOf(Model::class, $relation->findOrNew('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 137: $relation->getQuery()->shouldReceive('find')->once()->with('foo', ['*'])->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 134: public function testFindOrNewMethodFindsModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 145: public function testFindOrNewMethodReturnsNewModelWithMorphKeysSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 145: public function testFindOrNewMethodReturnsNewModelWithMorphKeysSet() - line 147: $relation = $this->getOneRelation(); - line 148: $relation->getQuery()->shouldReceive('find')->once()->with('foo', ['*'])->andReturn(null); - line 149: $relation->getRelated()->shouldReceive('newInstance')->once()->with()->andReturn($model = m::mock(Model::class)); - line 151: $model->shouldReceive('setAttribute')->once()->with('morph_type', get_class($relation->getParent())); - line 152: $model->shouldReceive('save')->never(); - line 154: $this->assertInstanceOf(Model::class, $relation->findOrNew('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 149: $relation->getRelated()->shouldReceive('newInstance')->once()->with()->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 145: public function testFindOrNewMethodReturnsNewModelWithMorphKeysSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 157: public function testFirstOrNewMethodFindsFirstModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 157: public function testFirstOrNewMethodFindsFirstModel() - line 159: $relation = $this->getOneRelation(); - line 160: $relation->getQuery()->shouldReceive('where')->once()->with(['foo'])->andReturn($relation->getQuery()); - line 161: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(Model::class)); - line 162: $relation->getRelated()->shouldReceive('newInstance')->never(); - line 163: $model->shouldReceive('setAttribute')->never(); - line 164: $model->shouldReceive('save')->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 161: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 157: public function testFirstOrNewMethodFindsFirstModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 169: public function testFirstOrNewMethodWithValueFindsFirstModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 169: public function testFirstOrNewMethodWithValueFindsFirstModel() - line 171: $relation = $this->getOneRelation(); - line 172: $relation->getQuery()->shouldReceive('where')->once()->with(['foo' => 'bar'])->andReturn($relation->getQuery()); - line 173: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(Model::class)); - line 174: $relation->getRelated()->shouldReceive('newInstance')->never(); - line 175: $model->shouldReceive('setAttribute')->never(); - line 176: $model->shouldReceive('save')->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 173: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 169: public function testFirstOrNewMethodWithValueFindsFirstModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 181: public function testFirstOrNewMethodReturnsNewModelWithMorphKeysSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 181: public function testFirstOrNewMethodReturnsNewModelWithMorphKeysSet() - line 183: $relation = $this->getOneRelation(); - line 184: $relation->getQuery()->shouldReceive('where')->once()->with(['foo'])->andReturn($relation->getQuery()); - line 185: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn(null); - line 186: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo'])->andReturn($model = m::mock(Model::class)); - line 188: $model->shouldReceive('setAttribute')->once()->with('morph_type', get_class($relation->getParent())); - line 189: $model->shouldReceive('save')->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 186: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo'])->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 181: public function testFirstOrNewMethodReturnsNewModelWithMorphKeysSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 194: public function testFirstOrNewMethodWithValuesReturnsNewModelWithMorphKeysSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 194: public function testFirstOrNewMethodWithValuesReturnsNewModelWithMorphKeysSet() - line 196: $relation = $this->getOneRelation(); - line 197: $relation->getQuery()->shouldReceive('where')->once()->with(['foo' => 'bar'])->andReturn($relation->getQuery()); - line 198: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn(null); - line 199: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo' => 'bar', 'baz' => 'qux'])->andReturn($model = m::mock(Model::class)); - line 201: $model->shouldReceive('setAttribute')->once()->with('morph_type', get_class($relation->getParent())); - line 202: $model->shouldReceive('save')->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 199: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo' => 'bar', 'baz' => 'qux'])->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 194: public function testFirstOrNewMethodWithValuesReturnsNewModelWithMorphKeysSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 207: public function testFirstOrCreateMethodFindsFirstModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 207: public function testFirstOrCreateMethodFindsFirstModel() - line 209: $relation = $this->getOneRelation(); - line 210: $relation->getQuery()->shouldReceive('where')->once()->with(['foo'])->andReturn($relation->getQuery()); - line 211: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(Model::class)); - line 212: $relation->getRelated()->shouldReceive('newInstance')->never(); - line 213: $model->shouldReceive('setAttribute')->never(); - line 214: $model->shouldReceive('save')->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 211: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 207: public function testFirstOrCreateMethodFindsFirstModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 219: public function testFirstOrCreateMethodWithValuesFindsFirstModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 219: public function testFirstOrCreateMethodWithValuesFindsFirstModel() - line 221: $relation = $this->getOneRelation(); - line 222: $relation->getQuery()->shouldReceive('where')->once()->with(['foo' => 'bar'])->andReturn($relation->getQuery()); - line 223: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(Model::class)); - line 224: $relation->getRelated()->shouldReceive('newInstance')->never(); - line 225: $model->shouldReceive('setAttribute')->never(); - line 226: $model->shouldReceive('save')->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 223: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 219: public function testFirstOrCreateMethodWithValuesFindsFirstModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 231: public function testFirstOrCreateMethodCreatesNewMorphModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 231: public function testFirstOrCreateMethodCreatesNewMorphModel() - line 233: $relation = $this->getOneRelation(); - line 234: $relation->getQuery()->shouldReceive('where')->once()->with(['foo'])->andReturn($relation->getQuery()); - line 235: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn(null); - line 236: $relation->getQuery()->shouldReceive('withSavepointIfNeeded')->once()->andReturnUsing(fn ($scope) => $scope()); - line 237: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo'])->andReturn($model = m::mock(Model::class)); - line 239: $model->shouldReceive('setAttribute')->once()->with('morph_type', get_class($relation->getParent())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 237: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo'])->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 231: public function testFirstOrCreateMethodCreatesNewMorphModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 245: public function testFirstOrCreateMethodWithValuesCreatesNewMorphModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 245: public function testFirstOrCreateMethodWithValuesCreatesNewMorphModel() - line 247: $relation = $this->getOneRelation(); - line 248: $relation->getQuery()->shouldReceive('where')->once()->with(['foo' => 'bar'])->andReturn($relation->getQuery()); - line 249: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn(null); - line 250: $relation->getQuery()->shouldReceive('withSavepointIfNeeded')->once()->andReturnUsing(fn ($scope) => $scope()); - line 251: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo' => 'bar', 'baz' => 'qux'])->andReturn($model = m::mock(Model::class)); - line 253: $model->shouldReceive('setAttribute')->once()->with('morph_type', get_class($relation->getParent())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 251: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo' => 'bar', 'baz' => 'qux'])->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 245: public function testFirstOrCreateMethodWithValuesCreatesNewMorphModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 259: public function testCreateOrFirstMethodFindsFirstModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 259: public function testCreateOrFirstMethodFindsFirstModel() - line 261: $relation = $this->getOneRelation(); - line 263: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo'])->andReturn($model = m::mock(Model::class)); - line 265: $model->shouldReceive('setAttribute')->once()->with('morph_type', get_class($relation->getParent())); - line 266: $model->shouldReceive('save')->once()->andThrow( - line 270: $relation->getQuery()->shouldReceive('withSavepointIfNeeded')->once()->andReturnUsing(function ($scope) { - line 273: $relation->getQuery()->shouldReceive('useWritePdo')->once()->andReturn($relation->getQuery()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 263: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo'])->andReturn($model = m::mock(Model::class)); - line 275: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 259: public function testCreateOrFirstMethodFindsFirstModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 280: public function testCreateOrFirstMethodWithValuesFindsFirstModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 280: public function testCreateOrFirstMethodWithValuesFindsFirstModel() - line 282: $relation = $this->getOneRelation(); - line 284: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo' => 'bar', 'baz' => 'qux'])->andReturn($model = m::mock(Model::class)); - line 286: $model->shouldReceive('setAttribute')->once()->with('morph_type', get_class($relation->getParent())); - line 287: $model->shouldReceive('save')->once()->andThrow( - line 291: $relation->getQuery()->shouldReceive('withSavepointIfNeeded')->once()->andReturnUsing(function ($scope) { - line 294: $relation->getQuery()->shouldReceive('useWritePdo')->once()->andReturn($relation->getQuery()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 284: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo' => 'bar', 'baz' => 'qux'])->andReturn($model = m::mock(Model::class)); - line 296: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 280: public function testCreateOrFirstMethodWithValuesFindsFirstModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 301: public function testCreateOrFirstMethodCreatesNewMorphModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 301: public function testCreateOrFirstMethodCreatesNewMorphModel() - line 303: $relation = $this->getOneRelation(); - line 305: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo'])->andReturn($model = m::mock(Model::class)); - line 307: $model->shouldReceive('setAttribute')->once()->with('morph_type', get_class($relation->getParent())); - line 310: $relation->getQuery()->shouldReceive('withSavepointIfNeeded')->once()->andReturnUsing(function ($scope) { - line 313: $relation->getQuery()->shouldReceive('where')->never(); - line 314: $relation->getQuery()->shouldReceive('first')->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 305: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo'])->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 301: public function testCreateOrFirstMethodCreatesNewMorphModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 319: public function testCreateOrFirstMethodWithValuesCreatesNewMorphModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 319: public function testCreateOrFirstMethodWithValuesCreatesNewMorphModel() - line 321: $relation = $this->getOneRelation(); - line 323: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo' => 'bar', 'baz' => 'qux'])->andReturn($model = m::mock(Model::class)); - line 325: $model->shouldReceive('setAttribute')->once()->with('morph_type', get_class($relation->getParent())); - line 328: $relation->getQuery()->shouldReceive('withSavepointIfNeeded')->once()->andReturnUsing(function ($scope) { - line 331: $relation->getQuery()->shouldReceive('where')->never(); - line 332: $relation->getQuery()->shouldReceive('first')->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 323: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo' => 'bar', 'baz' => 'qux'])->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 319: public function testCreateOrFirstMethodWithValuesCreatesNewMorphModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 337: public function testUpdateOrCreateMethodFindsFirstModelAndUpdates() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 337: public function testUpdateOrCreateMethodFindsFirstModelAndUpdates() - line 339: $relation = $this->getOneRelation(); - line 340: $relation->getQuery()->shouldReceive('where')->once()->with(['foo'])->andReturn($relation->getQuery()); - line 341: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(Model::class)); - line 342: $relation->getRelated()->shouldReceive('newInstance')->never(); - line 345: $model->shouldReceive('setAttribute')->never(); - line 349: $this->assertInstanceOf(Model::class, $relation->updateOrCreate(['foo'], ['bar'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 341: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 337: public function testUpdateOrCreateMethodFindsFirstModelAndUpdates() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 352: public function testUpdateOrCreateMethodCreatesNewMorphModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 352: public function testUpdateOrCreateMethodCreatesNewMorphModel() - line 354: $relation = $this->getOneRelation(); - line 355: $relation->getQuery()->shouldReceive('withSavepointIfNeeded')->once()->andReturnUsing(function ($scope) { - line 358: $relation->getQuery()->shouldReceive('where')->once()->with(['foo'])->andReturn($relation->getQuery()); - line 359: $relation->getQuery()->shouldReceive('first')->once()->with()->andReturn(null); - line 360: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo', 'bar'])->andReturn($model = m::mock(Model::class)); - line 364: $model->shouldReceive('setAttribute')->once()->with('morph_type', get_class($relation->getParent())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 360: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['foo', 'bar'])->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 352: public function testUpdateOrCreateMethodCreatesNewMorphModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 370: public function testCreateFunctionOnNamespacedMorph() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 370: public function testCreateFunctionOnNamespacedMorph() - line 372: $relation = $this->getNamespacedRelation('namespace'); - line 376: $relation->getRelated()->shouldReceive('newInstance')->once()->with(['name' => 'taylor'])->andReturn($created); - line 379: $this->assertEquals($created, $relation->create(['name' => 'taylor'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 373: $created = m::mock(Model::class); - Test @ line 382: public function testIsNotNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 382: public function testIsNotNull() - line 384: $relation = $this->getOneRelation(); - line 386: $relation->getRelated()->shouldReceive('getTable')->never(); - line 387: $relation->getRelated()->shouldReceive('getConnectionName')->never(); - line 389: $this->assertFalse($relation->is(null)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 392: public function testIsModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 392: public function testIsModel() - line 394: $relation = $this->getOneRelation(); - line 396: $relation->getRelated()->shouldReceive('getTable')->once()->andReturn('table'); - line 397: $relation->getRelated()->shouldReceive('getConnectionName')->once()->andReturn('connection'); - line 404: $this->assertTrue($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 399: $model = m::mock(Model::class); - Test @ line 407: public function testIsModelWithStringRelatedKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 407: public function testIsModelWithStringRelatedKey() - line 409: $relation = $this->getOneRelation(); - line 411: $relation->getRelated()->shouldReceive('getTable')->once()->andReturn('table'); - line 412: $relation->getRelated()->shouldReceive('getConnectionName')->once()->andReturn('connection'); - line 419: $this->assertTrue($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 414: $model = m::mock(Model::class); - Test @ line 422: public function testIsNotModelWithNullRelatedKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 422: public function testIsNotModelWithNullRelatedKey() - line 424: $relation = $this->getOneRelation(); - line 426: $relation->getRelated()->shouldReceive('getTable')->never(); - line 427: $relation->getRelated()->shouldReceive('getConnectionName')->never(); - line 431: $model->shouldReceive('getTable')->never(); - line 432: $model->shouldReceive('getConnectionName')->never(); - line 434: $this->assertFalse($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 429: $model = m::mock(Model::class); - Test @ line 437: public function testIsNotModelWithAnotherRelatedKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 437: public function testIsNotModelWithAnotherRelatedKey() - line 439: $relation = $this->getOneRelation(); - line 441: $relation->getRelated()->shouldReceive('getTable')->never(); - line 442: $relation->getRelated()->shouldReceive('getConnectionName')->never(); - line 446: $model->shouldReceive('getTable')->never(); - line 447: $model->shouldReceive('getConnectionName')->never(); - line 449: $this->assertFalse($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 444: $model = m::mock(Model::class); - Test @ line 452: public function testIsNotModelWithAnotherTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 452: public function testIsNotModelWithAnotherTable() - line 454: $relation = $this->getOneRelation(); - line 456: $relation->getRelated()->shouldReceive('getTable')->once()->andReturn('table'); - line 457: $relation->getRelated()->shouldReceive('getConnectionName')->never(); - line 462: $model->shouldReceive('getConnectionName')->never(); - line 464: $this->assertFalse($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 459: $model = m::mock(Model::class); - Test @ line 467: public function testIsNotModelWithAnotherConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 467: public function testIsNotModelWithAnotherConnection() - line 469: $relation = $this->getOneRelation(); - line 471: $relation->getRelated()->shouldReceive('getTable')->once()->andReturn('table'); - line 472: $relation->getRelated()->shouldReceive('getConnectionName')->once()->andReturn('connection'); - line 479: $this->assertFalse($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 474: $model = m::mock(Model::class); ❌ tests/Database/DatabaseEloquentMorphToTest.php - Test @ line 23: public function testLookupDictionaryIsProperlyConstructedForEnums() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 23: public function testLookupDictionaryIsProperlyConstructedForEnums() - line 25: $relation = $this->getRelation(); - line 26: $relation->addEagerConstraints([ - line 29: $dictionary = $relation->getDictionary(); - line 30: $relation->getDictionary(); - line 36: $this->fail('An enum should contain value property'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testLookupDictionaryIsProperlyConstructedForEnums() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 40: public function testLookupDictionaryIsProperlyConstructed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 40: public function testLookupDictionaryIsProperlyConstructed() - line 50: $relation = $this->getRelation(); - line 51: $relation->addEagerConstraints([ - line 58: $dictionary = $relation->getDictionary(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 40: public function testLookupDictionaryIsProperlyConstructed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 76: public function testMorphToWithDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 76: public function testMorphToWithDefault() - line 78: $relation = $this->getRelation()->withDefault(); - line 80: $this->builder->shouldReceive('first')->once()->andReturnNull(); - line 84: $this->assertEquals($newModel, $relation->getResults()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 87: public function testMorphToWithDynamicDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 87: public function testMorphToWithDynamicDefault() - line 89: $relation = $this->getRelation()->withDefault(function ($newModel) { - line 93: $this->builder->shouldReceive('first')->once()->andReturnNull(); - line 98: $result = $relation->getResults(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 87: public function testMorphToWithDynamicDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 105: public function testMorphToWithArrayDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 105: public function testMorphToWithArrayDefault() - line 107: $relation = $this->getRelation()->withDefault(['username' => 'taylor']); - line 109: $this->builder->shouldReceive('first')->once()->andReturnNull(); - line 114: $result = $relation->getResults(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 105: public function testMorphToWithArrayDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 121: public function testMorphToWithZeroMorphType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 121: public function testMorphToWithZeroMorphType() - line 123: $parent = $this->getMockBuilder(EloquentMorphToModelStub::class)->onlyMethods(['getAttributeFromArray', 'morphEagerTo', 'morphInstanceTo'])->getMock(); - line 124: $parent->method('getAttributeFromArray')->with('relation_type')->willReturn(0); - line 125: $parent->expects($this->once())->method('morphInstanceTo'); - line 126: $parent->expects($this->never())->method('morphEagerTo'); - line 128: $parent->relation(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 121: public function testMorphToWithZeroMorphType() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 131: public function testMorphToWithEmptyStringMorphType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 131: public function testMorphToWithEmptyStringMorphType() - line 133: $parent = $this->getMockBuilder(EloquentMorphToModelStub::class)->onlyMethods(['getAttributeFromArray', 'morphEagerTo', 'morphInstanceTo'])->getMock(); - line 134: $parent->method('getAttributeFromArray')->with('relation_type')->willReturn(''); - line 135: $parent->expects($this->once())->method('morphEagerTo'); - line 136: $parent->expects($this->never())->method('morphInstanceTo'); - line 138: $parent->relation(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 131: public function testMorphToWithEmptyStringMorphType() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 141: public function testMorphToWithSpecifiedClassDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 141: public function testMorphToWithSpecifiedClassDefault() - line 146: $relation = $parent->relation()->withDefault(); - line 150: $result = $relation->getResults(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 141: public function testMorphToWithSpecifiedClassDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 155: public function testAssociateMethodSetsForeignKeyAndTypeOnModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 155: public function testAssociateMethodSetsForeignKeyAndTypeOnModel() - line 157: $parent = m::mock(Model::class); - line 160: $relation = $this->getRelationAssociate($parent); - line 170: $relation->associate($associate); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 157: $parent = m::mock(Model::class); - line 162: $associate = m::mock(Model::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 155: public function testAssociateMethodSetsForeignKeyAndTypeOnModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 173: public function testAssociateMethodIgnoresNullValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 173: public function testAssociateMethodIgnoresNullValue() - line 175: $parent = m::mock(Model::class); - line 178: $relation = $this->getRelationAssociate($parent); - line 184: $relation->associate(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 175: $parent = m::mock(Model::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 173: public function testAssociateMethodIgnoresNullValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 187: public function testDissociateMethodDeletesUnsetsKeyAndTypeOnModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 187: public function testDissociateMethodDeletesUnsetsKeyAndTypeOnModel() - line 189: $parent = m::mock(Model::class); - line 192: $relation = $this->getRelation($parent); - line 198: $relation->dissociate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 189: $parent = m::mock(Model::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 187: public function testDissociateMethodDeletesUnsetsKeyAndTypeOnModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 201: public function testIsNotNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 201: public function testIsNotNull() - line 203: $relation = $this->getRelation(); - line 205: $relation->getRelated()->shouldReceive('getTable')->never(); - line 206: $relation->getRelated()->shouldReceive('getConnectionName')->never(); - line 208: $this->assertFalse($relation->is(null)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 211: public function testIsModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 211: public function testIsModel() - line 213: $relation = $this->getRelation(); - line 222: $this->assertTrue($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 217: $model = m::mock(Model::class); - Test @ line 225: public function testIsModelWithIntegerParentKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 225: public function testIsModelWithIntegerParentKey() - line 227: $parent = m::mock(Model::class); - line 233: $relation = $this->getRelation($parent); - line 242: $this->assertTrue($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 227: $parent = m::mock(Model::class); - line 237: $model = m::mock(Model::class); - Test @ line 245: public function testIsModelWithIntegerRelatedKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 245: public function testIsModelWithIntegerRelatedKey() - line 247: $parent = m::mock(Model::class); - line 253: $relation = $this->getRelation($parent); - line 262: $this->assertTrue($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 247: $parent = m::mock(Model::class); - line 257: $model = m::mock(Model::class); - Test @ line 265: public function testIsModelWithIntegerKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 265: public function testIsModelWithIntegerKeys() - line 267: $parent = m::mock(Model::class); - line 274: $relation = $this->getRelation($parent); - line 283: $this->assertTrue($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 267: $parent = m::mock(Model::class); - line 278: $model = m::mock(Model::class); - Test @ line 286: public function testIsNotModelWithNullParentKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 286: public function testIsNotModelWithNullParentKey() - line 288: $parent = m::mock(Model::class); - line 296: $relation = $this->getRelation($parent); - line 298: $this->related->shouldReceive('getConnectionName')->never(); - line 302: $model->shouldReceive('getTable')->never(); - line 303: $model->shouldReceive('getConnectionName')->never(); - line 305: $this->assertFalse($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 288: $parent = m::mock(Model::class); - line 300: $model = m::mock(Model::class); - Test @ line 308: public function testIsNotModelWithNullRelatedKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 308: public function testIsNotModelWithNullRelatedKey() - line 310: $relation = $this->getRelation(); - line 312: $this->related->shouldReceive('getConnectionName')->never(); - line 316: $model->shouldReceive('getTable')->never(); - line 317: $model->shouldReceive('getConnectionName')->never(); - line 319: $this->assertFalse($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 314: $model = m::mock(Model::class); - Test @ line 322: public function testIsNotModelWithAnotherKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 322: public function testIsNotModelWithAnotherKey() - line 324: $relation = $this->getRelation(); - line 326: $this->related->shouldReceive('getConnectionName')->never(); - line 330: $model->shouldReceive('getTable')->never(); - line 331: $model->shouldReceive('getConnectionName')->never(); - line 333: $this->assertFalse($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 328: $model = m::mock(Model::class); - Test @ line 336: public function testIsNotModelWithAnotherTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 336: public function testIsNotModelWithAnotherTable() - line 338: $relation = $this->getRelation(); - line 340: $this->related->shouldReceive('getConnectionName')->never(); - line 345: $model->shouldReceive('getConnectionName')->never(); - line 347: $this->assertFalse($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 342: $model = m::mock(Model::class); - Test @ line 350: public function testIsNotModelWithAnotherConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 350: public function testIsNotModelWithAnotherConnection() - line 352: $relation = $this->getRelation(); - line 361: $this->assertFalse($relation->is($model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 356: $model = m::mock(Model::class); ❌ tests/Database/DatabaseEloquentPivotTest.php - Test @ line 22: public function testPropertiesAreSetCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 22: public function testPropertiesAreSetCorrectly() - line 24: $parent = m::mock(Model::class.'[getConnectionName]'); - line 26: $parent->setConnectionResolver($resolver = m::mock(ConnectionResolverInterface::class)); - line 30: $parent->getConnection()->getQueryGrammar()->shouldReceive('getDateFormat')->andReturn('Y-m-d H:i:s'); - line 31: $parent->setDateFormat('Y-m-d H:i:s'); - line 34: $this->assertEquals(['foo' => 'bar', 'created_at' => '2015-09-12 00:00:00'], $pivot->getAttributes()); - line 35: $this->assertSame('connection', $pivot->getConnectionName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 26: $parent->setConnectionResolver($resolver = m::mock(ConnectionResolverInterface::class)); - line 27: $resolver->shouldReceive('connection')->andReturn($connection = m::mock(Connection::class)); - line 28: $connection->shouldReceive('getQueryGrammar')->andReturn($grammar = m::mock(Grammar::class)); - line 29: $connection->shouldReceive('getPostProcessor')->andReturn($processor = m::mock(Processor::class)); - Test @ line 41: public function testMutatorsAreCalledFromConstructor() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 41: public function testMutatorsAreCalledFromConstructor() - line 43: $parent = m::mock(Model::class.'[getConnectionName]'); - line 48: $this->assertTrue($pivot->getMutatorCalled()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 51: public function testFromRawAttributesDoesNotDoubleMutate() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 51: public function testFromRawAttributesDoesNotDoubleMutate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 61: public function testFromRawAttributesDoesNotMutate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 61: public function testFromRawAttributesDoesNotMutate() - line 63: $parent = m::mock(Model::class.'[getConnectionName]'); - line 68: $this->assertFalse($pivot->getMutatorCalled()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 71: public function testPropertiesUnchangedAreNotDirty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 71: public function testPropertiesUnchangedAreNotDirty() - line 73: $parent = m::mock(Model::class.'[getConnectionName]'); - line 77: $this->assertEquals([], $pivot->getDirty()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 80: public function testPropertiesChangedAreDirty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 80: public function testPropertiesChangedAreDirty() - line 82: $parent = m::mock(Model::class.'[getConnectionName]'); - line 87: $this->assertEquals(['shimy' => 'changed'], $pivot->getDirty()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 90: public function testTimestampPropertyIsSetIfCreatedAtInAttributes() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 90: public function testTimestampPropertyIsSetIfCreatedAtInAttributes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 102: public function testTimestampPropertyIsTrueWhenCreatingFromRawAttributes() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 102: public function testTimestampPropertyIsTrueWhenCreatingFromRawAttributes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 110: public function testKeysCanBeSetProperly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 110: public function testKeysCanBeSetProperly() - line 112: $parent = m::mock(Model::class.'[getConnectionName]'); - line 115: $pivot->setPivotKeys('foreign', 'other'); - line 117: $this->assertSame('foreign', $pivot->getForeignKey()); - line 118: $this->assertSame('other', $pivot->getOtherKey()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 121: public function testDeleteMethodDeletesModelByKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 121: public function testDeleteMethodDeletesModelByKeys() - line 123: $pivot = $this->getMockBuilder(Pivot::class)->onlyMethods(['newQueryWithoutRelationships'])->getMock(); - line 124: $pivot->setPivotKeys('foreign', 'other'); - line 130: $pivot->expects($this->once())->method('newQueryWithoutRelationships')->willReturn($query); - line 132: $rowsAffected = $pivot->delete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 127: $query = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 121: public function testDeleteMethodDeletesModelByKeys() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 143: public function testPivotModelWithParentReturnsParentsTimestampColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 143: public function testPivotModelWithParentReturnsParentsTimestampColumns() - line 145: $parent = m::mock(Model::class); - line 152: $this->assertSame('parent_created_at', $pivotWithParent->getCreatedAtColumn()); - line 153: $this->assertSame('parent_updated_at', $pivotWithParent->getUpdatedAtColumn()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 145: $parent = m::mock(Model::class); - Test @ line 156: public function testPivotModelWithoutParentReturnsModelTimestampColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 156: public function testPivotModelWithoutParentReturnsModelTimestampColumns() - line 162: $this->assertEquals($model->getCreatedAtColumn(), $pivotWithoutParent->getCreatedAtColumn()); - line 163: $this->assertEquals($model->getUpdatedAtColumn(), $pivotWithoutParent->getUpdatedAtColumn()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 166: public function testWithoutRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 166: public function testWithoutRelations() - line 171: $original->setRelation('bar', 'baz'); - line 173: $this->assertSame('baz', $original->getRelation('bar')); - line 175: $pivot = $original->withoutRelations(); - line 181: $this->assertTrue($original->relationLoaded('bar')); - line 182: $this->assertFalse($pivot->relationLoaded('bar')); - line 184: $pivot = $original->unsetRelations(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentPolymorphicIntegrationTest.php - Test @ line 76: public function testItLoadsRelationshipsAutomatically() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 76: public function testItLoadsRelationshipsAutomatically() - line 78: $this->seedData(); - line 82: $this->assertTrue($like->relationLoaded('likeable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 86: public function testItLoadsChainedRelationshipsAutomatically() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 86: public function testItLoadsChainedRelationshipsAutomatically() - line 88: $this->seedData(); - line 92: $this->assertTrue($like->likeable->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 96: public function testItLoadsNestedRelationshipsAutomatically() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 96: public function testItLoadsNestedRelationshipsAutomatically() - line 98: $this->seedData(); - line 102: $this->assertTrue($like->relationLoaded('likeable')); - line 103: $this->assertTrue($like->likeable->relationLoaded('owner')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 108: public function testItLoadsNestedRelationshipsOnDemand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 108: public function testItLoadsNestedRelationshipsOnDemand() - line 110: $this->seedData(); - line 112: $like = TestLike::with('likeable.owner')->first(); - line 114: $this->assertTrue($like->relationLoaded('likeable')); - line 115: $this->assertTrue($like->likeable->relationLoaded('owner')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 120: public function testItLoadsNestedMorphRelationshipsOnDemand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 120: public function testItLoadsNestedMorphRelationshipsOnDemand() - line 122: $this->seedData(); - line 124: TestPost::first()->likes()->create([]); - line 126: $likes = TestLike::with('likeable.owner')->get()->loadMorph('likeable', [ - line 131: $this->assertTrue($likes[0]->relationLoaded('likeable')); - line 132: $this->assertTrue($likes[0]->likeable->relationLoaded('owner')); - line 133: $this->assertTrue($likes[0]->likeable->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 140: public function testItLoadsNestedMorphRelationshipCountsOnDemand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 140: public function testItLoadsNestedMorphRelationshipCountsOnDemand() - line 142: $this->seedData(); - line 144: TestPost::first()->likes()->create([]); - line 145: TestComment::first()->likes()->create([]); - line 147: $likes = TestLike::with('likeable.owner')->get()->loadMorphCount('likeable', [ - line 152: $this->assertTrue($likes[0]->relationLoaded('likeable')); - line 153: $this->assertTrue($likes[0]->likeable->relationLoaded('owner')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentPolymorphicRelationsIntegrationTest.php - Test @ line 73: public function testCreation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 73: public function testCreation() - line 75: $post = EloquentManyToManyPolymorphicTestPost::create(); - line 80: $post->tags()->attach($tag->id); - line 81: $post->tags()->attach($tag2->id); - line 82: $image->tags()->attach($tag->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 92: public function testEagerLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 92: public function testEagerLoading() - line 94: $post = EloquentManyToManyPolymorphicTestPost::create(); - line 96: $post->tags()->attach($tag->id); - line 98: $post = EloquentManyToManyPolymorphicTestPost::with('tags')->whereId(1)->first(); - line 99: $tag = EloquentManyToManyPolymorphicTestTag::with('posts')->whereId(1)->first(); - line 101: $this->assertTrue($post->relationLoaded('tags')); - line 102: $this->assertTrue($tag->relationLoaded('posts')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 107: public function testChunkById() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 107: public function testChunkById() - line 109: $post = EloquentManyToManyPolymorphicTestPost::create(); - line 113: $post->tags()->attach([$tag1->id, $tag2->id, $tag3->id]); - line 117: $post->tags()->chunkById(2, function ($tags) use (&$iterations, &$count) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 107: public function testChunkById() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseEloquentRelationshipsTest.php - Test @ line 26: public function testStandardRelationships() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 26: public function testStandardRelationships() - line 30: $this->assertInstanceOf(HasOne::class, $post->attachment()); - line 31: $this->assertInstanceOf(BelongsTo::class, $post->author()); - line 32: $this->assertInstanceOf(HasMany::class, $post->comments()); - line 33: $this->assertInstanceOf(MorphOne::class, $post->owner()); - line 34: $this->assertInstanceOf(MorphMany::class, $post->likes()); - line 35: $this->assertInstanceOf(BelongsToMany::class, $post->viewers()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 26: public function testStandardRelationships() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 42: public function testOverriddenRelationships() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 42: public function testOverriddenRelationships() - line 46: $this->assertInstanceOf(CustomHasOne::class, $post->attachment()); - line 47: $this->assertInstanceOf(CustomBelongsTo::class, $post->author()); - line 48: $this->assertInstanceOf(CustomHasMany::class, $post->comments()); - line 49: $this->assertInstanceOf(CustomMorphOne::class, $post->owner()); - line 50: $this->assertInstanceOf(CustomMorphMany::class, $post->likes()); - line 51: $this->assertInstanceOf(CustomBelongsToMany::class, $post->viewers()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 42: public function testOverriddenRelationships() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 58: public function testAlwaysUnsetBelongsToRelationWhenReceivedModelId() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 58: public function testAlwaysUnsetBelongsToRelationWhenReceivedModelId() - line 61: $user1 = (new FakeRelationship)->forceFill(['id' => 1]); - line 62: $user2 = (new FakeRelationship)->forceFill(['id' => 2]); - line 66: $post->author()->associate($user1); - line 67: $post->syncOriginal(); - line 70: $post->author()->associate($user2); - line 71: $this->assertTrue($post->isDirty()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 83: public function testPendingHasThroughRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 42. Evidence: - line 83: public function testPendingHasThroughRelationship() - line 85: $fluent = (new FluentMechanic())->owner(); - line 86: $classic = (new ClassicMechanic())->owner(); - line 90: $this->assertSame('m_id', $classic->getLocalKeyName()); - line 91: $this->assertSame('m_id', $fluent->getLocalKeyName()); - line 92: $this->assertSame('c_id', $classic->getSecondLocalKeyName()); - line 93: $this->assertSame('c_id', $fluent->getSecondLocalKeyName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 140: public function testStringyHasThroughApi() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 28. Evidence: - line 140: public function testStringyHasThroughApi() - line 142: $fluent = (new FluentMechanic())->owner(); - line 147: return $this->through('car')->has('owner'); - line 158: $this->assertSame('m_id', $fluent->getLocalKeyName()); - line 159: $this->assertSame('m_id', $stringy->getLocalKeyName()); - line 160: $this->assertSame('c_id', $fluent->getSecondLocalKeyName()); - line 161: $this->assertSame('c_id', $stringy->getSecondLocalKeyName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 201: public function testHigherOrderHasThroughApi() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 28. Evidence: - line 201: public function testHigherOrderHasThroughApi() - line 203: $fluent = (new FluentMechanic())->owner(); - line 208: return $this->throughCar()->hasOwner(); - line 219: $this->assertSame('m_id', $fluent->getLocalKeyName()); - line 220: $this->assertSame('m_id', $higher->getLocalKeyName()); - line 221: $this->assertSame('c_id', $fluent->getSecondLocalKeyName()); - line 222: $this->assertSame('c_id', $higher->getSecondLocalKeyName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentRelationTest.php - Test @ line 23: public function testSetRelationFail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 23: public function testSetRelationFail() - line 27: $parent->setRelation('test', $relation); - line 28: $parent->setRelation('foo', 'bar'); - line 29: $this->assertArrayNotHasKey('foo', $parent->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testSetRelationFail() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 32: public function testUnsetExistingRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 32: public function testUnsetExistingRelation() - line 36: $parent->setRelation('foo', $relation); - line 37: $parent->unsetRelation('foo'); - line 38: $this->assertFalse($parent->relationLoaded('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 41: public function testTouchMethodUpdatesRelatedTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 41: public function testTouchMethodUpdatesRelatedTimestamps() - line 43: $builder = m::mock(Builder::class); - line 46: $related = m::mock(EloquentNoTouchingModelStub::class)->makePartial(); - line 58: $relation->touch(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 43: $builder = m::mock(Builder::class); - line 44: $parent = m::mock(Model::class); - line 46: $related = m::mock(EloquentNoTouchingModelStub::class)->makePartial(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 41: public function testTouchMethodUpdatesRelatedTimestamps() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 61: public function testCanDisableParentTouchingForAllModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 61: public function testCanDisableParentTouchingForAllModels() - line 64: $related = m::mock(EloquentNoTouchingModelStub::class)->makePartial(); - line 65: $related->shouldReceive('getUpdatedAtColumn')->never(); - line 66: $related->shouldReceive('freshTimestampString')->never(); - line 82: $builder->shouldReceive('update')->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 64: $related = m::mock(EloquentNoTouchingModelStub::class)->makePartial(); - line 73: $builder = m::mock(Builder::class); - line 74: $parent = m::mock(Model::class); - Test @ line 90: public function testCanDisableTouchingForSpecificModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 90: public function testCanDisableTouchingForSpecificModel() - line 92: $related = m::mock(EloquentNoTouchingModelStub::class)->makePartial(); - line 93: $related->shouldReceive('getUpdatedAtColumn')->never(); - line 94: $related->shouldReceive('freshTimestampString')->never(); - line 96: $anotherRelated = m::mock(EloquentNoTouchingAnotherModelStub::class)->makePartial(); - line 112: $builder->shouldReceive('withoutGlobalScopes')->andReturnSelf(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 92: $related = m::mock(EloquentNoTouchingModelStub::class)->makePartial(); - line 96: $anotherRelated = m::mock(EloquentNoTouchingAnotherModelStub::class)->makePartial(); - line 105: $builder = m::mock(Builder::class); - line 106: $parent = m::mock(Model::class); - line 118: $anotherBuilder = m::mock(Builder::class); - line 119: $anotherParent = m::mock(Model::class); - Test @ line 138: public function testParentModelIsNotTouchedWhenChildModelIsIgnored() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 138: public function testParentModelIsNotTouchedWhenChildModelIsIgnored() - line 140: $related = m::mock(EloquentNoTouchingModelStub::class)->makePartial(); - line 141: $related->shouldReceive('getUpdatedAtColumn')->never(); - line 142: $related->shouldReceive('freshTimestampString')->never(); - line 144: $relatedChild = m::mock(EloquentNoTouchingChildModelStub::class)->makePartial(); - line 145: $relatedChild->shouldReceive('getUpdatedAtColumn')->never(); - line 146: $relatedChild->shouldReceive('freshTimestampString')->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 140: $related = m::mock(EloquentNoTouchingModelStub::class)->makePartial(); - line 144: $relatedChild = m::mock(EloquentNoTouchingChildModelStub::class)->makePartial(); - line 155: $builder = m::mock(Builder::class); - line 156: $parent = m::mock(Model::class); - line 168: $anotherBuilder = m::mock(Builder::class); - line 169: $anotherParent = m::mock(Model::class); - Test @ line 186: public function testIgnoredModelsStateIsResetWhenThereAreExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 186: public function testIgnoredModelsStateIsResetWhenThereAreExceptions() - line 188: $related = m::mock(EloquentNoTouchingModelStub::class)->makePartial(); - line 189: $related->shouldReceive('getUpdatedAtColumn')->never(); - line 190: $related->shouldReceive('freshTimestampString')->never(); - line 192: $relatedChild = m::mock(EloquentNoTouchingChildModelStub::class)->makePartial(); - line 193: $relatedChild->shouldReceive('getUpdatedAtColumn')->never(); - line 194: $relatedChild->shouldReceive('freshTimestampString')->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 188: $related = m::mock(EloquentNoTouchingModelStub::class)->makePartial(); - line 192: $relatedChild = m::mock(EloquentNoTouchingChildModelStub::class)->makePartial(); - Test @ line 246: public function testWithoutRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 246: public function testWithoutRelations() - line 250: $original->setRelation('foo', 'baz'); - line 252: $this->assertSame('baz', $original->getRelation('foo')); - line 254: $model = $original->withoutRelations(); - line 257: $this->assertTrue($original->relationLoaded('foo')); - line 258: $this->assertFalse($model->relationLoaded('foo')); - line 260: $model = $original->unsetRelations(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 267: public function testMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 267: public function testMacroable() - line 269: Relation::macro('foo', function () { - line 274: $relation = new EloquentRelationStub($model->newQuery(), $model); - line 276: $result = $relation->foo(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 267: public function testMacroable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 280: public function testIsRelationIgnoresAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 280: public function testIsRelationIgnoresAttribute() - line 284: $this->assertTrue($model->isRelation('parent')); - line 285: $this->assertFalse($model->isRelation('field')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentResourceCollectionTest.php - Test @ line 18: public function testItCanTransformToExplicitResource() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 18: public function testItCanTransformToExplicitResource() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 29: public function testItThrowsExceptionWhenResourceCannotBeFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 29: public function testItThrowsExceptionWhenResourceCannotBeFound() - line 31: $this->expectException(\LogicException::class); - line 32: $this->expectExceptionMessage('Failed to find resource class for model [Illuminate\Tests\Database\Fixtures\Models\EloquentResourceCollectionTestModel].'); - line 37: $collection->toResourceCollection(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 29: public function testItThrowsExceptionWhenResourceCannotBeFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 40: public function testItCanGuessResourceWhenNotProvided() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 40: public function testItCanGuessResourceWhenNotProvided() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 53: public function testItCanTransformToResourceViaUseResourceAttribute() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 53: public function testItCanTransformToResourceViaUseResourceAttribute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 64: public function testItCanTransformToResourceViaUseResourceCollectionAttribute() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 64: public function testItCanTransformToResourceViaUseResourceCollectionAttribute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseEloquentResourceModelTest.php - Test @ line 22: public function testItThrowsExceptionWhenResourceCannotBeFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 22: public function testItThrowsExceptionWhenResourceCannotBeFound() - line 24: $this->expectException(\LogicException::class); - line 25: $this->expectExceptionMessage('Failed to find resource class for model [Illuminate\Tests\Database\Fixtures\Models\EloquentResourceTestResourceModel].'); - line 28: $model->toResource(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 22: public function testItThrowsExceptionWhenResourceCannotBeFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseEloquentSoftDeletesIntegrationTest.php - Test @ line 106: public function testSoftDeletesAreNotRetrieved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 106: public function testSoftDeletesAreNotRetrieved() - line 108: $this->createUsers(); - line 113: $this->assertEquals(2, $users->first()->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 117: public function testSoftDeletesAreNotRetrievedFromBaseQuery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 117: public function testSoftDeletesAreNotRetrievedFromBaseQuery() - line 119: $this->createUsers(); - line 121: $query = SoftDeletesTestUser::query()->toBase(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 127: public function testSoftDeletesAreNotRetrievedFromRelationshipBaseQuery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 127: public function testSoftDeletesAreNotRetrievedFromRelationshipBaseQuery() - line 129: [, $abigail] = $this->createUsers(); - line 131: $abigail->posts()->create(['title' => 'Foo']); - line 132: $abigail->posts()->create(['title' => 'Bar'])->delete(); - line 134: $query = $abigail->posts()->toBase(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 140: public function testSoftDeletesAreNotRetrievedFromBuilderHelpers() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 140: public function testSoftDeletesAreNotRetrievedFromBuilderHelpers() - line 142: $this->createUsers(); - line 146: $query->chunk(2, function ($user) use (&$count) { - line 152: $this->assertCount(1, $query->pluck('email')->all()); - line 163: $this->assertCount(1, $query->paginate(2)->all()); - line 166: $this->assertCount(1, $query->simplePaginate(2)->all()); - line 169: $this->assertCount(1, $query->cursorPaginate(2)->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 175: public function testWithTrashedReturnsAllRecords() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 175: public function testWithTrashedReturnsAllRecords() - line 177: $this->createUsers(); - line 180: $this->assertInstanceOf(Eloquent::class, SoftDeletesTestUser::withTrashed()->find(1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 191: public function testDeleteSetsDeletedColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 191: public function testDeleteSetsDeletedColumn() - line 193: $this->createUsers(); - line 195: $this->assertInstanceOf(Carbon::class, SoftDeletesTestUser::withTrashed()->find(1)->deleted_at); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 191: public function testDeleteSetsDeletedColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 199: public function testForceDeleteActuallyDeletesRecords() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 199: public function testForceDeleteActuallyDeletesRecords() - line 201: $this->createUsers(); - line 202: SoftDeletesTestUser::find(2)->forceDelete(); - line 207: $this->assertEquals(1, $users->first()->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 210: public function testForceDeleteUpdateExistsProperty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 210: public function testForceDeleteUpdateExistsProperty() - line 212: $this->createUsers(); - line 217: $user->forceDelete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 222: public function testForceDeleteDoesntUpdateExistsPropertyIfFailed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 222: public function testForceDeleteDoesntUpdateExistsPropertyIfFailed() - line 231: $mock->shouldReceive('forceDelete')->andThrow(new Exception()); - line 239: $user->forceDelete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 222: public function testForceDeleteDoesntUpdateExistsPropertyIfFailed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 246: public function testForceDestroyFullyDeletesRecord() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 246: public function testForceDestroyFullyDeletesRecord() - line 248: $this->createUsers(); - line 256: $this->assertEquals(1, $users->first()->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 260: public function testForceDestroyDeletesAlreadyDeletedRecord() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 260: public function testForceDestroyDeletesAlreadyDeletedRecord() - line 262: $this->createUsers(); - line 270: $this->assertEquals(2, $users->first()->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 274: public function testForceDestroyDeletesMultipleRecords() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 274: public function testForceDestroyDeletesMultipleRecords() - line 276: $this->createUsers(); - line 281: $this->assertTrue(SoftDeletesTestUser::withTrashed()->get()->isEmpty()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 284: public function testForceDestroyDeletesRecordsFromCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 284: public function testForceDestroyDeletesRecordsFromCollection() - line 286: $this->createUsers(); - line 291: $this->assertTrue(SoftDeletesTestUser::withTrashed()->get()->isEmpty()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 294: public function testForceDestroyDeletesRecordsFromEloquentCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 294: public function testForceDestroyDeletesRecordsFromEloquentCollection() - line 296: $this->createUsers(); - line 304: $this->assertEquals(1, $users->first()->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 308: public function testRestoreRestoresRecords() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 308: public function testRestoreRestoresRecords() - line 310: $this->createUsers(); - line 311: $taylor = SoftDeletesTestUser::withTrashed()->find(1); - line 313: $this->assertTrue($taylor->trashed()); - line 315: $taylor->restore(); - line 320: $this->assertNull($users->find(1)->deleted_at); - line 321: $this->assertNull($users->find(2)->deleted_at); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 324: public function testOnlyTrashedOnlyReturnsTrashedRecords() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 324: public function testOnlyTrashedOnlyReturnsTrashedRecords() - line 326: $this->createUsers(); - line 331: $this->assertEquals(1, $users->first()->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 334: public function testOnlyWithoutTrashedOnlyReturnsTrashedRecords() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 334: public function testOnlyWithoutTrashedOnlyReturnsTrashedRecords() - line 336: $this->createUsers(); - line 341: $this->assertEquals(2, $users->first()->id); - line 343: $users = SoftDeletesTestUser::withTrashed()->withoutTrashed()->get(); - line 346: $this->assertEquals(2, $users->first()->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 349: public function testFirstOrNew() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 349: public function testFirstOrNew() - line 351: $this->createUsers(); - line 356: $result = SoftDeletesTestUser::withTrashed()->firstOrNew(['email' => 'taylorotwell@gmail.com']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 360: public function testFindOrNew() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 360: public function testFindOrNew() - line 362: $this->createUsers(); - line 367: $result = SoftDeletesTestUser::withTrashed()->findOrNew(1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 371: public function testFirstOrCreate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 371: public function testFirstOrCreate() - line 373: $this->createUsers(); - line 375: $result = SoftDeletesTestUser::withTrashed()->firstOrCreate(['email' => 'taylorotwell@gmail.com']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 385: public function testCreateOrFirst() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 385: public function testCreateOrFirst() - line 387: $this->createUsers(); - line 389: $result = SoftDeletesTestUser::withTrashed()->createOrFirst(['email' => 'taylorotwell@gmail.com']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 402: public function testUpdateModelAfterSoftDeleting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 402: public function testUpdateModelAfterSoftDeleting() - line 405: $this->createUsers(); - line 409: $userModel->delete(); - line 410: $this->assertEquals($now->toDateTimeString(), $userModel->getOriginal('deleted_at')); - line 412: $this->assertEquals($userModel, SoftDeletesTestUser::withTrashed()->find(2)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 418: public function testRestoreAfterSoftDelete() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 418: public function testRestoreAfterSoftDelete() - line 420: $this->createUsers(); - line 424: $userModel->delete(); - line 425: $userModel->restore(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 433: public function testSoftDeleteAfterRestoring() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 433: public function testSoftDeleteAfterRestoring() - line 435: $this->createUsers(); - line 438: $userModel = SoftDeletesTestUser::withTrashed()->find(1); - line 439: $userModel->restore(); - line 441: $this->assertEquals($userModel->getOriginal('deleted_at'), SoftDeletesTestUser::find(1)->deleted_at); - line 442: $userModel->delete(); - line 444: $this->assertEquals($userModel->deleted_at, SoftDeletesTestUser::withTrashed()->find(1)->deleted_at); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 448: public function testModifyingBeforeSoftDeletingAndRestoring() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 448: public function testModifyingBeforeSoftDeletingAndRestoring() - line 450: $this->createUsers(); - line 455: $userModel->delete(); - line 456: $userModel->restore(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 462: public function testUpdateOrCreate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 462: public function testUpdateOrCreate() - line 464: $this->createUsers(); - line 470: $result = SoftDeletesTestUser::withTrashed()->updateOrCreate(['email' => 'taylorotwell@gmail.com'], ['email' => 'foo@bar.com']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 476: public function testHasOneRelationshipCanBeSoftDeleted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 476: public function testHasOneRelationshipCanBeSoftDeleted() - line 478: $this->createUsers(); - line 480: $abigail = SoftDeletesTestUser::where('email', 'abigailotwell@gmail.com')->first(); - line 481: $abigail->address()->create(['address' => 'Laravel avenue 43']); - line 484: $abigail->address()->delete(); - line 486: $abigail = $abigail->fresh(); - line 489: $this->assertSame('Laravel avenue 43', $abigail->address()->withTrashed()->first()->address); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 514: public function testBelongsToRelationshipCanBeSoftDeleted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 514: public function testBelongsToRelationshipCanBeSoftDeleted() - line 516: $this->createUsers(); - line 518: $abigail = SoftDeletesTestUser::where('email', 'abigailotwell@gmail.com')->first(); - line 520: $abigail->group()->associate($group); - line 521: $abigail->save(); - line 524: $abigail->group()->delete(); - line 526: $abigail = $abigail->fresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 554: public function testHasManyRelationshipCanBeSoftDeleted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 554: public function testHasManyRelationshipCanBeSoftDeleted() - line 556: $this->createUsers(); - line 558: $abigail = SoftDeletesTestUser::where('email', 'abigailotwell@gmail.com')->first(); - line 559: $abigail->posts()->create(['title' => 'First Title']); - line 560: $abigail->posts()->create(['title' => 'Second Title']); - line 563: $abigail->posts()->where('title', 'Second Title')->delete(); - line 565: $abigail = $abigail->fresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 587: public function testRelationToSqlAppliesSoftDelete() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 587: public function testRelationToSqlAppliesSoftDelete() - line 589: $this->createUsers(); - line 591: $abigail = SoftDeletesTestUser::where('email', 'abigailotwell@gmail.com')->first(); - line 595: $abigail->posts()->toSql() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 599: public function testRelationExistsAndDoesntExistHonorsSoftDelete() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 599: public function testRelationExistsAndDoesntExistHonorsSoftDelete() - line 601: $this->createUsers(); - line 602: $abigail = SoftDeletesTestUser::where('email', 'abigailotwell@gmail.com')->first(); - line 605: $abigail->posts()->create(['title' => 'First Title']); - line 606: $this->assertTrue($abigail->posts()->exists()); - line 607: $this->assertFalse($abigail->posts()->doesntExist()); - line 610: $abigail->posts()->first()->delete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 625: public function testRelationCountHonorsSoftDelete() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 625: public function testRelationCountHonorsSoftDelete() - line 627: $this->createUsers(); - line 628: $abigail = SoftDeletesTestUser::where('email', 'abigailotwell@gmail.com')->first(); - line 631: $abigail->posts()->create(['title' => 'First Title']); - line 632: $abigail->posts()->create(['title' => 'Second Title']); - line 633: $this->assertEquals(2, $abigail->posts()->count()); - line 636: $abigail->posts()->where('title', 'Second Title')->delete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 648: public function testRelationAggregatesHonorsSoftDelete() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 24. Evidence: - line 648: public function testRelationAggregatesHonorsSoftDelete() - line 650: $this->createUsers(); - line 651: $abigail = SoftDeletesTestUser::where('email', 'abigailotwell@gmail.com')->first(); - line 654: $abigail->posts()->create(['title' => 'First Title', 'priority' => 2]); - line 655: $abigail->posts()->create(['title' => 'Second Title', 'priority' => 4]); - line 656: $abigail->posts()->create(['title' => 'Third Title', 'priority' => 6]); - line 657: $this->assertEquals(2, $abigail->posts()->min('priority')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 684: public function testSoftDeleteIsAppliedToNewQuery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 684: public function testSoftDeleteIsAppliedToNewQuery() - line 686: $query = (new SoftDeletesTestUser)->newQuery(); - line 687: $this->assertSame('select * from "users" where "users"."deleted_at" is null', $query->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 690: public function testSecondLevelRelationshipCanBeSoftDeleted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 690: public function testSecondLevelRelationshipCanBeSoftDeleted() - line 692: $this->createUsers(); - line 694: $abigail = SoftDeletesTestUser::where('email', 'abigailotwell@gmail.com')->first(); - line 695: $post = $abigail->posts()->create(['title' => 'First Title']); - line 696: $post->comments()->create(['body' => 'Comment Body']); - line 698: $abigail->posts()->first()->comments()->delete(); - line 700: $abigail = $abigail->fresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 706: public function testWhereHasWithDeletedRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 706: public function testWhereHasWithDeletedRelationship() - line 708: $this->createUsers(); - line 710: $abigail = SoftDeletesTestUser::where('email', 'abigailotwell@gmail.com')->first(); - line 711: $post = $abigail->posts()->create(['title' => 'First Title']); - line 713: $users = SoftDeletesTestUser::where('email', 'taylorotwell@gmail.com')->has('posts')->get(); - line 716: $users = SoftDeletesTestUser::where('email', 'abigailotwell@gmail.com')->has('posts')->get(); - line 719: $users = SoftDeletesTestUser::where('email', 'doesnt@exist.com')->orHas('posts')->get(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 706: public function testWhereHasWithDeletedRelationship() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 744: public function testWhereHasWithNestedDeletedRelationshipAndOnlyTrashedCondition() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 744: public function testWhereHasWithNestedDeletedRelationshipAndOnlyTrashedCondition() - line 746: $this->createUsers(); - line 748: $abigail = SoftDeletesTestUser::where('email', 'abigailotwell@gmail.com')->first(); - line 749: $post = $abigail->posts()->create(['title' => 'First Title']); - line 750: $post->delete(); - line 756: $q->onlyTrashed(); - line 761: $q->withTrashed(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 744: public function testWhereHasWithNestedDeletedRelationshipAndOnlyTrashedCondition() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 766: public function testWhereHasWithNestedDeletedRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 766: public function testWhereHasWithNestedDeletedRelationship() - line 768: $this->createUsers(); - line 770: $abigail = SoftDeletesTestUser::where('email', 'abigailotwell@gmail.com')->first(); - line 771: $post = $abigail->posts()->create(['title' => 'First Title']); - line 772: $comment = $post->comments()->create(['body' => 'Comment Body']); - line 773: $comment->delete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 766: public function testWhereHasWithNestedDeletedRelationship() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 790: public function testWhereHasWithNestedDeletedRelationshipAndWithTrashedCondition() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 790: public function testWhereHasWithNestedDeletedRelationshipAndWithTrashedCondition() - line 792: $this->createUsers(); - line 794: $abigail = SoftDeletesTestUserWithTrashedPosts::where('email', 'abigailotwell@gmail.com')->first(); - line 795: $post = $abigail->posts()->create(['title' => 'First Title']); - line 796: $post->delete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 790: public function testWhereHasWithNestedDeletedRelationshipAndWithTrashedCondition() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 802: public function testWithCountWithNestedDeletedRelationshipAndOnlyTrashedCondition() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 802: public function testWithCountWithNestedDeletedRelationshipAndOnlyTrashedCondition() - line 804: $this->createUsers(); - line 806: $abigail = SoftDeletesTestUser::where('email', 'abigailotwell@gmail.com')->first(); - line 807: $post1 = $abigail->posts()->create(['title' => 'First Title']); - line 808: $post1->delete(); - line 809: $abigail->posts()->create(['title' => 'Second Title']); - line 810: $abigail->posts()->create(['title' => 'Third Title']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 802: public function testWithCountWithNestedDeletedRelationshipAndOnlyTrashedCondition() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 836: public function testOrWhereWithSoftDeleteConstraint() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 836: public function testOrWhereWithSoftDeleteConstraint() - line 838: $this->createUsers(); - line 840: $users = SoftDeletesTestUser::where('email', 'taylorotwell@gmail.com')->orWhere('email', 'abigailotwell@gmail.com'); - line 841: $this->assertEquals(['abigailotwell@gmail.com'], $users->pluck('email')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 844: public function testMorphToWithTrashed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 844: public function testMorphToWithTrashed() - line 846: $this->createUsers(); - line 848: $abigail = SoftDeletesTestUser::where('email', 'abigailotwell@gmail.com')->first(); - line 849: $post1 = $abigail->posts()->create(['title' => 'First Title']); - line 850: $post1->comments()->create([ - line 856: $abigail->delete(); - line 859: $q->withoutGlobalScope(SoftDeletingScope::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 877: public function testMorphToWithBadMethodCall() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 877: public function testMorphToWithBadMethodCall() - line 879: $this->expectException(BadMethodCallException::class); - line 881: $this->createUsers(); - line 883: $abigail = SoftDeletesTestUser::where('email', 'abigailotwell@gmail.com')->first(); - line 884: $post1 = $abigail->posts()->create(['title' => 'First Title']); - line 886: $post1->comments()->create([ - line 893: $q->thisMethodDoesNotExist(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 877: public function testMorphToWithBadMethodCall() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 897: public function testMorphToWithConstraints() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 897: public function testMorphToWithConstraints() - line 899: $this->createUsers(); - line 901: $abigail = SoftDeletesTestUser::where('email', 'abigailotwell@gmail.com')->first(); - line 902: $post1 = $abigail->posts()->create(['title' => 'First Title']); - line 903: $post1->comments()->create([ - line 910: $q->where('email', 'taylorotwell@gmail.com'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 897: public function testMorphToWithConstraints() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 916: public function testMorphToWithoutConstraints() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 916: public function testMorphToWithoutConstraints() - line 918: $this->createUsers(); - line 920: $abigail = SoftDeletesTestUser::where('email', 'abigailotwell@gmail.com')->first(); - line 921: $post1 = $abigail->posts()->create(['title' => 'First Title']); - line 922: $post1->comments()->create([ - line 928: $comment = SoftDeletesTestCommentWithTrashed::with('owner')->first(); - line 932: $abigail->delete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 938: public function testMorphToNonSoftDeletingModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 938: public function testMorphToNonSoftDeletingModel() - line 940: $taylor = TestUserWithoutSoftDelete::create(['id' => 1, 'email' => 'taylorotwell@gmail.com']); - line 941: $post1 = $taylor->posts()->create(['title' => 'First Title']); - line 942: $post1->comments()->create([ - line 948: $comment = SoftDeletesTestCommentWithTrashed::with('owner')->first(); - line 952: $taylor->delete(); - line 953: $comment = SoftDeletesTestCommentWithTrashed::with('owner')->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 958: public function testSelfReferencingRelationshipWithSoftDeletes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 958: public function testSelfReferencingRelationshipWithSoftDeletes() - line 961: [$taylor, $abigail] = $this->createUsers(); - line 964: $this->assertTrue($abigail->self_referencing->first()->is($taylor)); - line 967: $this->assertEquals(1, SoftDeletesTestUser::whereHas('self_referencing')->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentStrictMorphsTest.php - Test @ line 20: public function testStrictModeThrowsAnExceptionOnClassMap() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 20: public function testStrictModeThrowsAnExceptionOnClassMap() - line 22: $this->expectException(ClassMorphViolationException::class); - line 26: $model->getMorphClass(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 20: public function testStrictModeThrowsAnExceptionOnClassMap() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 29: public function testStrictModeDoesNotThrowExceptionWhenMorphMap() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 29: public function testStrictModeDoesNotThrowExceptionWhenMorphMap() - line 33: Relation::morphMap([ - line 37: $morphName = $model->getMorphClass(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 41: public function testMapsCanBeEnforcedInOneMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 41: public function testMapsCanBeEnforcedInOneMethod() - line 45: Relation::requireMorphMap(false); - line 51: $morphName = $model->getMorphClass(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 55: public function testMapIgnoreGenericPivotClass() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 55: public function testMapIgnoreGenericPivotClass() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 62: public function testMapCanBeEnforcedToCustomPivotClass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 62: public function testMapCanBeEnforcedToCustomPivotClass() - line 64: $this->expectException(ClassMorphViolationException::class); - line 68: $pivotModel->getMorphClass(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 62: public function testMapCanBeEnforcedToCustomPivotClass() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseEloquentTimestampsTest.php - Test @ line 72: public function testUserWithCreatedAtAndUpdatedAt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 72: public function testUserWithCreatedAtAndUpdatedAt() - line 76: $user = UserWithCreatedAndUpdated::create([ - line 80: $this->assertEquals($now->toDateTimeString(), $user->created_at->toDateTimeString()); - line 81: $this->assertEquals($now->toDateTimeString(), $user->updated_at->toDateTimeString()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 84: public function testUserWithCreatedAt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 84: public function testUserWithCreatedAt() - line 88: $user = UserWithCreated::create([ - line 92: $this->assertEquals($now->toDateTimeString(), $user->created_at->toDateTimeString()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 95: public function testUserWithUpdatedAt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 95: public function testUserWithUpdatedAt() - line 99: $user = UserWithUpdated::create([ - line 103: $this->assertEquals($now->toDateTimeString(), $user->updated_at->toDateTimeString()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 106: public function testWithoutTimestamp() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 106: public function testWithoutTimestamp() - line 108: Carbon::setTestNow($now = Carbon::now()->setYear(1995)->startOfYear()); - line 110: Carbon::setTestNow(Carbon::now()->addHour()); - line 112: $this->assertTrue($user->usesTimestamps()); - line 114: $user->withoutTimestamps(function () use ($user) { - line 127: $this->assertTrue($user->usesTimestamps()); - line 128: $this->assertTrue($now->equalTo($user->updated_at)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 132: public function testWithoutTimestampWhenAlreadyIgnoringTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 132: public function testWithoutTimestampWhenAlreadyIgnoringTimestamps() - line 134: Carbon::setTestNow($now = Carbon::now()->setYear(1995)->startOfYear()); - line 136: Carbon::setTestNow(Carbon::now()->addHour()); - line 140: $this->assertFalse($user->usesTimestamps()); - line 142: $user->withoutTimestamps(function () use ($user) { - line 149: $this->assertFalse($user->usesTimestamps()); - line 150: $this->assertTrue($now->equalTo($user->updated_at)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 154: public function testWithoutTimestampRestoresWhenClosureThrowsException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 154: public function testWithoutTimestampRestoresWhenClosureThrowsException() - line 156: $user = UserWithCreatedAndUpdated::create(['email' => 'foo@example.com']); - line 161: $user->withoutTimestamps(function () use ($user) { - line 165: $this->fail(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 173: public function testWithoutTimestampsRespectsClasses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 31. Evidence: - line 173: public function testWithoutTimestampsRespectsClasses() - line 179: $this->assertTrue($a->usesTimestamps()); - line 180: $this->assertTrue($b->usesTimestamps()); - line 181: $this->assertTrue($z->usesTimestamps()); - line 186: $this->assertFalse($a->usesTimestamps()); - line 193: $this->assertTrue($a->usesTimestamps()); - line 194: $this->assertTrue($b->usesTimestamps()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseEloquentWithCastsTest.php - Test @ line 45: public function testWithFirstOrNew() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 45: public function testWithFirstOrNew() - line 47: $time1 = Time::query()->withCasts(['time' => 'string']) - line 50: Time::query()->insert(['time' => '07:30']); - line 52: $time2 = Time::query()->withCasts(['time' => 'string']) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 59: public function testWithFirstOrCreate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 59: public function testWithFirstOrCreate() - line 61: $time1 = Time::query()->withCasts(['time' => 'string']) - line 64: $time2 = Time::query()->withCasts(['time' => 'string']) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 70: public function testWithCreateOrFirst() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 70: public function testWithCreateOrFirst() - line 72: $time1 = UniqueTime::query()->withCasts(['time' => 'string']) - line 75: $time2 = UniqueTime::query()->withCasts(['time' => 'string']) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 81: public function testThrowsExceptionIfCastableAttributeWasNotRetrievedAndPreventMissingAttributesIsEnabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 81: public function testThrowsExceptionIfCastableAttributeWasNotRetrievedAndPreventMissingAttributesIsEnabled() - line 83: Time::create(['time' => now()]); - line 87: $this->expectException(MissingAttributeException::class); - line 89: $time = Time::query()->select('id')->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 81: public function testThrowsExceptionIfCastableAttributeWasNotRetrievedAndPreventMissingAttributesIsEnabled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseMariaDbBuilderTest.php - Test @ line 18: public function testCreateDatabase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 18: public function testCreateDatabase() - line 20: $connection = m::mock(Connection::class); - line 31: $builder->createDatabase('my_temporary_database'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 20: $connection = m::mock(Connection::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 18: public function testCreateDatabase() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 34: public function testDropDatabaseIfExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 34: public function testDropDatabaseIfExists() - line 36: $connection = m::mock(Connection::class); - line 46: $builder->dropDatabaseIfExists('my_database_a'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 36: $connection = m::mock(Connection::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function testDropDatabaseIfExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseMariaDbProcessorTest.php - Test @ line 10: public function testProcessColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 10: public function testProcessColumns() - line 23: $this->assertEquals($expected, $processor->processColumns($listing)); - line 30: $this->assertEquals($expected, $processor->processColumns($listing)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseMariaDbQueryGrammarTest.php - Test @ line 17: public function testToRawSql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 17: public function testToRawSql() - line 19: $connection = m::mock(Connection::class); - line 23: $query = $grammar->substituteBindingsIntoRawSql( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 19: $connection = m::mock(Connection::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 17: public function testToRawSql() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseMariaDbSchemaBuilderTest.php - Test @ line 19: public function testHasTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 19: public function testHasTable() - line 21: $connection = m::mock(Connection::class); - line 30: $this->assertTrue($builder->hasTable('table')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 21: $connection = m::mock(Connection::class); - line 22: $grammar = m::mock(MariaDbGrammar::class); - Test @ line 33: public function testGetColumnListing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 33: public function testGetColumnListing() - line 35: $connection = m::mock(Connection::class); - line 47: $this->assertEquals(['column'], $builder->getColumnListing('table')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 35: $connection = m::mock(Connection::class); - line 36: $grammar = m::mock(MariaDbGrammar::class); - line 37: $processor = m::mock(MariaDbProcessor::class); ❌ tests/Database/DatabaseMariaDbSchemaGrammarTest.php - Test @ line 22: public function testBasicCreateTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 22: public function testBasicCreateTable() - line 24: $conn = $this->getConnection(); - line 30: $blueprint->create(); - line 31: $blueprint->increments('id'); - line 32: $blueprint->string('email'); - line 34: $statements = $blueprint->toSql(); - line 39: $conn = $this->getConnection(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 22: public function testBasicCreateTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 68: public function testAutoIncrementStartingValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 68: public function testAutoIncrementStartingValue() - line 70: $conn = $this->getConnection(); - line 76: $blueprint->create(); - line 77: $blueprint->increments('id')->startingValue(1000); - line 78: $blueprint->string('email'); - line 80: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 68: public function testAutoIncrementStartingValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 87: public function testAddColumnsWithMultipleAutoIncrementStartingValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 87: public function testAddColumnsWithMultipleAutoIncrementStartingValue() - line 89: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 90: $blueprint->id()->from(100); - line 91: $blueprint->string('name')->from(200); - line 92: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 87: public function testAddColumnsWithMultipleAutoIncrementStartingValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 101: public function testEngineCreateTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 101: public function testEngineCreateTable() - line 103: $conn = $this->getConnection(); - line 108: $blueprint->create(); - line 109: $blueprint->increments('id'); - line 110: $blueprint->string('email'); - line 111: $blueprint->engine('InnoDB'); - line 113: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 101: public function testEngineCreateTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 134: public function testCharsetCollationCreateTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 134: public function testCharsetCollationCreateTable() - line 136: $conn = $this->getConnection(); - line 140: $blueprint->create(); - line 141: $blueprint->increments('id'); - line 142: $blueprint->string('email'); - line 143: $blueprint->charset('utf8mb4'); - line 144: $blueprint->collation('utf8mb4_unicode_ci'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 134: public function testCharsetCollationCreateTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 167: public function testBasicCreateTableWithPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 167: public function testBasicCreateTableWithPrefix() - line 169: $conn = $this->getConnection(prefix: 'prefix_'); - line 173: $blueprint->create(); - line 174: $blueprint->increments('id'); - line 175: $blueprint->string('email'); - line 177: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 167: public function testBasicCreateTableWithPrefix() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 183: public function testCreateTemporaryTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 183: public function testCreateTemporaryTable() - line 185: $conn = $this->getConnection(); - line 189: $blueprint->create(); - line 190: $blueprint->temporary(); - line 191: $blueprint->increments('id'); - line 192: $blueprint->string('email'); - line 194: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 183: public function testCreateTemporaryTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 200: public function testDropTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 200: public function testDropTable() - line 202: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 203: $blueprint->drop(); - line 204: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 200: public function testDropTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 210: public function testDropTableIfExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 210: public function testDropTableIfExists() - line 212: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 213: $blueprint->dropIfExists(); - line 214: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 210: public function testDropTableIfExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 220: public function testDropColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 220: public function testDropColumn() - line 222: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 223: $blueprint->dropColumn('foo'); - line 224: $statements = $blueprint->toSql(); - line 229: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 230: $blueprint->dropColumn(['foo', 'bar']); - line 231: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 220: public function testDropColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 244: public function testDropPrimary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 244: public function testDropPrimary() - line 246: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 247: $blueprint->dropPrimary(); - line 248: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 244: public function testDropPrimary() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 254: public function testDropUnique() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 254: public function testDropUnique() - line 256: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 257: $blueprint->dropUnique('foo'); - line 258: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 254: public function testDropUnique() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 264: public function testDropIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 264: public function testDropIndex() - line 266: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 267: $blueprint->dropIndex('foo'); - line 268: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 264: public function testDropIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 274: public function testDropSpatialIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 274: public function testDropSpatialIndex() - line 276: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 277: $blueprint->dropSpatialIndex(['coordinates']); - line 278: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 274: public function testDropSpatialIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 284: public function testDropForeign() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 284: public function testDropForeign() - line 286: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 287: $blueprint->dropForeign('foo'); - line 288: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 284: public function testDropForeign() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 294: public function testDropTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 294: public function testDropTimestamps() - line 296: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 297: $blueprint->dropTimestamps(); - line 298: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 294: public function testDropTimestamps() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 304: public function testDropTimestampsTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 304: public function testDropTimestampsTz() - line 306: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 307: $blueprint->dropTimestampsTz(); - line 308: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 304: public function testDropTimestampsTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 314: public function testDropMorphs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 314: public function testDropMorphs() - line 316: $blueprint = new Blueprint($this->getConnection(), 'photos'); - line 317: $blueprint->dropMorphs('imageable'); - line 318: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 314: public function testDropMorphs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 325: public function testRenameTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 325: public function testRenameTable() - line 327: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 328: $blueprint->rename('foo'); - line 329: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 325: public function testRenameTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 335: public function testRenameIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 335: public function testRenameIndex() - line 337: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 338: $blueprint->renameIndex('foo', 'bar'); - line 339: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 335: public function testRenameIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 345: public function testAddingPrimaryKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 345: public function testAddingPrimaryKey() - line 347: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 348: $blueprint->primary('foo', 'bar'); - line 349: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 345: public function testAddingPrimaryKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 355: public function testAddingPrimaryKeyWithAlgorithm() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 355: public function testAddingPrimaryKeyWithAlgorithm() - line 357: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 358: $blueprint->primary('foo', 'bar', 'hash'); - line 359: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 355: public function testAddingPrimaryKeyWithAlgorithm() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 365: public function testAddingUniqueKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 365: public function testAddingUniqueKey() - line 367: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 368: $blueprint->unique('foo', 'bar'); - line 369: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 365: public function testAddingUniqueKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 375: public function testAddingIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 375: public function testAddingIndex() - line 377: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 378: $blueprint->index(['foo', 'bar'], 'baz'); - line 379: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 375: public function testAddingIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 385: public function testAddingIndexWithAlgorithm() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 385: public function testAddingIndexWithAlgorithm() - line 387: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 388: $blueprint->index(['foo', 'bar'], 'baz', 'hash'); - line 389: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 385: public function testAddingIndexWithAlgorithm() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 395: public function testAddingFulltextIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 395: public function testAddingFulltextIndex() - line 397: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 398: $blueprint->fulltext('body'); - line 399: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 395: public function testAddingFulltextIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 405: public function testAddingSpatialIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 405: public function testAddingSpatialIndex() - line 407: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 408: $blueprint->spatialIndex('coordinates'); - line 409: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 405: public function testAddingSpatialIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 415: public function testAddingFluentSpatialIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 415: public function testAddingFluentSpatialIndex() - line 417: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 418: $blueprint->geometry('coordinates', 'point')->spatialIndex(); - line 419: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 415: public function testAddingFluentSpatialIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 425: public function testAddingRawIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 425: public function testAddingRawIndex() - line 427: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 428: $blueprint->rawIndex('(function(column))', 'raw_index'); - line 429: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 425: public function testAddingRawIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 435: public function testAddingForeignKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 435: public function testAddingForeignKey() - line 437: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 438: $blueprint->foreign('foo_id')->references('id')->on('orders'); - line 439: $statements = $blueprint->toSql(); - line 444: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 445: $blueprint->foreign('foo_id')->references('id')->on('orders')->cascadeOnDelete(); - line 446: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 435: public function testAddingForeignKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 459: public function testAddingIncrementingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 459: public function testAddingIncrementingID() - line 461: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 462: $blueprint->increments('id'); - line 463: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 459: public function testAddingIncrementingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 469: public function testAddingSmallIncrementingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 469: public function testAddingSmallIncrementingID() - line 471: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 472: $blueprint->smallIncrements('id'); - line 473: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 469: public function testAddingSmallIncrementingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 479: public function testAddingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 479: public function testAddingID() - line 481: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 482: $blueprint->id(); - line 483: $statements = $blueprint->toSql(); - line 488: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 489: $blueprint->id('foo'); - line 490: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 479: public function testAddingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 496: public function testAddingForeignID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 496: public function testAddingForeignID() - line 498: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 499: $foreignId = $blueprint->foreignId('foo'); - line 500: $blueprint->foreignId('company_id')->constrained(); - line 501: $blueprint->foreignId('laravel_idea_id')->constrained(); - line 502: $blueprint->foreignId('team_id')->references('id')->on('teams'); - line 503: $blueprint->foreignId('team_column_id')->constrained('teams'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 496: public function testAddingForeignID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 521: public function testAddingForeignIdSpecifyingIndexNameInConstraint() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 521: public function testAddingForeignIdSpecifyingIndexNameInConstraint() - line 523: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 524: $blueprint->foreignId('company_id')->constrained(indexName: 'my_index'); - line 525: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 521: public function testAddingForeignIdSpecifyingIndexNameInConstraint() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 532: public function testAddingBigIncrementingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 532: public function testAddingBigIncrementingID() - line 534: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 535: $blueprint->bigIncrements('id'); - line 536: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 532: public function testAddingBigIncrementingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 542: public function testAddingColumnInTableFirst() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 542: public function testAddingColumnInTableFirst() - line 544: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 545: $blueprint->string('name')->first(); - line 546: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 542: public function testAddingColumnInTableFirst() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 552: public function testAddingColumnAfterAnotherColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 552: public function testAddingColumnAfterAnotherColumn() - line 554: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 555: $blueprint->string('name')->after('foo'); - line 556: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 552: public function testAddingColumnAfterAnotherColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 562: public function testAddingMultipleColumnsAfterAnotherColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 562: public function testAddingMultipleColumnsAfterAnotherColumn() - line 564: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 565: $blueprint->after('foo', function ($blueprint) { - line 569: $blueprint->string('three'); - line 570: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 562: public function testAddingMultipleColumnsAfterAnotherColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 579: public function testAddingGeneratedColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 579: public function testAddingGeneratedColumn() - line 581: $blueprint = new Blueprint($this->getConnection(), 'products'); - line 582: $blueprint->integer('price'); - line 583: $blueprint->integer('discounted_virtual')->virtualAs('price - 5'); - line 584: $blueprint->integer('discounted_stored')->storedAs('price - 5'); - line 585: $statements = $blueprint->toSql(); - line 594: $blueprint = new Blueprint($this->getConnection(), 'products'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 579: public function testAddingGeneratedColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 608: public function testAddingGeneratedColumnWithCharset() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 608: public function testAddingGeneratedColumnWithCharset() - line 610: $blueprint = new Blueprint($this->getConnection(), 'links'); - line 611: $blueprint->string('url', 2083)->charset('ascii'); - line 612: $blueprint->string('url_hash_virtual', 64)->virtualAs('sha2(url, 256)')->charset('ascii'); - line 613: $blueprint->string('url_hash_stored', 64)->storedAs('sha2(url, 256)')->charset('ascii'); - line 614: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 608: public function testAddingGeneratedColumnWithCharset() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 624: public function testAddingGeneratedColumnByExpression() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 624: public function testAddingGeneratedColumnByExpression() - line 626: $blueprint = new Blueprint($this->getConnection(), 'products'); - line 627: $blueprint->integer('price'); - line 628: $blueprint->integer('discounted_virtual')->virtualAs(new Expression('price - 5')); - line 629: $blueprint->integer('discounted_stored')->storedAs(new Expression('price - 5')); - line 630: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 624: public function testAddingGeneratedColumnByExpression() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 640: public function testAddingInvisibleColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 640: public function testAddingInvisibleColumn() - line 642: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 643: $blueprint->string('secret', 64)->nullable(false)->invisible(); - line 644: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 640: public function testAddingInvisibleColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 650: public function testAddingString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 650: public function testAddingString() - line 652: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 653: $blueprint->string('foo'); - line 654: $statements = $blueprint->toSql(); - line 659: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 660: $blueprint->string('foo', 100); - line 661: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 650: public function testAddingString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 688: public function testAddingText() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 688: public function testAddingText() - line 690: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 691: $blueprint->text('foo'); - line 692: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 688: public function testAddingText() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 698: public function testAddingBigInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 698: public function testAddingBigInteger() - line 700: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 701: $blueprint->bigInteger('foo'); - line 702: $statements = $blueprint->toSql(); - line 707: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 708: $blueprint->bigInteger('foo', true); - line 709: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 698: public function testAddingBigInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 715: public function testAddingInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 715: public function testAddingInteger() - line 717: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 718: $blueprint->integer('foo'); - line 719: $statements = $blueprint->toSql(); - line 724: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 725: $blueprint->integer('foo', true); - line 726: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 715: public function testAddingInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 732: public function testAddingIncrementsWithStartingValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 732: public function testAddingIncrementsWithStartingValues() - line 734: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 735: $blueprint->id()->startingValue(1000); - line 736: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 732: public function testAddingIncrementsWithStartingValues() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 743: public function testAddingMediumInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 743: public function testAddingMediumInteger() - line 745: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 746: $blueprint->mediumInteger('foo'); - line 747: $statements = $blueprint->toSql(); - line 752: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 753: $blueprint->mediumInteger('foo', true); - line 754: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 743: public function testAddingMediumInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 760: public function testAddingSmallInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 760: public function testAddingSmallInteger() - line 762: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 763: $blueprint->smallInteger('foo'); - line 764: $statements = $blueprint->toSql(); - line 769: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 770: $blueprint->smallInteger('foo', true); - line 771: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 760: public function testAddingSmallInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 777: public function testAddingTinyInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 777: public function testAddingTinyInteger() - line 779: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 780: $blueprint->tinyInteger('foo'); - line 781: $statements = $blueprint->toSql(); - line 786: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 787: $blueprint->tinyInteger('foo', true); - line 788: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 777: public function testAddingTinyInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 794: public function testAddingFloat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 794: public function testAddingFloat() - line 796: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 797: $blueprint->float('foo', 5); - line 798: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 794: public function testAddingFloat() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 804: public function testAddingDouble() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 804: public function testAddingDouble() - line 806: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 807: $blueprint->double('foo'); - line 808: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 804: public function testAddingDouble() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 814: public function testAddingDecimal() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 814: public function testAddingDecimal() - line 816: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 817: $blueprint->decimal('foo', 5, 2); - line 818: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 814: public function testAddingDecimal() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 824: public function testAddingBoolean() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 824: public function testAddingBoolean() - line 826: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 827: $blueprint->boolean('foo'); - line 828: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 824: public function testAddingBoolean() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 834: public function testAddingEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 834: public function testAddingEnum() - line 836: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 837: $blueprint->enum('role', ['member', 'admin']); - line 838: $blueprint->enum('status', Foo::cases()); - line 839: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 834: public function testAddingEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 846: public function testAddingSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 846: public function testAddingSet() - line 848: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 850: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 846: public function testAddingSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 856: public function testAddingJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 856: public function testAddingJson() - line 858: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 859: $blueprint->json('foo'); - line 860: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 856: public function testAddingJson() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 866: public function testAddingJsonb() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 866: public function testAddingJsonb() - line 868: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 869: $blueprint->jsonb('foo'); - line 870: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 866: public function testAddingJsonb() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 876: public function testAddingDate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 876: public function testAddingDate() - line 878: $conn = $this->getConnection(); - line 883: $blueprint->date('foo'); - line 884: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 876: public function testAddingDate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 890: public function testAddingDateWithDefaultCurrent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 890: public function testAddingDateWithDefaultCurrent() - line 892: $conn = $this->getConnection(); - line 897: $blueprint->date('foo')->useCurrent(); - line 898: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 890: public function testAddingDateWithDefaultCurrent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 904: public function testAddingYear() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 904: public function testAddingYear() - line 906: $conn = $this->getConnection(); - line 911: $blueprint->year('birth_year'); - line 912: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 904: public function testAddingYear() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 917: public function testAddingYearWithDefaultCurrent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 917: public function testAddingYearWithDefaultCurrent() - line 919: $conn = $this->getConnection(); - line 924: $blueprint->year('birth_year')->useCurrent(); - line 925: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 917: public function testAddingYearWithDefaultCurrent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 931: public function testAddingDateTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 931: public function testAddingDateTime() - line 933: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 934: $blueprint->dateTime('foo'); - line 935: $statements = $blueprint->toSql(); - line 939: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 940: $blueprint->dateTime('foo', 1); - line 941: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 931: public function testAddingDateTime() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 946: public function testAddingDateTimeWithDefaultCurrent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 946: public function testAddingDateTimeWithDefaultCurrent() - line 948: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 949: $blueprint->dateTime('foo')->useCurrent(); - line 950: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 946: public function testAddingDateTimeWithDefaultCurrent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 955: public function testAddingDateTimeWithOnUpdateCurrent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 955: public function testAddingDateTimeWithOnUpdateCurrent() - line 957: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 958: $blueprint->dateTime('foo')->useCurrentOnUpdate(); - line 959: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 955: public function testAddingDateTimeWithOnUpdateCurrent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 964: public function testAddingDateTimeWithDefaultCurrentAndOnUpdateCurrent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 964: public function testAddingDateTimeWithDefaultCurrentAndOnUpdateCurrent() - line 966: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 967: $blueprint->dateTime('foo')->useCurrent()->useCurrentOnUpdate(); - line 968: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 964: public function testAddingDateTimeWithDefaultCurrentAndOnUpdateCurrent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 973: public function testAddingDateTimeWithDefaultCurrentOnUpdateCurrentAndPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 973: public function testAddingDateTimeWithDefaultCurrentOnUpdateCurrentAndPrecision() - line 975: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 976: $blueprint->dateTime('foo', 3)->useCurrent()->useCurrentOnUpdate(); - line 977: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 973: public function testAddingDateTimeWithDefaultCurrentOnUpdateCurrentAndPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 982: public function testAddingDateTimeTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 982: public function testAddingDateTimeTz() - line 984: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 985: $blueprint->dateTimeTz('foo', 1); - line 986: $statements = $blueprint->toSql(); - line 990: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 991: $blueprint->dateTimeTz('foo'); - line 992: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 982: public function testAddingDateTimeTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 997: public function testAddingTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 997: public function testAddingTime() - line 999: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1000: $blueprint->time('created_at'); - line 1001: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 997: public function testAddingTime() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1006: public function testAddingTimeWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1006: public function testAddingTimeWithPrecision() - line 1008: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1009: $blueprint->time('created_at', 1); - line 1010: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1006: public function testAddingTimeWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1015: public function testAddingTimeTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1015: public function testAddingTimeTz() - line 1017: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1018: $blueprint->timeTz('created_at'); - line 1019: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1015: public function testAddingTimeTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1024: public function testAddingTimeTzWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1024: public function testAddingTimeTzWithPrecision() - line 1026: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1027: $blueprint->timeTz('created_at', 1); - line 1028: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1024: public function testAddingTimeTzWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1033: public function testAddingTimestamp() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1033: public function testAddingTimestamp() - line 1035: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1036: $blueprint->timestamp('created_at'); - line 1037: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1033: public function testAddingTimestamp() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1042: public function testAddingTimestampWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1042: public function testAddingTimestampWithPrecision() - line 1044: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1045: $blueprint->timestamp('created_at', 1); - line 1046: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1042: public function testAddingTimestampWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1051: public function testAddingTimestampWithDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1051: public function testAddingTimestampWithDefault() - line 1053: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1054: $blueprint->timestamp('created_at')->default('2015-07-22 11:43:17'); - line 1055: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1051: public function testAddingTimestampWithDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1060: public function testAddingTimestampWithDefaultCurrentSpecifyingPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1060: public function testAddingTimestampWithDefaultCurrentSpecifyingPrecision() - line 1062: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1063: $blueprint->timestamp('created_at', 1)->useCurrent(); - line 1064: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1060: public function testAddingTimestampWithDefaultCurrentSpecifyingPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1069: public function testAddingTimestampWithOnUpdateCurrentSpecifyingPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1069: public function testAddingTimestampWithOnUpdateCurrentSpecifyingPrecision() - line 1071: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1072: $blueprint->timestamp('created_at', 1)->useCurrentOnUpdate(); - line 1073: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1069: public function testAddingTimestampWithOnUpdateCurrentSpecifyingPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1078: public function testAddingTimestampWithDefaultCurrentAndOnUpdateCurrentSpecifyingPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1078: public function testAddingTimestampWithDefaultCurrentAndOnUpdateCurrentSpecifyingPrecision() - line 1080: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1081: $blueprint->timestamp('created_at', 1)->useCurrent()->useCurrentOnUpdate(); - line 1082: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1078: public function testAddingTimestampWithDefaultCurrentAndOnUpdateCurrentSpecifyingPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1087: public function testAddingTimestampTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1087: public function testAddingTimestampTz() - line 1089: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1090: $blueprint->timestampTz('created_at'); - line 1091: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1087: public function testAddingTimestampTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1096: public function testAddingTimestampTzWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1096: public function testAddingTimestampTzWithPrecision() - line 1098: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1099: $blueprint->timestampTz('created_at', 1); - line 1100: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1096: public function testAddingTimestampTzWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1105: public function testAddingTimeStampTzWithDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1105: public function testAddingTimeStampTzWithDefault() - line 1107: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1108: $blueprint->timestampTz('created_at')->default('2015-07-22 11:43:17'); - line 1109: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1105: public function testAddingTimeStampTzWithDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1114: public function testAddingTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1114: public function testAddingTimestamps() - line 1116: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1117: $blueprint->timestamps(); - line 1118: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1114: public function testAddingTimestamps() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1126: public function testAddingTimestampsTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1126: public function testAddingTimestampsTz() - line 1128: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1129: $blueprint->timestampsTz(); - line 1130: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1126: public function testAddingTimestampsTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1138: public function testAddingRememberToken() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1138: public function testAddingRememberToken() - line 1140: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1141: $blueprint->rememberToken(); - line 1142: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1138: public function testAddingRememberToken() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1148: public function testAddingBinary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1148: public function testAddingBinary() - line 1150: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1151: $blueprint->binary('foo'); - line 1152: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1148: public function testAddingBinary() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1158: public function testAddingUuid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1158: public function testAddingUuid() - line 1160: $conn = $this->getConnection(); - line 1164: $blueprint->uuid('foo'); - line 1165: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1158: public function testAddingUuid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1171: public function testAddingUuidOn106() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1171: public function testAddingUuidOn106() - line 1173: $conn = $this->getConnection(); - line 1177: $blueprint->uuid('foo'); - line 1178: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1171: public function testAddingUuidOn106() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1184: public function testAddingUuidDefaultsColumnName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1184: public function testAddingUuidDefaultsColumnName() - line 1186: $conn = $this->getConnection(); - line 1190: $blueprint->uuid(); - line 1191: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1184: public function testAddingUuidDefaultsColumnName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1197: public function testAddingForeignUuid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 1197: public function testAddingForeignUuid() - line 1199: $conn = $this->getConnection(); - line 1203: $foreignUuid = $blueprint->foreignUuid('foo'); - line 1204: $blueprint->foreignUuid('company_id')->constrained(); - line 1205: $blueprint->foreignUuid('laravel_idea_id')->constrained(); - line 1206: $blueprint->foreignUuid('team_id')->references('id')->on('teams'); - line 1207: $blueprint->foreignUuid('team_column_id')->constrained('teams'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1197: public function testAddingForeignUuid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1225: public function testAddingIpAddress() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1225: public function testAddingIpAddress() - line 1227: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1228: $blueprint->ipAddress('foo'); - line 1229: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1225: public function testAddingIpAddress() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1235: public function testAddingIpAddressDefaultsColumnName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1235: public function testAddingIpAddressDefaultsColumnName() - line 1237: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1238: $blueprint->ipAddress(); - line 1239: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1235: public function testAddingIpAddressDefaultsColumnName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1245: public function testAddingMacAddress() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1245: public function testAddingMacAddress() - line 1247: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1248: $blueprint->macAddress('foo'); - line 1249: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1245: public function testAddingMacAddress() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1255: public function testAddingMacAddressDefaultsColumnName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1255: public function testAddingMacAddressDefaultsColumnName() - line 1257: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1258: $blueprint->macAddress(); - line 1259: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1255: public function testAddingMacAddressDefaultsColumnName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1265: public function testAddingGeometry() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1265: public function testAddingGeometry() - line 1267: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1268: $blueprint->geometry('coordinates'); - line 1269: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1265: public function testAddingGeometry() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1275: public function testAddingGeography() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1275: public function testAddingGeography() - line 1277: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1278: $blueprint->geography('coordinates'); - line 1279: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1275: public function testAddingGeography() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1285: public function testAddingPoint() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1285: public function testAddingPoint() - line 1287: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1288: $blueprint->geometry('coordinates', 'point'); - line 1289: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1285: public function testAddingPoint() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1295: public function testAddingPointWithSrid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1295: public function testAddingPointWithSrid() - line 1297: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1298: $blueprint->geometry('coordinates', 'point', 4326); - line 1299: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1295: public function testAddingPointWithSrid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1305: public function testAddingPointWithSridColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1305: public function testAddingPointWithSridColumn() - line 1307: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1308: $blueprint->geometry('coordinates', 'point', 4326)->after('id'); - line 1309: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1305: public function testAddingPointWithSridColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1315: public function testAddingLineString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1315: public function testAddingLineString() - line 1317: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1318: $blueprint->geometry('coordinates', 'linestring'); - line 1319: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1315: public function testAddingLineString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1325: public function testAddingPolygon() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1325: public function testAddingPolygon() - line 1327: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1328: $blueprint->geometry('coordinates', 'polygon'); - line 1329: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1325: public function testAddingPolygon() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1335: public function testAddingGeometryCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1335: public function testAddingGeometryCollection() - line 1337: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1338: $blueprint->geometry('coordinates', 'geometrycollection'); - line 1339: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1335: public function testAddingGeometryCollection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1345: public function testAddingMultiPoint() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1345: public function testAddingMultiPoint() - line 1347: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1348: $blueprint->geometry('coordinates', 'multipoint'); - line 1349: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1345: public function testAddingMultiPoint() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1355: public function testAddingMultiLineString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1355: public function testAddingMultiLineString() - line 1357: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1358: $blueprint->geometry('coordinates', 'multilinestring'); - line 1359: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1355: public function testAddingMultiLineString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1365: public function testAddingMultiPolygon() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1365: public function testAddingMultiPolygon() - line 1367: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1368: $blueprint->geometry('coordinates', 'multipolygon'); - line 1369: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1365: public function testAddingMultiPolygon() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1375: public function testAddingComment() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1375: public function testAddingComment() - line 1377: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1378: $blueprint->string('foo')->comment("Escape ' when using words like it's"); - line 1379: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1375: public function testAddingComment() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1385: public function testCreateDatabase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1385: public function testCreateDatabase() - line 1387: $connection = $this->getConnection(); - line 1391: $statement = $this->getGrammar($connection)->compileCreateDatabase('my_database_a'); - line 1398: $connection = $this->getConnection(); - line 1402: $statement = $this->getGrammar($connection)->compileCreateDatabase('my_database_b'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1385: public function testCreateDatabase() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1410: public function testCreateTableWithVirtualAsColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 1410: public function testCreateTableWithVirtualAsColumn() - line 1412: $conn = $this->getConnection(); - line 1418: $blueprint->create(); - line 1419: $blueprint->string('my_column'); - line 1420: $blueprint->string('my_other_column')->virtualAs('my_column'); - line 1422: $statements = $blueprint->toSql(); - line 1427: $conn = $this->getConnection(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1410: public function testCreateTableWithVirtualAsColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1454: public function testCreateTableWithVirtualAsColumnWhenJsonColumnHasArrayKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1454: public function testCreateTableWithVirtualAsColumnWhenJsonColumnHasArrayKey() - line 1456: $conn = $this->getConnection(); - line 1460: $blueprint->create(); - line 1461: $blueprint->string('my_json_column')->virtualAsJson('my_json_column->foo[0][1]'); - line 1463: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1454: public function testCreateTableWithVirtualAsColumnWhenJsonColumnHasArrayKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1469: public function testCreateTableWithStoredAsColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 1469: public function testCreateTableWithStoredAsColumn() - line 1471: $conn = $this->getConnection(); - line 1477: $blueprint->create(); - line 1478: $blueprint->string('my_column'); - line 1479: $blueprint->string('my_other_column')->storedAs('my_column'); - line 1481: $statements = $blueprint->toSql(); - line 1486: $conn = $this->getConnection(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1469: public function testCreateTableWithStoredAsColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1513: public function testDropDatabaseIfExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1513: public function testDropDatabaseIfExists() - line 1515: $statement = $this->getGrammar()->compileDropDatabaseIfExists('my_database_a'); - line 1522: $statement = $this->getGrammar()->compileDropDatabaseIfExists('my_database_b'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1530: public function testDropAllTables() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1530: public function testDropAllTables() - line 1532: $connection = $this->getConnection(); - line 1533: $statement = $this->getGrammar($connection)->compileDropAllTables(['alpha', 'beta', 'gamma']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1530: public function testDropAllTables() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1545: public function testGrammarsAreMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1545: public function testGrammarsAreMacroable() - line 1548: $this->getGrammar()::macro('compileReplace', function () { - line 1552: $c = $this->getGrammar()::compileReplace(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseMigrationCreatorTest.php - Test @ line 18: public function testBasicCreateMethodStoresMigrationFile() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 18: public function testBasicCreateMethodStoresMigrationFile() - line 20: $creator = $this->getCreator(); - line 22: $creator->expects($this->any())->method('getDatePrefix')->willReturn('foo'); - line 23: $creator->getFilesystem()->shouldReceive('exists')->once()->with('stubs/migration.stub')->andReturn(false); - line 24: $creator->getFilesystem()->shouldReceive('get')->once()->with($creator->stubPath().'/migration.stub')->andReturn('return new class'); - line 25: $creator->getFilesystem()->shouldReceive('ensureDirectoryExists')->once()->with('foo'); - line 26: $creator->getFilesystem()->shouldReceive('put')->once()->with('foo/foo_create_bar.php', 'return new class'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 18: public function testBasicCreateMethodStoresMigrationFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 33: public function testBasicCreateMethodCallsPostCreateHooks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 33: public function testBasicCreateMethodCallsPostCreateHooks() - line 37: $creator = $this->getCreator(); - line 39: $creator->afterCreate(function ($table, $path) { - line 44: $creator->expects($this->any())->method('getDatePrefix')->willReturn('foo'); - line 45: $creator->getFilesystem()->shouldReceive('exists')->once()->with('stubs/migration.update.stub')->andReturn(false); - line 46: $creator->getFilesystem()->shouldReceive('get')->once()->with($creator->stubPath().'/migration.update.stub')->andReturn('return new class DummyTable'); - line 47: $creator->getFilesystem()->shouldReceive('ensureDirectoryExists')->once()->with('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 40: $_SERVER['__migration.creator.table'] = $table; - line 41: $_SERVER['__migration.creator.path'] = $path; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 38: unset($_SERVER['__migration.creator.table'], $_SERVER['__migration.creator.path']); - line 57: unset($_SERVER['__migration.creator.table'], $_SERVER['__migration.creator.path']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 33: public function testBasicCreateMethodCallsPostCreateHooks() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 60: public function testTableUpdateMigrationStoresMigrationFile() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 60: public function testTableUpdateMigrationStoresMigrationFile() - line 62: $creator = $this->getCreator(); - line 63: $creator->expects($this->any())->method('getDatePrefix')->willReturn('foo'); - line 64: $creator->getFilesystem()->shouldReceive('exists')->once()->with('stubs/migration.update.stub')->andReturn(false); - line 65: $creator->getFilesystem()->shouldReceive('get')->once()->with($creator->stubPath().'/migration.update.stub')->andReturn('return new class DummyTable'); - line 66: $creator->getFilesystem()->shouldReceive('ensureDirectoryExists')->once()->with('foo'); - line 67: $creator->getFilesystem()->shouldReceive('put')->once()->with('foo/foo_create_bar.php', 'return new class baz'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 60: public function testTableUpdateMigrationStoresMigrationFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 74: public function testTableCreationMigrationStoresMigrationFile() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 74: public function testTableCreationMigrationStoresMigrationFile() - line 76: $creator = $this->getCreator(); - line 77: $creator->expects($this->any())->method('getDatePrefix')->willReturn('foo'); - line 78: $creator->getFilesystem()->shouldReceive('exists')->once()->with('stubs/migration.create.stub')->andReturn(false); - line 79: $creator->getFilesystem()->shouldReceive('get')->once()->with($creator->stubPath().'/migration.create.stub')->andReturn('return new class DummyTable'); - line 80: $creator->getFilesystem()->shouldReceive('ensureDirectoryExists')->once()->with('foo'); - line 81: $creator->getFilesystem()->shouldReceive('put')->once()->with('foo/foo_create_bar.php', 'return new class baz'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 74: public function testTableCreationMigrationStoresMigrationFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 88: public function testTableUpdateMigrationWontCreateDuplicateClass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 88: public function testTableUpdateMigrationWontCreateDuplicateClass() - line 90: $this->expectException(InvalidArgumentException::class); - line 91: $this->expectExceptionMessage('A MigrationCreatorFakeMigration class already exists.'); - line 93: $creator = $this->getCreator(); - line 95: $creator->getFilesystem()->shouldReceive('glob')->once()->with('foo/*.php')->andReturn(['foo/foo_create_bar.php']); - line 96: $creator->getFilesystem()->shouldReceive('requireOnce')->once()->with('foo/foo_create_bar.php'); - line 98: $creator->create('migration_creator_fake_migration', 'foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 88: public function testTableUpdateMigrationWontCreateDuplicateClass() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseMigrationInstallCommandTest.php - Test @ line 20: public function testFireCallsRepositoryToInstall() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 20: public function testFireCallsRepositoryToInstall() - line 22: $command = new InstallCommand($repo = m::mock(MigrationRepositoryInterface::class)); - line 23: $command->setLaravel(new Application); - line 28: $this->runCommand($command, ['--database' => 'foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 22: $command = new InstallCommand($repo = m::mock(MigrationRepositoryInterface::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 20: public function testFireCallsRepositoryToInstall() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 31: public function testFireCallsRepositoryToInstallExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 31: public function testFireCallsRepositoryToInstallExists() - line 33: $command = new InstallCommand($repo = m::mock(MigrationRepositoryInterface::class)); - line 34: $command->setLaravel(new Application); - line 38: $this->runCommand($command, ['--database' => 'foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 33: $command = new InstallCommand($repo = m::mock(MigrationRepositoryInterface::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 31: public function testFireCallsRepositoryToInstallExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseMigrationMakeCommandTest.php - Test @ line 21: public function testBasicCreateDumpsAutoload() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 21: public function testBasicCreateDumpsAutoload() - line 24: $creator = m::mock(MigrationCreator::class), - line 28: $app->useDatabasePath(__DIR__); - line 29: $command->setLaravel($app); - line 34: $this->runCommand($command, ['name' => 'create_foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 24: $creator = m::mock(MigrationCreator::class), - line 25: $composer = m::mock(Composer::class) - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 21: public function testBasicCreateDumpsAutoload() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 37: public function testBasicCreateGivesCreatorProperArguments() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 37: public function testBasicCreateGivesCreatorProperArguments() - line 41: m::mock(Composer::class)->shouldIgnoreMissing() - line 44: $app->useDatabasePath(__DIR__); - line 45: $command->setLaravel($app); - line 50: $this->runCommand($command, ['name' => 'create_foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 40: $creator = m::mock(MigrationCreator::class), - line 41: m::mock(Composer::class)->shouldIgnoreMissing() - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 37: public function testBasicCreateGivesCreatorProperArguments() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 53: public function testBasicCreateGivesCreatorProperArgumentsWhenNameIsStudlyCase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 53: public function testBasicCreateGivesCreatorProperArgumentsWhenNameIsStudlyCase() - line 57: m::mock(Composer::class)->shouldIgnoreMissing() - line 60: $app->useDatabasePath(__DIR__); - line 61: $command->setLaravel($app); - line 66: $this->runCommand($command, ['name' => 'CreateFoo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 56: $creator = m::mock(MigrationCreator::class), - line 57: m::mock(Composer::class)->shouldIgnoreMissing() - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 53: public function testBasicCreateGivesCreatorProperArgumentsWhenNameIsStudlyCase() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 69: public function testBasicCreateGivesCreatorProperArgumentsWhenTableIsSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 69: public function testBasicCreateGivesCreatorProperArgumentsWhenTableIsSet() - line 73: m::mock(Composer::class)->shouldIgnoreMissing() - line 76: $app->useDatabasePath(__DIR__); - line 77: $command->setLaravel($app); - line 82: $this->runCommand($command, ['name' => 'create_foo', '--create' => 'users']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 72: $creator = m::mock(MigrationCreator::class), - line 73: m::mock(Composer::class)->shouldIgnoreMissing() - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 69: public function testBasicCreateGivesCreatorProperArgumentsWhenTableIsSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 85: public function testBasicCreateGivesCreatorProperArgumentsWhenCreateTablePatternIsFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 85: public function testBasicCreateGivesCreatorProperArgumentsWhenCreateTablePatternIsFound() - line 89: m::mock(Composer::class)->shouldIgnoreMissing() - line 92: $app->useDatabasePath(__DIR__); - line 93: $command->setLaravel($app); - line 98: $this->runCommand($command, ['name' => 'create_users_table']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 88: $creator = m::mock(MigrationCreator::class), - line 89: m::mock(Composer::class)->shouldIgnoreMissing() - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 85: public function testBasicCreateGivesCreatorProperArgumentsWhenCreateTablePatternIsFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 101: public function testCanSpecifyPathToCreateMigrationsIn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 101: public function testCanSpecifyPathToCreateMigrationsIn() - line 105: m::mock(Composer::class)->shouldIgnoreMissing() - line 108: $command->setLaravel($app); - line 109: $app->setBasePath('/home/laravel'); - line 113: $this->runCommand($command, ['name' => 'create_foo', '--path' => 'vendor/laravel-package/migrations', '--create' => 'users']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 104: $creator = m::mock(MigrationCreator::class), - line 105: m::mock(Composer::class)->shouldIgnoreMissing() - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 101: public function testCanSpecifyPathToCreateMigrationsIn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseMigrationMigrateCommandTest.php - Test @ line 24: public function testBasicMigrationsCallMigratorWithProperArguments() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 24: public function testBasicMigrationsCallMigratorWithProperArguments() - line 26: $command = new MigrateCommand($migrator = m::mock(Migrator::class), $dispatcher = m::mock(Dispatcher::class)); - line 28: $app->useDatabasePath(__DIR__); - line 29: $command->setLaravel($app); - line 32: $migrator->shouldReceive('usingConnection')->once()->andReturnUsing(function ($name, $callback) { - line 40: $this->runCommand($command); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 26: $command = new MigrateCommand($migrator = m::mock(Migrator::class), $dispatcher = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 24: public function testBasicMigrationsCallMigratorWithProperArguments() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 43: public function testMigrationsCanBeRunWithStoredSchema() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 43: public function testMigrationsCanBeRunWithStoredSchema() - line 45: $command = new MigrateCommand($migrator = m::mock(Migrator::class), $dispatcher = m::mock(Dispatcher::class)); - line 47: $app->useDatabasePath(__DIR__); - line 48: $command->setLaravel($app); - line 53: $migrator->shouldReceive('usingConnection')->once()->andReturnUsing(function ($name, $callback) { - line 58: $schemaState->shouldReceive('handleOutputUsing')->andReturnSelf(); - line 66: $this->runCommand($command, ['--schema-path' => __DIR__.'/stubs/schema.sql']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 45: $command = new MigrateCommand($migrator = m::mock(Migrator::class), $dispatcher = m::mock(Dispatcher::class)); - line 51: $migrator->shouldReceive('resolveConnection')->andReturn($connection = m::mock(stdClass::class)); - line 57: $connection->shouldReceive('getSchemaState')->andReturn($schemaState = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 43: public function testMigrationsCanBeRunWithStoredSchema() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 69: public function testMigrationRepositoryCreatedWhenNecessary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 69: public function testMigrationRepositoryCreatedWhenNecessary() - line 71: $params = [$migrator = m::mock(Migrator::class), $dispatcher = m::mock(Dispatcher::class)]; - line 72: $command = $this->getMockBuilder(MigrateCommand::class)->onlyMethods(['callSilent'])->setConstructorArgs($params)->getMock(); - line 74: $app->useDatabasePath(__DIR__); - line 75: $command->setLaravel($app); - line 78: $migrator->shouldReceive('usingConnection')->once()->andReturnUsing(function ($name, $callback) { - line 84: $command->expects($this->once())->method('callSilent')->with($this->equalTo('migrate:install'), $this->equalTo([])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 71: $params = [$migrator = m::mock(Migrator::class), $dispatcher = m::mock(Dispatcher::class)]; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 69: public function testMigrationRepositoryCreatedWhenNecessary() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 89: public function testTheCommandMayBePretended() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 89: public function testTheCommandMayBePretended() - line 91: $command = new MigrateCommand($migrator = m::mock(Migrator::class), $dispatcher = m::mock(Dispatcher::class)); - line 93: $app->useDatabasePath(__DIR__); - line 94: $command->setLaravel($app); - line 97: $migrator->shouldReceive('usingConnection')->once()->andReturnUsing(function ($name, $callback) { - line 104: $this->runCommand($command, ['--pretend' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 91: $command = new MigrateCommand($migrator = m::mock(Migrator::class), $dispatcher = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 89: public function testTheCommandMayBePretended() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 107: public function testTheDatabaseMayBeSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 107: public function testTheDatabaseMayBeSet() - line 109: $command = new MigrateCommand($migrator = m::mock(Migrator::class), $dispatcher = m::mock(Dispatcher::class)); - line 111: $app->useDatabasePath(__DIR__); - line 112: $command->setLaravel($app); - line 115: $migrator->shouldReceive('usingConnection')->once()->andReturnUsing(function ($name, $callback) { - line 122: $this->runCommand($command, ['--database' => 'foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 109: $command = new MigrateCommand($migrator = m::mock(Migrator::class), $dispatcher = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 107: public function testTheDatabaseMayBeSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 125: public function testStepMayBeSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 125: public function testStepMayBeSet() - line 127: $command = new MigrateCommand($migrator = m::mock(Migrator::class), $dispatcher = m::mock(Dispatcher::class)); - line 129: $app->useDatabasePath(__DIR__); - line 130: $command->setLaravel($app); - line 133: $migrator->shouldReceive('usingConnection')->once()->andReturnUsing(function ($name, $callback) { - line 140: $this->runCommand($command, ['--step' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 127: $command = new MigrateCommand($migrator = m::mock(Migrator::class), $dispatcher = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 125: public function testStepMayBeSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseMigrationRefreshCommandTest.php - Test @ line 26: public function testRefreshCommandCallsCommandsWithProperArguments() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 26: public function testRefreshCommandCallsCommandsWithProperArguments() - line 31: $dispatcher = $app->instance(Dispatcher::class, $events = m::mock()); - line 32: $console = m::mock(ConsoleApplication::class)->makePartial(); - line 33: $console->__construct(); - line 34: $command->setLaravel($app); - line 35: $command->setApplication($console); - line 48: $this->runCommand($command); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 32: $console = m::mock(ConsoleApplication::class)->makePartial(); - line 37: $resetCommand = m::mock(ResetCommand::class); - line 38: $migrateCommand = m::mock(MigrateCommand::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 26: public function testRefreshCommandCallsCommandsWithProperArguments() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 51: public function testRefreshCommandCallsCommandsWithStep() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 51: public function testRefreshCommandCallsCommandsWithStep() - line 56: $dispatcher = $app->instance(Dispatcher::class, $events = m::mock()); - line 57: $console = m::mock(ConsoleApplication::class)->makePartial(); - line 58: $console->__construct(); - line 59: $command->setLaravel($app); - line 60: $command->setApplication($console); - line 73: $this->runCommand($command, ['--step' => 2]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 57: $console = m::mock(ConsoleApplication::class)->makePartial(); - line 62: $rollbackCommand = m::mock(RollbackCommand::class); - line 63: $migrateCommand = m::mock(MigrateCommand::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 51: public function testRefreshCommandCallsCommandsWithStep() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 76: public function testRefreshCommandExitsWhenProhibited() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 76: public function testRefreshCommandExitsWhenProhibited() - line 81: $dispatcher = $app->instance(Dispatcher::class, $events = m::mock()); - line 82: $console = m::mock(ConsoleApplication::class)->makePartial(); - line 83: $console->__construct(); - line 84: $command->setLaravel($app); - line 85: $command->setApplication($console); - line 89: $code = $this->runCommand($command); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 82: $console = m::mock(ConsoleApplication::class)->makePartial(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 76: public function testRefreshCommandExitsWhenProhibited() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseMigrationRepositoryTest.php - Test @ line 21: public function testGetRanMigrationsListMigrationsByPackage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 21: public function testGetRanMigrationsListMigrationsByPackage() - line 23: $repo = $this->getRepository(); - line 26: $repo->getConnectionResolver()->shouldReceive('connection')->with(null)->andReturn($connectionMock); - line 27: $repo->getConnection()->shouldReceive('table')->once()->with('migrations')->andReturn($query); - line 33: $this->assertEquals(['bar'], $repo->getRan()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 24: $query = m::mock(stdClass::class); - line 25: $connectionMock = m::mock(Connection::class); - Test @ line 36: public function testGetLastMigrationsGetsAllMigrationsWithTheLatestBatchNumber() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 36: public function testGetLastMigrationsGetsAllMigrationsWithTheLatestBatchNumber() - line 38: $repo = $this->getMockBuilder(DatabaseMigrationRepository::class)->onlyMethods(['getLastBatchNumber'])->setConstructorArgs([ - line 41: $repo->expects($this->once())->method('getLastBatchNumber')->willReturn(1); - line 44: $repo->getConnectionResolver()->shouldReceive('connection')->with(null)->andReturn($connectionMock); - line 45: $repo->getConnection()->shouldReceive('table')->once()->with('migrations')->andReturn($query); - line 51: $this->assertEquals(['foo'], $repo->getLast()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 39: $resolver = m::mock(ConnectionResolverInterface::class), 'migrations', - line 42: $query = m::mock(stdClass::class); - line 43: $connectionMock = m::mock(Connection::class); - Test @ line 54: public function testLogMethodInsertsRecordIntoMigrationTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 54: public function testLogMethodInsertsRecordIntoMigrationTable() - line 56: $repo = $this->getRepository(); - line 59: $repo->getConnectionResolver()->shouldReceive('connection')->with(null)->andReturn($connectionMock); - line 60: $repo->getConnection()->shouldReceive('table')->once()->with('migrations')->andReturn($query); - line 64: $repo->log('bar', 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 57: $query = m::mock(stdClass::class); - line 58: $connectionMock = m::mock(Connection::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 54: public function testLogMethodInsertsRecordIntoMigrationTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 67: public function testDeleteMethodRemovesAMigrationFromTheTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 67: public function testDeleteMethodRemovesAMigrationFromTheTable() - line 69: $repo = $this->getRepository(); - line 72: $repo->getConnectionResolver()->shouldReceive('connection')->with(null)->andReturn($connectionMock); - line 73: $repo->getConnection()->shouldReceive('table')->once()->with('migrations')->andReturn($query); - line 79: $repo->delete($migration); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 70: $query = m::mock(stdClass::class); - line 71: $connectionMock = m::mock(Connection::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 67: public function testDeleteMethodRemovesAMigrationFromTheTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 82: public function testGetNextBatchNumberReturnsLastBatchNumberPlusOne() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 82: public function testGetNextBatchNumberReturnsLastBatchNumberPlusOne() - line 84: $repo = $this->getMockBuilder(DatabaseMigrationRepository::class)->onlyMethods(['getLastBatchNumber'])->setConstructorArgs([ - line 87: $repo->expects($this->once())->method('getLastBatchNumber')->willReturn(1); - line 89: $this->assertEquals(2, $repo->getNextBatchNumber()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 85: m::mock(ConnectionResolverInterface::class), 'migrations', - Test @ line 92: public function testGetLastBatchNumberReturnsMaxBatch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 92: public function testGetLastBatchNumberReturnsMaxBatch() - line 94: $repo = $this->getRepository(); - line 97: $repo->getConnectionResolver()->shouldReceive('connection')->with(null)->andReturn($connectionMock); - line 98: $repo->getConnection()->shouldReceive('table')->once()->with('migrations')->andReturn($query); - line 102: $this->assertEquals(1, $repo->getLastBatchNumber()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 95: $query = m::mock(stdClass::class); - line 96: $connectionMock = m::mock(Connection::class); - Test @ line 105: public function testCreateRepositoryCreatesProperDatabaseTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 105: public function testCreateRepositoryCreatesProperDatabaseTable() - line 107: $repo = $this->getRepository(); - line 110: $repo->getConnectionResolver()->shouldReceive('connection')->with(null)->andReturn($connectionMock); - line 111: $repo->getConnection()->shouldReceive('getSchemaBuilder')->once()->andReturn($schema); - line 114: $repo->createRepository(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 108: $schema = m::mock(stdClass::class); - line 109: $connectionMock = m::mock(Connection::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 105: public function testCreateRepositoryCreatesProperDatabaseTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseMigrationResetCommandTest.php - Test @ line 22: public function testResetCommandCallsMigratorWithProperArguments() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 22: public function testResetCommandCallsMigratorWithProperArguments() - line 24: $command = new ResetCommand($migrator = m::mock(Migrator::class)); - line 26: $app->useDatabasePath(__DIR__); - line 27: $command->setLaravel($app); - line 29: $migrator->shouldReceive('usingConnection')->once()->with(null, m::type(Closure::class))->andReturnUsing(function ($connection, $callback) { - line 36: $this->runCommand($command); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 24: $command = new ResetCommand($migrator = m::mock(Migrator::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 22: public function testResetCommandCallsMigratorWithProperArguments() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 39: public function testResetCommandCanBePretended() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 39: public function testResetCommandCanBePretended() - line 41: $command = new ResetCommand($migrator = m::mock(Migrator::class)); - line 43: $app->useDatabasePath(__DIR__); - line 44: $command->setLaravel($app); - line 46: $migrator->shouldReceive('usingConnection')->once()->with('foo', m::type(Closure::class))->andReturnUsing(function ($connection, $callback) { - line 53: $this->runCommand($command, ['--pretend' => true, '--database' => 'foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 41: $command = new ResetCommand($migrator = m::mock(Migrator::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 39: public function testResetCommandCanBePretended() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 56: public function testRefreshCommandExitsWhenProhibited() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 56: public function testRefreshCommandExitsWhenProhibited() - line 58: $command = new ResetCommand($migrator = m::mock(Migrator::class)); - line 61: $app->useDatabasePath(__DIR__); - line 62: $command->setLaravel($app); - line 66: $code = $this->runCommand($command); - line 70: $migrator->shouldNotHaveBeenCalled(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 58: $command = new ResetCommand($migrator = m::mock(Migrator::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 56: public function testRefreshCommandExitsWhenProhibited() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseMigrationRollbackCommandTest.php - Test @ line 20: public function testRollbackCommandCallsMigratorWithProperArguments() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 20: public function testRollbackCommandCallsMigratorWithProperArguments() - line 22: $command = new RollbackCommand($migrator = m::mock(Migrator::class)); - line 24: $app->useDatabasePath(__DIR__); - line 25: $command->setLaravel($app); - line 27: $migrator->shouldReceive('usingConnection')->once()->andReturnUsing(function ($name, $callback) { - line 33: $this->runCommand($command); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 22: $command = new RollbackCommand($migrator = m::mock(Migrator::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 20: public function testRollbackCommandCallsMigratorWithProperArguments() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 36: public function testRollbackCommandCallsMigratorWithStepOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 36: public function testRollbackCommandCallsMigratorWithStepOption() - line 38: $command = new RollbackCommand($migrator = m::mock(Migrator::class)); - line 40: $app->useDatabasePath(__DIR__); - line 41: $command->setLaravel($app); - line 43: $migrator->shouldReceive('usingConnection')->once()->andReturnUsing(function ($name, $callback) { - line 49: $this->runCommand($command, ['--step' => 2]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 38: $command = new RollbackCommand($migrator = m::mock(Migrator::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 36: public function testRollbackCommandCallsMigratorWithStepOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 52: public function testRollbackCommandCanBePretended() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 52: public function testRollbackCommandCanBePretended() - line 54: $command = new RollbackCommand($migrator = m::mock(Migrator::class)); - line 56: $app->useDatabasePath(__DIR__); - line 57: $command->setLaravel($app); - line 59: $migrator->shouldReceive('usingConnection')->once()->andReturnUsing(function ($name, $callback) { - line 65: $this->runCommand($command, ['--pretend' => true, '--database' => 'foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 54: $command = new RollbackCommand($migrator = m::mock(Migrator::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 52: public function testRollbackCommandCanBePretended() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 68: public function testRollbackCommandCanBePretendedWithStepOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 68: public function testRollbackCommandCanBePretendedWithStepOption() - line 70: $command = new RollbackCommand($migrator = m::mock(Migrator::class)); - line 72: $app->useDatabasePath(__DIR__); - line 73: $command->setLaravel($app); - line 75: $migrator->shouldReceive('usingConnection')->once()->andReturnUsing(function ($name, $callback) { - line 81: $this->runCommand($command, ['--pretend' => true, '--database' => 'foo', '--step' => 2]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 70: $command = new RollbackCommand($migrator = m::mock(Migrator::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 68: public function testRollbackCommandCanBePretendedWithStepOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseMigratorIntegrationTest.php - Test @ line 86: public function testBasicMigrationOfSingleFolder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 86: public function testBasicMigrationOfSingleFolder() - line 88: $ran = $this->migrator->run([__DIR__.'/migrations/one']); - line 90: $this->assertTrue($this->db->schema()->hasTable('users')); - line 91: $this->assertTrue($this->db->schema()->hasTable('password_resets')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 97: public function testMigrationsDefaultConnectionCanBeChanged() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 97: public function testMigrationsDefaultConnectionCanBeChanged() - line 99: $ran = $this->migrator->usingConnection('sqlite2', function () { - line 103: $this->assertFalse($this->db->schema()->hasTable('users')); - line 104: $this->assertFalse($this->db->schema()->hasTable('password_resets')); - line 105: $this->assertTrue($this->db->schema('sqlite2')->hasTable('users')); - line 106: $this->assertTrue($this->db->schema('sqlite2')->hasTable('password_resets')); - line 107: $this->assertFalse($this->db->schema('sqlite3')->hasTable('users')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 114: public function testMigrationsCanEachDefineConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 114: public function testMigrationsCanEachDefineConnection() - line 116: $ran = $this->migrator->run([__DIR__.'/migrations/connection_configured']); - line 118: $this->assertFalse($this->db->schema()->hasTable('failed_jobs')); - line 119: $this->assertFalse($this->db->schema()->hasTable('jobs')); - line 120: $this->assertFalse($this->db->schema('sqlite2')->hasTable('failed_jobs')); - line 121: $this->assertFalse($this->db->schema('sqlite2')->hasTable('jobs')); - line 122: $this->assertTrue($this->db->schema('sqlite3')->hasTable('failed_jobs')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 129: public function testMigratorCannotChangeDefinedMigrationConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 129: public function testMigratorCannotChangeDefinedMigrationConnection() - line 131: $ran = $this->migrator->usingConnection('sqlite2', function () { - line 135: $this->assertFalse($this->db->schema()->hasTable('failed_jobs')); - line 136: $this->assertFalse($this->db->schema()->hasTable('jobs')); - line 137: $this->assertFalse($this->db->schema('sqlite2')->hasTable('failed_jobs')); - line 138: $this->assertFalse($this->db->schema('sqlite2')->hasTable('jobs')); - line 139: $this->assertTrue($this->db->schema('sqlite3')->hasTable('failed_jobs')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 146: public function testMigrationsCanBeRolledBack() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 146: public function testMigrationsCanBeRolledBack() - line 148: $this->migrator->run([__DIR__.'/migrations/one']); - line 149: $this->assertTrue($this->db->schema()->hasTable('users')); - line 150: $this->assertTrue($this->db->schema()->hasTable('password_resets')); - line 151: $rolledBack = $this->migrator->rollback([__DIR__.'/migrations/one']); - line 152: $this->assertFalse($this->db->schema()->hasTable('users')); - line 153: $this->assertFalse($this->db->schema()->hasTable('password_resets')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 159: public function testMigrationsCanBeResetUsingAnString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 159: public function testMigrationsCanBeResetUsingAnString() - line 161: $this->migrator->run([__DIR__.'/migrations/one']); - line 162: $this->assertTrue($this->db->schema()->hasTable('users')); - line 163: $this->assertTrue($this->db->schema()->hasTable('password_resets')); - line 164: $rolledBack = $this->migrator->reset(__DIR__.'/migrations/one'); - line 165: $this->assertFalse($this->db->schema()->hasTable('users')); - line 166: $this->assertFalse($this->db->schema()->hasTable('password_resets')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 172: public function testMigrationsCanBeResetUsingAnArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 172: public function testMigrationsCanBeResetUsingAnArray() - line 174: $this->migrator->run([__DIR__.'/migrations/one']); - line 175: $this->assertTrue($this->db->schema()->hasTable('users')); - line 176: $this->assertTrue($this->db->schema()->hasTable('password_resets')); - line 177: $rolledBack = $this->migrator->reset([__DIR__.'/migrations/one']); - line 178: $this->assertFalse($this->db->schema()->hasTable('users')); - line 179: $this->assertFalse($this->db->schema()->hasTable('password_resets')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 185: public function testNoErrorIsThrownWhenNoOutstandingMigrationsExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 185: public function testNoErrorIsThrownWhenNoOutstandingMigrationsExist() - line 187: $this->migrator->run([__DIR__.'/migrations/one']); - line 188: $this->assertTrue($this->db->schema()->hasTable('users')); - line 189: $this->assertTrue($this->db->schema()->hasTable('password_resets')); - line 190: $this->migrator->run([__DIR__.'/migrations/one']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 193: public function testNoErrorIsThrownWhenNothingToRollback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 193: public function testNoErrorIsThrownWhenNothingToRollback() - line 195: $this->migrator->run([__DIR__.'/migrations/one']); - line 196: $this->assertTrue($this->db->schema()->hasTable('users')); - line 197: $this->assertTrue($this->db->schema()->hasTable('password_resets')); - line 198: $this->migrator->rollback([__DIR__.'/migrations/one']); - line 199: $this->assertFalse($this->db->schema()->hasTable('users')); - line 200: $this->assertFalse($this->db->schema()->hasTable('password_resets')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 204: public function testMigrationsCanRunAcrossMultiplePaths() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 204: public function testMigrationsCanRunAcrossMultiplePaths() - line 206: $this->migrator->run([__DIR__.'/migrations/one', __DIR__.'/migrations/two']); - line 207: $this->assertTrue($this->db->schema()->hasTable('users')); - line 208: $this->assertTrue($this->db->schema()->hasTable('password_resets')); - line 209: $this->assertTrue($this->db->schema()->hasTable('flights')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 212: public function testMigrationsCanBeRolledBackAcrossMultiplePaths() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 212: public function testMigrationsCanBeRolledBackAcrossMultiplePaths() - line 214: $this->migrator->run([__DIR__.'/migrations/one', __DIR__.'/migrations/two']); - line 215: $this->assertTrue($this->db->schema()->hasTable('users')); - line 216: $this->assertTrue($this->db->schema()->hasTable('password_resets')); - line 217: $this->assertTrue($this->db->schema()->hasTable('flights')); - line 218: $this->migrator->rollback([__DIR__.'/migrations/one', __DIR__.'/migrations/two']); - line 219: $this->assertFalse($this->db->schema()->hasTable('users')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 224: public function testMigrationsCanBeResetAcrossMultiplePaths() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 224: public function testMigrationsCanBeResetAcrossMultiplePaths() - line 226: $this->migrator->run([__DIR__.'/migrations/one', __DIR__.'/migrations/two']); - line 227: $this->assertTrue($this->db->schema()->hasTable('users')); - line 228: $this->assertTrue($this->db->schema()->hasTable('password_resets')); - line 229: $this->assertTrue($this->db->schema()->hasTable('flights')); - line 230: $this->migrator->reset([__DIR__.'/migrations/one', __DIR__.'/migrations/two']); - line 231: $this->assertFalse($this->db->schema()->hasTable('users')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 258: public function testConnectionPriorToMigrationIsNotChangedAfterMigration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 258: public function testConnectionPriorToMigrationIsNotChangedAfterMigration() - line 260: $this->migrator->setConnection('default'); - line 261: $this->migrator->run([__DIR__.'/migrations/one'], ['database' => 'sqlite2']); - line 262: $this->assertSame('default', $this->migrator->getConnection()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 265: public function testConnectionPriorToMigrationIsNotChangedAfterRollback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 265: public function testConnectionPriorToMigrationIsNotChangedAfterRollback() - line 267: $this->migrator->setConnection('default'); - line 268: $this->migrator->run([__DIR__.'/migrations/one'], ['database' => 'sqlite2']); - line 269: $this->migrator->rollback([__DIR__.'/migrations/one'], ['database' => 'sqlite2']); - line 270: $this->assertSame('default', $this->migrator->getConnection()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 273: public function testConnectionPriorToMigrationIsNotChangedWhenNoOutstandingMigrationsExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 273: public function testConnectionPriorToMigrationIsNotChangedWhenNoOutstandingMigrationsExist() - line 275: $this->migrator->setConnection('default'); - line 276: $this->migrator->run([__DIR__.'/migrations/one'], ['database' => 'sqlite2']); - line 277: $this->migrator->setConnection('default'); - line 278: $this->migrator->run([__DIR__.'/migrations/one'], ['database' => 'sqlite2']); - line 279: $this->assertSame('default', $this->migrator->getConnection()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 282: public function testConnectionPriorToMigrationIsNotChangedWhenNothingToRollback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 282: public function testConnectionPriorToMigrationIsNotChangedWhenNothingToRollback() - line 284: $this->migrator->setConnection('default'); - line 285: $this->migrator->run([__DIR__.'/migrations/one'], ['database' => 'sqlite2']); - line 286: $this->migrator->rollback([__DIR__.'/migrations/one'], ['database' => 'sqlite2']); - line 287: $this->migrator->rollback([__DIR__.'/migrations/one'], ['database' => 'sqlite2']); - line 288: $this->assertSame('default', $this->migrator->getConnection()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 291: public function testConnectionPriorToMigrationIsNotChangedAfterMigrateReset() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 291: public function testConnectionPriorToMigrationIsNotChangedAfterMigrateReset() - line 293: $this->migrator->setConnection('default'); - line 294: $this->migrator->run([__DIR__.'/migrations/one'], ['database' => 'sqlite2']); - line 295: $this->migrator->reset([__DIR__.'/migrations/one'], ['database' => 'sqlite2']); - line 296: $this->assertSame('default', $this->migrator->getConnection()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseMySqlBuilderTest.php - Test @ line 18: public function testCreateDatabase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 18: public function testCreateDatabase() - line 20: $connection = m::mock(Connection::class); - line 31: $builder->createDatabase('my_temporary_database'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 20: $connection = m::mock(Connection::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 18: public function testCreateDatabase() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 34: public function testDropDatabaseIfExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 34: public function testDropDatabaseIfExists() - line 36: $connection = m::mock(Connection::class); - line 46: $builder->dropDatabaseIfExists('my_database_a'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 36: $connection = m::mock(Connection::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function testDropDatabaseIfExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseMySqlProcessorTest.php - Test @ line 10: public function testProcessColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 10: public function testProcessColumns() - line 23: $this->assertEquals($expected, $processor->processColumns($listing)); - line 30: $this->assertEquals($expected, $processor->processColumns($listing)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseMySqlQueryGrammarTest.php - Test @ line 17: public function testToRawSql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 17: public function testToRawSql() - line 19: $connection = m::mock(Connection::class); - line 23: $query = $grammar->substituteBindingsIntoRawSql( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 19: $connection = m::mock(Connection::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 17: public function testToRawSql() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseMySQLSchemaBuilderTest.php - Test @ line 19: public function testHasTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 19: public function testHasTable() - line 21: $connection = m::mock(Connection::class); - line 30: $this->assertTrue($builder->hasTable('table')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 21: $connection = m::mock(Connection::class); - line 22: $grammar = m::mock(MySqlGrammar::class); - Test @ line 33: public function testGetColumnListing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 33: public function testGetColumnListing() - line 35: $connection = m::mock(Connection::class); - line 47: $this->assertEquals(['column'], $builder->getColumnListing('table')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 35: $connection = m::mock(Connection::class); - line 36: $grammar = m::mock(MySqlGrammar::class); - line 37: $processor = m::mock(MySqlProcessor::class); ❌ tests/Database/DatabaseMySqlSchemaGrammarTest.php - Test @ line 22: public function testBasicCreateTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 22: public function testBasicCreateTable() - line 24: $conn = $this->getConnection(); - line 30: $blueprint->create(); - line 31: $blueprint->increments('id'); - line 32: $blueprint->string('email'); - line 34: $statements = $blueprint->toSql(); - line 39: $conn = $this->getConnection(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 22: public function testBasicCreateTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 67: public function testAutoIncrementStartingValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 67: public function testAutoIncrementStartingValue() - line 69: $conn = $this->getConnection(); - line 75: $blueprint->create(); - line 76: $blueprint->increments('id')->startingValue(1000); - line 77: $blueprint->string('email'); - line 79: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 67: public function testAutoIncrementStartingValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 86: public function testAddColumnsWithMultipleAutoIncrementStartingValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 86: public function testAddColumnsWithMultipleAutoIncrementStartingValue() - line 88: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 89: $blueprint->id()->from(100); - line 90: $blueprint->string('name')->from(200); - line 91: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 86: public function testAddColumnsWithMultipleAutoIncrementStartingValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 100: public function testEngineCreateTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 100: public function testEngineCreateTable() - line 102: $conn = $this->getConnection(); - line 107: $blueprint->create(); - line 108: $blueprint->increments('id'); - line 109: $blueprint->string('email'); - line 110: $blueprint->engine('InnoDB'); - line 112: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 100: public function testEngineCreateTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 133: public function testCharsetCollationCreateTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 133: public function testCharsetCollationCreateTable() - line 135: $conn = $this->getConnection(); - line 139: $blueprint->create(); - line 140: $blueprint->increments('id'); - line 141: $blueprint->string('email'); - line 142: $blueprint->charset('utf8mb4'); - line 143: $blueprint->collation('utf8mb4_unicode_ci'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 133: public function testCharsetCollationCreateTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 166: public function testBasicCreateTableWithPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 166: public function testBasicCreateTableWithPrefix() - line 168: $conn = $this->getConnection(prefix: 'prefix_'); - line 172: $blueprint->create(); - line 173: $blueprint->increments('id'); - line 174: $blueprint->string('email'); - line 176: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 166: public function testBasicCreateTableWithPrefix() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 182: public function testCreateTemporaryTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 182: public function testCreateTemporaryTable() - line 184: $conn = $this->getConnection(); - line 188: $blueprint->create(); - line 189: $blueprint->temporary(); - line 190: $blueprint->increments('id'); - line 191: $blueprint->string('email'); - line 193: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 182: public function testCreateTemporaryTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 199: public function testDropTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 199: public function testDropTable() - line 201: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 202: $blueprint->drop(); - line 203: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 199: public function testDropTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 209: public function testDropTableIfExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 209: public function testDropTableIfExists() - line 211: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 212: $blueprint->dropIfExists(); - line 213: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 209: public function testDropTableIfExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 219: public function testDropColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 219: public function testDropColumn() - line 221: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 222: $blueprint->dropColumn('foo'); - line 223: $statements = $blueprint->toSql(); - line 228: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 229: $blueprint->dropColumn(['foo', 'bar']); - line 230: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 219: public function testDropColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 243: public function testDropPrimary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 243: public function testDropPrimary() - line 245: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 246: $blueprint->dropPrimary(); - line 247: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 243: public function testDropPrimary() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 253: public function testDropUnique() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 253: public function testDropUnique() - line 255: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 256: $blueprint->dropUnique('foo'); - line 257: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 253: public function testDropUnique() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 263: public function testDropIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 263: public function testDropIndex() - line 265: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 266: $blueprint->dropIndex('foo'); - line 267: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 263: public function testDropIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 273: public function testDropSpatialIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 273: public function testDropSpatialIndex() - line 275: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 276: $blueprint->dropSpatialIndex(['coordinates']); - line 277: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 273: public function testDropSpatialIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 283: public function testDropForeign() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 283: public function testDropForeign() - line 285: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 286: $blueprint->dropForeign('foo'); - line 287: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 283: public function testDropForeign() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 293: public function testDropTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 293: public function testDropTimestamps() - line 295: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 296: $blueprint->dropTimestamps(); - line 297: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 293: public function testDropTimestamps() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 303: public function testDropTimestampsTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 303: public function testDropTimestampsTz() - line 305: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 306: $blueprint->dropTimestampsTz(); - line 307: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 303: public function testDropTimestampsTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 313: public function testDropMorphs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 313: public function testDropMorphs() - line 315: $blueprint = new Blueprint($this->getConnection(), 'photos'); - line 316: $blueprint->dropMorphs('imageable'); - line 317: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 313: public function testDropMorphs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 324: public function testRenameTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 324: public function testRenameTable() - line 326: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 327: $blueprint->rename('foo'); - line 328: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 324: public function testRenameTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 334: public function testRenameIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 334: public function testRenameIndex() - line 336: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 337: $blueprint->renameIndex('foo', 'bar'); - line 338: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 334: public function testRenameIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 344: public function testAddingPrimaryKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 344: public function testAddingPrimaryKey() - line 346: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 347: $blueprint->primary('foo', 'bar'); - line 348: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 344: public function testAddingPrimaryKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 354: public function testAddingPrimaryKeyWithAlgorithm() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 354: public function testAddingPrimaryKeyWithAlgorithm() - line 356: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 357: $blueprint->primary('foo', 'bar', 'hash'); - line 358: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 354: public function testAddingPrimaryKeyWithAlgorithm() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 364: public function testAddingUniqueKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 364: public function testAddingUniqueKey() - line 366: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 367: $blueprint->unique('foo', 'bar'); - line 368: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 364: public function testAddingUniqueKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 374: public function testAddingIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 374: public function testAddingIndex() - line 376: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 377: $blueprint->index(['foo', 'bar'], 'baz'); - line 378: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 374: public function testAddingIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 384: public function testAddingIndexWithAlgorithm() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 384: public function testAddingIndexWithAlgorithm() - line 386: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 387: $blueprint->index(['foo', 'bar'], 'baz', 'hash'); - line 388: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 384: public function testAddingIndexWithAlgorithm() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 394: public function testAddingFulltextIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 394: public function testAddingFulltextIndex() - line 396: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 397: $blueprint->fulltext('body'); - line 398: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 394: public function testAddingFulltextIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 404: public function testAddingSpatialIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 404: public function testAddingSpatialIndex() - line 406: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 407: $blueprint->spatialIndex('coordinates'); - line 408: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 404: public function testAddingSpatialIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 414: public function testAddingFluentSpatialIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 414: public function testAddingFluentSpatialIndex() - line 416: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 417: $blueprint->geometry('coordinates', 'point')->spatialIndex(); - line 418: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 414: public function testAddingFluentSpatialIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 424: public function testAddingRawIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 424: public function testAddingRawIndex() - line 426: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 427: $blueprint->rawIndex('(function(column))', 'raw_index'); - line 428: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 424: public function testAddingRawIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 434: public function testAddingForeignKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 434: public function testAddingForeignKey() - line 436: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 437: $blueprint->foreign('foo_id')->references('id')->on('orders'); - line 438: $statements = $blueprint->toSql(); - line 443: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 444: $blueprint->foreign('foo_id')->references('id')->on('orders')->cascadeOnDelete(); - line 445: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 434: public function testAddingForeignKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 458: public function testAddingIncrementingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 458: public function testAddingIncrementingID() - line 460: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 461: $blueprint->increments('id'); - line 462: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 458: public function testAddingIncrementingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 468: public function testAddingSmallIncrementingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 468: public function testAddingSmallIncrementingID() - line 470: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 471: $blueprint->smallIncrements('id'); - line 472: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 468: public function testAddingSmallIncrementingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 478: public function testAddingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 478: public function testAddingID() - line 480: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 481: $blueprint->id(); - line 482: $statements = $blueprint->toSql(); - line 487: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 488: $blueprint->id('foo'); - line 489: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 478: public function testAddingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 495: public function testAddingForeignID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 495: public function testAddingForeignID() - line 497: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 498: $foreignId = $blueprint->foreignId('foo'); - line 499: $blueprint->foreignId('company_id')->constrained(); - line 500: $blueprint->foreignId('laravel_idea_id')->constrained(); - line 501: $blueprint->foreignId('team_id')->references('id')->on('teams'); - line 502: $blueprint->foreignId('team_column_id')->constrained('teams'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 495: public function testAddingForeignID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 520: public function testAddingForeignIdSpecifyingIndexNameInConstraint() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 520: public function testAddingForeignIdSpecifyingIndexNameInConstraint() - line 522: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 523: $blueprint->foreignId('company_id')->constrained(indexName: 'my_index'); - line 524: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 520: public function testAddingForeignIdSpecifyingIndexNameInConstraint() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 531: public function testAddingBigIncrementingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 531: public function testAddingBigIncrementingID() - line 533: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 534: $blueprint->bigIncrements('id'); - line 535: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 531: public function testAddingBigIncrementingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 541: public function testAddingColumnInTableFirst() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 541: public function testAddingColumnInTableFirst() - line 543: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 544: $blueprint->string('name')->first(); - line 545: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 541: public function testAddingColumnInTableFirst() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 551: public function testAddingColumnAfterAnotherColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 551: public function testAddingColumnAfterAnotherColumn() - line 553: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 554: $blueprint->string('name')->after('foo'); - line 555: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 551: public function testAddingColumnAfterAnotherColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 561: public function testAddingMultipleColumnsAfterAnotherColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 561: public function testAddingMultipleColumnsAfterAnotherColumn() - line 563: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 564: $blueprint->after('foo', function ($blueprint) { - line 568: $blueprint->string('three'); - line 569: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 561: public function testAddingMultipleColumnsAfterAnotherColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 578: public function testAddingGeneratedColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 578: public function testAddingGeneratedColumn() - line 580: $blueprint = new Blueprint($this->getConnection(), 'products'); - line 581: $blueprint->integer('price'); - line 582: $blueprint->integer('discounted_virtual')->virtualAs('price - 5'); - line 583: $blueprint->integer('discounted_stored')->storedAs('price - 5'); - line 584: $statements = $blueprint->toSql(); - line 593: $blueprint = new Blueprint($this->getConnection(), 'products'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 578: public function testAddingGeneratedColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 607: public function testAddingGeneratedColumnWithCharset() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 607: public function testAddingGeneratedColumnWithCharset() - line 609: $blueprint = new Blueprint($this->getConnection(), 'links'); - line 610: $blueprint->string('url', 2083)->charset('ascii'); - line 611: $blueprint->string('url_hash_virtual', 64)->virtualAs('sha2(url, 256)')->charset('ascii'); - line 612: $blueprint->string('url_hash_stored', 64)->storedAs('sha2(url, 256)')->charset('ascii'); - line 613: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 607: public function testAddingGeneratedColumnWithCharset() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 623: public function testAddingGeneratedColumnByExpression() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 623: public function testAddingGeneratedColumnByExpression() - line 625: $blueprint = new Blueprint($this->getConnection(), 'products'); - line 626: $blueprint->integer('price'); - line 627: $blueprint->integer('discounted_virtual')->virtualAs(new Expression('price - 5')); - line 628: $blueprint->integer('discounted_stored')->storedAs(new Expression('price - 5')); - line 629: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 623: public function testAddingGeneratedColumnByExpression() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 639: public function testAddingInvisibleColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 639: public function testAddingInvisibleColumn() - line 641: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 642: $blueprint->string('secret', 64)->nullable(false)->invisible(); - line 643: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 639: public function testAddingInvisibleColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 649: public function testAddingString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 649: public function testAddingString() - line 651: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 652: $blueprint->string('foo'); - line 653: $statements = $blueprint->toSql(); - line 658: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 659: $blueprint->string('foo', 100); - line 660: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 649: public function testAddingString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 687: public function testAddingText() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 687: public function testAddingText() - line 689: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 690: $blueprint->text('foo'); - line 691: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 687: public function testAddingText() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 697: public function testAddingBigInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 697: public function testAddingBigInteger() - line 699: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 700: $blueprint->bigInteger('foo'); - line 701: $statements = $blueprint->toSql(); - line 706: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 707: $blueprint->bigInteger('foo', true); - line 708: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 697: public function testAddingBigInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 714: public function testAddingInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 714: public function testAddingInteger() - line 716: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 717: $blueprint->integer('foo'); - line 718: $statements = $blueprint->toSql(); - line 723: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 724: $blueprint->integer('foo', true); - line 725: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 714: public function testAddingInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 731: public function testAddingIncrementsWithStartingValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 731: public function testAddingIncrementsWithStartingValues() - line 733: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 734: $blueprint->id()->startingValue(1000); - line 735: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 731: public function testAddingIncrementsWithStartingValues() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 742: public function testAddingMediumInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 742: public function testAddingMediumInteger() - line 744: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 745: $blueprint->mediumInteger('foo'); - line 746: $statements = $blueprint->toSql(); - line 751: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 752: $blueprint->mediumInteger('foo', true); - line 753: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 742: public function testAddingMediumInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 759: public function testAddingSmallInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 759: public function testAddingSmallInteger() - line 761: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 762: $blueprint->smallInteger('foo'); - line 763: $statements = $blueprint->toSql(); - line 768: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 769: $blueprint->smallInteger('foo', true); - line 770: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 759: public function testAddingSmallInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 776: public function testAddingTinyInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 776: public function testAddingTinyInteger() - line 778: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 779: $blueprint->tinyInteger('foo'); - line 780: $statements = $blueprint->toSql(); - line 785: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 786: $blueprint->tinyInteger('foo', true); - line 787: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 776: public function testAddingTinyInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 793: public function testAddingFloat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 793: public function testAddingFloat() - line 795: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 796: $blueprint->float('foo', 5); - line 797: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 793: public function testAddingFloat() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 803: public function testAddingDouble() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 803: public function testAddingDouble() - line 805: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 806: $blueprint->double('foo'); - line 807: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 803: public function testAddingDouble() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 813: public function testAddingDecimal() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 813: public function testAddingDecimal() - line 815: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 816: $blueprint->decimal('foo', 5, 2); - line 817: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 813: public function testAddingDecimal() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 823: public function testAddingBoolean() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 823: public function testAddingBoolean() - line 825: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 826: $blueprint->boolean('foo'); - line 827: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 823: public function testAddingBoolean() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 833: public function testAddingEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 833: public function testAddingEnum() - line 835: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 836: $blueprint->enum('role', ['member', 'admin']); - line 837: $blueprint->enum('status', Foo::cases()); - line 838: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 833: public function testAddingEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 845: public function testAddingSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 845: public function testAddingSet() - line 847: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 849: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 845: public function testAddingSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 855: public function testAddingJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 855: public function testAddingJson() - line 857: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 858: $blueprint->json('foo'); - line 859: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 855: public function testAddingJson() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 865: public function testAddingJsonb() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 865: public function testAddingJsonb() - line 867: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 868: $blueprint->jsonb('foo'); - line 869: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 865: public function testAddingJsonb() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 875: public function testAddingDate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 875: public function testAddingDate() - line 877: $conn = $this->getConnection(); - line 882: $blueprint->date('foo'); - line 883: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 875: public function testAddingDate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 889: public function testAddingDateWithDefaultCurrent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 889: public function testAddingDateWithDefaultCurrent() - line 891: $conn = $this->getConnection(); - line 896: $blueprint->date('foo')->useCurrent(); - line 897: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 889: public function testAddingDateWithDefaultCurrent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 903: public function testAddingDateWithDefaultCurrentOn57() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 903: public function testAddingDateWithDefaultCurrentOn57() - line 905: $conn = $this->getConnection(); - line 910: $blueprint->date('foo')->useCurrent(); - line 911: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 903: public function testAddingDateWithDefaultCurrentOn57() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 917: public function testAddingYear() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 917: public function testAddingYear() - line 919: $conn = $this->getConnection(); - line 924: $blueprint->year('birth_year'); - line 925: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 917: public function testAddingYear() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 930: public function testAddingYearWithDefaultCurrent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 930: public function testAddingYearWithDefaultCurrent() - line 932: $conn = $this->getConnection(); - line 937: $blueprint->year('birth_year')->useCurrent(); - line 938: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 930: public function testAddingYearWithDefaultCurrent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 944: public function testAddingYearWithDefaultCurrentOn57() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 944: public function testAddingYearWithDefaultCurrentOn57() - line 946: $conn = $this->getConnection(); - line 951: $blueprint->year('birth_year')->useCurrent(); - line 952: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 944: public function testAddingYearWithDefaultCurrentOn57() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 958: public function testAddingDateTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 958: public function testAddingDateTime() - line 960: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 961: $blueprint->dateTime('foo'); - line 962: $statements = $blueprint->toSql(); - line 966: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 967: $blueprint->dateTime('foo', 1); - line 968: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 958: public function testAddingDateTime() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 973: public function testAddingDateTimeWithDefaultCurrent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 973: public function testAddingDateTimeWithDefaultCurrent() - line 975: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 976: $blueprint->dateTime('foo')->useCurrent(); - line 977: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 973: public function testAddingDateTimeWithDefaultCurrent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 982: public function testAddingDateTimeWithOnUpdateCurrent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 982: public function testAddingDateTimeWithOnUpdateCurrent() - line 984: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 985: $blueprint->dateTime('foo')->useCurrentOnUpdate(); - line 986: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 982: public function testAddingDateTimeWithOnUpdateCurrent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 991: public function testAddingDateTimeWithDefaultCurrentAndOnUpdateCurrent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 991: public function testAddingDateTimeWithDefaultCurrentAndOnUpdateCurrent() - line 993: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 994: $blueprint->dateTime('foo')->useCurrent()->useCurrentOnUpdate(); - line 995: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 991: public function testAddingDateTimeWithDefaultCurrentAndOnUpdateCurrent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1000: public function testAddingDateTimeWithDefaultCurrentOnUpdateCurrentAndPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1000: public function testAddingDateTimeWithDefaultCurrentOnUpdateCurrentAndPrecision() - line 1002: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1003: $blueprint->dateTime('foo', 3)->useCurrent()->useCurrentOnUpdate(); - line 1004: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1000: public function testAddingDateTimeWithDefaultCurrentOnUpdateCurrentAndPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1009: public function testAddingDateTimeTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1009: public function testAddingDateTimeTz() - line 1011: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1012: $blueprint->dateTimeTz('foo', 1); - line 1013: $statements = $blueprint->toSql(); - line 1017: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1018: $blueprint->dateTimeTz('foo'); - line 1019: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1009: public function testAddingDateTimeTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1024: public function testAddingTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1024: public function testAddingTime() - line 1026: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1027: $blueprint->time('created_at'); - line 1028: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1024: public function testAddingTime() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1033: public function testAddingTimeWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1033: public function testAddingTimeWithPrecision() - line 1035: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1036: $blueprint->time('created_at', 1); - line 1037: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1033: public function testAddingTimeWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1042: public function testAddingTimeTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1042: public function testAddingTimeTz() - line 1044: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1045: $blueprint->timeTz('created_at'); - line 1046: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1042: public function testAddingTimeTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1051: public function testAddingTimeTzWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1051: public function testAddingTimeTzWithPrecision() - line 1053: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1054: $blueprint->timeTz('created_at', 1); - line 1055: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1051: public function testAddingTimeTzWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1060: public function testAddingTimestamp() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1060: public function testAddingTimestamp() - line 1062: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1063: $blueprint->timestamp('created_at'); - line 1064: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1060: public function testAddingTimestamp() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1069: public function testAddingTimestampWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1069: public function testAddingTimestampWithPrecision() - line 1071: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1072: $blueprint->timestamp('created_at', 1); - line 1073: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1069: public function testAddingTimestampWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1078: public function testAddingTimestampWithDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1078: public function testAddingTimestampWithDefault() - line 1080: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1081: $blueprint->timestamp('created_at')->default('2015-07-22 11:43:17'); - line 1082: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1078: public function testAddingTimestampWithDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1087: public function testAddingTimestampWithDefaultCurrentSpecifyingPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1087: public function testAddingTimestampWithDefaultCurrentSpecifyingPrecision() - line 1089: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1090: $blueprint->timestamp('created_at', 1)->useCurrent(); - line 1091: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1087: public function testAddingTimestampWithDefaultCurrentSpecifyingPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1096: public function testAddingTimestampWithOnUpdateCurrentSpecifyingPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1096: public function testAddingTimestampWithOnUpdateCurrentSpecifyingPrecision() - line 1098: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1099: $blueprint->timestamp('created_at', 1)->useCurrentOnUpdate(); - line 1100: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1096: public function testAddingTimestampWithOnUpdateCurrentSpecifyingPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1105: public function testAddingTimestampWithDefaultCurrentAndOnUpdateCurrentSpecifyingPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1105: public function testAddingTimestampWithDefaultCurrentAndOnUpdateCurrentSpecifyingPrecision() - line 1107: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1108: $blueprint->timestamp('created_at', 1)->useCurrent()->useCurrentOnUpdate(); - line 1109: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1105: public function testAddingTimestampWithDefaultCurrentAndOnUpdateCurrentSpecifyingPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1114: public function testAddingTimestampTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1114: public function testAddingTimestampTz() - line 1116: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1117: $blueprint->timestampTz('created_at'); - line 1118: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1114: public function testAddingTimestampTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1123: public function testAddingTimestampTzWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1123: public function testAddingTimestampTzWithPrecision() - line 1125: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1126: $blueprint->timestampTz('created_at', 1); - line 1127: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1123: public function testAddingTimestampTzWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1132: public function testAddingTimeStampTzWithDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1132: public function testAddingTimeStampTzWithDefault() - line 1134: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1135: $blueprint->timestampTz('created_at')->default('2015-07-22 11:43:17'); - line 1136: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1132: public function testAddingTimeStampTzWithDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1141: public function testAddingTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1141: public function testAddingTimestamps() - line 1143: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1144: $blueprint->timestamps(); - line 1145: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1141: public function testAddingTimestamps() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1153: public function testAddingTimestampsTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1153: public function testAddingTimestampsTz() - line 1155: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1156: $blueprint->timestampsTz(); - line 1157: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1153: public function testAddingTimestampsTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1165: public function testAddingRememberToken() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1165: public function testAddingRememberToken() - line 1167: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1168: $blueprint->rememberToken(); - line 1169: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1165: public function testAddingRememberToken() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1175: public function testAddingBinary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1175: public function testAddingBinary() - line 1177: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1178: $blueprint->binary('foo'); - line 1179: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1175: public function testAddingBinary() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1185: public function testAddingUuid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1185: public function testAddingUuid() - line 1187: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1188: $blueprint->uuid('foo'); - line 1189: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1185: public function testAddingUuid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1195: public function testAddingUuidDefaultsColumnName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1195: public function testAddingUuidDefaultsColumnName() - line 1197: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1198: $blueprint->uuid(); - line 1199: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1195: public function testAddingUuidDefaultsColumnName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1205: public function testAddingForeignUuid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 1205: public function testAddingForeignUuid() - line 1207: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1208: $foreignUuid = $blueprint->foreignUuid('foo'); - line 1209: $blueprint->foreignUuid('company_id')->constrained(); - line 1210: $blueprint->foreignUuid('laravel_idea_id')->constrained(); - line 1211: $blueprint->foreignUuid('team_id')->references('id')->on('teams'); - line 1212: $blueprint->foreignUuid('team_column_id')->constrained('teams'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1205: public function testAddingForeignUuid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1230: public function testAddingIpAddress() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1230: public function testAddingIpAddress() - line 1232: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1233: $blueprint->ipAddress('foo'); - line 1234: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1230: public function testAddingIpAddress() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1240: public function testAddingIpAddressDefaultsColumnName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1240: public function testAddingIpAddressDefaultsColumnName() - line 1242: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1243: $blueprint->ipAddress(); - line 1244: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1240: public function testAddingIpAddressDefaultsColumnName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1250: public function testAddingMacAddress() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1250: public function testAddingMacAddress() - line 1252: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1253: $blueprint->macAddress('foo'); - line 1254: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1250: public function testAddingMacAddress() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1260: public function testAddingMacAddressDefaultsColumnName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1260: public function testAddingMacAddressDefaultsColumnName() - line 1262: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1263: $blueprint->macAddress(); - line 1264: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1260: public function testAddingMacAddressDefaultsColumnName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1270: public function testAddingGeometry() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1270: public function testAddingGeometry() - line 1272: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1273: $blueprint->geometry('coordinates'); - line 1274: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1270: public function testAddingGeometry() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1280: public function testAddingGeography() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1280: public function testAddingGeography() - line 1282: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1283: $blueprint->geography('coordinates'); - line 1284: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1280: public function testAddingGeography() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1290: public function testAddingPoint() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1290: public function testAddingPoint() - line 1292: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1293: $blueprint->geometry('coordinates', 'point'); - line 1294: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1290: public function testAddingPoint() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1300: public function testAddingPointWithSrid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1300: public function testAddingPointWithSrid() - line 1302: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1303: $blueprint->geometry('coordinates', 'point', 4326); - line 1304: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1300: public function testAddingPointWithSrid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1310: public function testAddingPointWithSridColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1310: public function testAddingPointWithSridColumn() - line 1312: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1313: $blueprint->geometry('coordinates', 'point', 4326)->after('id'); - line 1314: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1310: public function testAddingPointWithSridColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1320: public function testAddingLineString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1320: public function testAddingLineString() - line 1322: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1323: $blueprint->geometry('coordinates', 'linestring'); - line 1324: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1320: public function testAddingLineString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1330: public function testAddingPolygon() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1330: public function testAddingPolygon() - line 1332: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1333: $blueprint->geometry('coordinates', 'polygon'); - line 1334: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1330: public function testAddingPolygon() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1340: public function testAddingGeometryCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1340: public function testAddingGeometryCollection() - line 1342: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1343: $blueprint->geometry('coordinates', 'geometrycollection'); - line 1344: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1340: public function testAddingGeometryCollection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1350: public function testAddingMultiPoint() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1350: public function testAddingMultiPoint() - line 1352: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1353: $blueprint->geometry('coordinates', 'multipoint'); - line 1354: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1350: public function testAddingMultiPoint() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1360: public function testAddingMultiLineString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1360: public function testAddingMultiLineString() - line 1362: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1363: $blueprint->geometry('coordinates', 'multilinestring'); - line 1364: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1360: public function testAddingMultiLineString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1370: public function testAddingMultiPolygon() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1370: public function testAddingMultiPolygon() - line 1372: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1373: $blueprint->geometry('coordinates', 'multipolygon'); - line 1374: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1370: public function testAddingMultiPolygon() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1380: public function testAddingComment() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1380: public function testAddingComment() - line 1382: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1383: $blueprint->string('foo')->comment("Escape ' when using words like it's"); - line 1384: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1380: public function testAddingComment() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1390: public function testAddingVector() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1390: public function testAddingVector() - line 1392: $blueprint = new Blueprint($this->getConnection(), 'embeddings'); - line 1393: $blueprint->vector('embedding', 384); - line 1394: $statements = $blueprint->toSql($this->getConnection(), $this->getGrammar()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1390: public function testAddingVector() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1400: public function testCreateDatabase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1400: public function testCreateDatabase() - line 1402: $connection = $this->getConnection(); - line 1406: $statement = $this->getGrammar($connection)->compileCreateDatabase('my_database_a'); - line 1413: $connection = $this->getConnection(); - line 1417: $statement = $this->getGrammar($connection)->compileCreateDatabase('my_database_b'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1400: public function testCreateDatabase() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1425: public function testCreateTableWithVirtualAsColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 1425: public function testCreateTableWithVirtualAsColumn() - line 1427: $conn = $this->getConnection(); - line 1433: $blueprint->create(); - line 1434: $blueprint->string('my_column'); - line 1435: $blueprint->string('my_other_column')->virtualAs('my_column'); - line 1437: $statements = $blueprint->toSql(); - line 1442: $conn = $this->getConnection(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1425: public function testCreateTableWithVirtualAsColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1469: public function testCreateTableWithVirtualAsColumnWhenJsonColumnHasArrayKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1469: public function testCreateTableWithVirtualAsColumnWhenJsonColumnHasArrayKey() - line 1471: $conn = $this->getConnection(); - line 1475: $blueprint->create(); - line 1476: $blueprint->string('my_json_column')->virtualAsJson('my_json_column->foo[0][1]'); - line 1478: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1469: public function testCreateTableWithVirtualAsColumnWhenJsonColumnHasArrayKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1484: public function testCreateTableWithStoredAsColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 1484: public function testCreateTableWithStoredAsColumn() - line 1486: $conn = $this->getConnection(); - line 1492: $blueprint->create(); - line 1493: $blueprint->string('my_column'); - line 1494: $blueprint->string('my_other_column')->storedAs('my_column'); - line 1496: $statements = $blueprint->toSql(); - line 1501: $conn = $this->getConnection(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1484: public function testCreateTableWithStoredAsColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1528: public function testDropDatabaseIfExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1528: public function testDropDatabaseIfExists() - line 1530: $statement = $this->getGrammar()->compileDropDatabaseIfExists('my_database_a'); - line 1537: $statement = $this->getGrammar()->compileDropDatabaseIfExists('my_database_b'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1559: public function testDropAllTablesWithPrefixAndSchema() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1559: public function testDropAllTablesWithPrefixAndSchema() - line 1561: $connection = $this->getConnection(prefix: 'prefix_'); - line 1562: $statement = $this->getGrammar($connection)->compileDropAllTables(['schema.alpha', 'schema.beta', 'schema.gamma']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1559: public function testDropAllTablesWithPrefixAndSchema() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1567: public function testDropAllViewsWithPrefixAndSchema() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1567: public function testDropAllViewsWithPrefixAndSchema() - line 1569: $connection = $this->getConnection(prefix: 'prefix_'); - line 1570: $statement = $this->getGrammar($connection)->compileDropAllViews(['schema.alpha', 'schema.beta', 'schema.gamma']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1567: public function testDropAllViewsWithPrefixAndSchema() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1575: public function testGrammarsAreMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1575: public function testGrammarsAreMacroable() - line 1578: $this->getGrammar()::macro('compileReplace', function () { - line 1582: $c = $this->getGrammar()::compileReplace(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1607: public function testAddingColumnWithAlgorithm() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1607: public function testAddingColumnWithAlgorithm() - line 1609: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1610: $blueprint->string('name')->instant(); - line 1611: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1607: public function testAddingColumnWithAlgorithm() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1617: public function testChangingColumnWithAlgorithm() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1617: public function testChangingColumnWithAlgorithm() - line 1619: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1620: $blueprint->string('name', 100)->change()->instant(); - line 1621: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1617: public function testChangingColumnWithAlgorithm() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1627: public function testDroppingColumnWithAlgorithm() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1627: public function testDroppingColumnWithAlgorithm() - line 1629: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1630: $blueprint->dropColumn('name')->instant(); - line 1631: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1627: public function testDroppingColumnWithAlgorithm() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseMySqlSchemaStateTest.php - Test @ line 108: public function testExecuteDumpProcessForDepth() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 108: public function testExecuteDumpProcessForDepth() - line 110: $mockProcess = $this->createMock(Process::class); - line 111: $mockProcess->method('setTimeout')->willReturnSelf(); - line 112: $mockProcess->method('mustRun')->will( - line 116: $mockOutput = $this->createMock(\stdClass::class); - line 119: $schemaState = $this->getMockBuilder(MySqlSchemaState::class) - line 124: $schemaState->method('makeProcess')->willReturn($mockProcess); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 110: $mockProcess = $this->createMock(Process::class); - line 116: $mockOutput = $this->createMock(\stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 108: public function testExecuteDumpProcessForDepth() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabasePostgresBuilderTest.php - Test @ line 19: public function testCreateDatabase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 19: public function testCreateDatabase() - line 21: $connection = m::mock(Connection::class); - line 30: $builder = $this->getBuilder($connection); - line 31: $builder->createDatabase('my_temporary_database'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 21: $connection = m::mock(Connection::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 19: public function testCreateDatabase() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 34: public function testDropDatabaseIfExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 34: public function testDropDatabaseIfExists() - line 36: $connection = m::mock(Connection::class); - line 44: $builder = $this->getBuilder($connection); - line 46: $builder->dropDatabaseIfExists('my_database_a'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 36: $connection = m::mock(Connection::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function testDropDatabaseIfExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 49: public function testHasTableWhenSchemaUnqualifiedAndSearchPathMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 49: public function testHasTableWhenSchemaUnqualifiedAndSearchPathMissing() - line 51: $connection = $this->getConnection(); - line 59: $builder = $this->getBuilder($connection); - line 61: $this->assertTrue($builder->hasTable('foo')); - line 62: $this->assertTrue($builder->hasTable('public.foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 54: $grammar = m::mock(PostgresGrammar::class); - Test @ line 65: public function testHasTableWhenSchemaUnqualifiedAndSearchPathFilled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 65: public function testHasTableWhenSchemaUnqualifiedAndSearchPathFilled() - line 67: $connection = $this->getConnection(); - line 74: $builder = $this->getBuilder($connection); - line 76: $this->assertTrue($builder->hasTable('foo')); - line 77: $this->assertTrue($builder->hasTable('myapp.foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 69: $grammar = m::mock(PostgresGrammar::class); - Test @ line 80: public function testHasTableWhenSchemaUnqualifiedAndSearchPathFallbackFilled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 80: public function testHasTableWhenSchemaUnqualifiedAndSearchPathFallbackFilled() - line 82: $connection = $this->getConnection(); - line 90: $builder = $this->getBuilder($connection); - line 92: $this->assertTrue($builder->hasTable('foo')); - line 93: $this->assertTrue($builder->hasTable('myapp.foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 85: $grammar = m::mock(PostgresGrammar::class); - Test @ line 96: public function testHasTableWhenSchemaUnqualifiedAndSearchPathIsUserVariable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 96: public function testHasTableWhenSchemaUnqualifiedAndSearchPathIsUserVariable() - line 98: $connection = $this->getConnection(); - line 106: $builder = $this->getBuilder($connection); - line 108: $this->assertTrue($builder->hasTable('foo')); - line 109: $this->assertTrue($builder->hasTable('foouser.foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 101: $grammar = m::mock(PostgresGrammar::class); - Test @ line 112: public function testHasTableWhenSchemaQualifiedAndSearchPathMismatches() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 112: public function testHasTableWhenSchemaQualifiedAndSearchPathMismatches() - line 114: $connection = $this->getConnection(); - line 121: $builder = $this->getBuilder($connection); - line 123: $this->assertTrue($builder->hasTable('myapp.foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 116: $grammar = m::mock(PostgresGrammar::class); - Test @ line 126: public function testHasTableWhenDatabaseAndSchemaQualifiedAndSearchPathMismatches() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 126: public function testHasTableWhenDatabaseAndSchemaQualifiedAndSearchPathMismatches() - line 128: $this->expectException(\InvalidArgumentException::class); - line 130: $connection = $this->getConnection(); - line 133: $builder = $this->getBuilder($connection); - line 135: $builder->hasTable('mydatabase.myapp.foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 131: $grammar = m::mock(PostgresGrammar::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 126: public function testHasTableWhenDatabaseAndSchemaQualifiedAndSearchPathMismatches() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 138: public function testGetColumnListingWhenSchemaUnqualifiedAndSearchPathMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 138: public function testGetColumnListingWhenSchemaUnqualifiedAndSearchPathMissing() - line 140: $connection = $this->getConnection(); - line 151: $builder = $this->getBuilder($connection); - line 153: $builder->getColumnListing('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 143: $grammar = m::mock(PostgresGrammar::class); - line 148: $processor = m::mock(PostgresProcessor::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 138: public function testGetColumnListingWhenSchemaUnqualifiedAndSearchPathMissing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 156: public function testGetColumnListingWhenSchemaUnqualifiedAndSearchPathFilled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 156: public function testGetColumnListingWhenSchemaUnqualifiedAndSearchPathFilled() - line 158: $connection = $this->getConnection(); - line 168: $builder = $this->getBuilder($connection); - line 170: $builder->getColumnListing('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 160: $grammar = m::mock(PostgresGrammar::class); - line 165: $processor = m::mock(PostgresProcessor::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 156: public function testGetColumnListingWhenSchemaUnqualifiedAndSearchPathFilled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 173: public function testGetColumnListingWhenSchemaUnqualifiedAndSearchPathIsUserVariable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 173: public function testGetColumnListingWhenSchemaUnqualifiedAndSearchPathIsUserVariable() - line 175: $connection = $this->getConnection(); - line 186: $builder = $this->getBuilder($connection); - line 188: $builder->getColumnListing('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 178: $grammar = m::mock(PostgresGrammar::class); - line 183: $processor = m::mock(PostgresProcessor::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 173: public function testGetColumnListingWhenSchemaUnqualifiedAndSearchPathIsUserVariable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 191: public function testGetColumnListingWhenSchemaQualifiedAndSearchPathMismatches() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 191: public function testGetColumnListingWhenSchemaQualifiedAndSearchPathMismatches() - line 193: $connection = $this->getConnection(); - line 203: $builder = $this->getBuilder($connection); - line 205: $builder->getColumnListing('myapp.foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 195: $grammar = m::mock(PostgresGrammar::class); - line 200: $processor = m::mock(PostgresProcessor::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 191: public function testGetColumnListingWhenSchemaQualifiedAndSearchPathMismatches() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 208: public function testGetColumnWhenDatabaseAndSchemaQualifiedAndSearchPathMismatches() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 208: public function testGetColumnWhenDatabaseAndSchemaQualifiedAndSearchPathMismatches() - line 210: $this->expectException(\InvalidArgumentException::class); - line 212: $connection = $this->getConnection(); - line 216: $builder = $this->getBuilder($connection); - line 218: $builder->getColumnListing('mydatabase.myapp.foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 214: $grammar = m::mock(PostgresGrammar::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 208: public function testGetColumnWhenDatabaseAndSchemaQualifiedAndSearchPathMismatches() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 221: public function testDropAllTablesWhenSearchPathIsString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 221: public function testDropAllTablesWhenSearchPathIsString() - line 223: $connection = $this->getConnection(); - line 235: $builder = $this->getBuilder($connection); - line 237: $builder->dropAllTables(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 226: $grammar = m::mock(PostgresGrammar::class); - line 227: $processor = m::mock(PostgresProcessor::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 221: public function testDropAllTablesWhenSearchPathIsString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 240: public function testDropAllTablesWhenSearchPathIsStringOfMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 240: public function testDropAllTablesWhenSearchPathIsStringOfMany() - line 242: $connection = $this->getConnection(); - line 255: $builder = $this->getBuilder($connection); - line 257: $builder->dropAllTables(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 246: $grammar = m::mock(PostgresGrammar::class); - line 247: $processor = m::mock(PostgresProcessor::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 240: public function testDropAllTablesWhenSearchPathIsStringOfMany() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 260: public function testDropAllTablesWhenSearchPathIsArrayOfMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 260: public function testDropAllTablesWhenSearchPathIsArrayOfMany() - line 262: $connection = $this->getConnection(); - line 280: $builder = $this->getBuilder($connection); - line 282: $builder->dropAllTables(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 271: $grammar = m::mock(PostgresGrammar::class); - line 272: $processor = m::mock(PostgresProcessor::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 260: public function testDropAllTablesWhenSearchPathIsArrayOfMany() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabasePostgresProcessorTest.php - Test @ line 10: public function testProcessColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 10: public function testProcessColumns() - line 27: $this->assertEquals($expected, $processor->processColumns($listing)); - line 34: $this->assertEquals($expected, $processor->processColumns($listing)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabasePostgresQueryGrammarTest.php - Test @ line 18: public function testToRawSql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 18: public function testToRawSql() - line 20: $connection = m::mock(Connection::class); - line 24: $query = $grammar->substituteBindingsIntoRawSql( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 20: $connection = m::mock(Connection::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 18: public function testToRawSql() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 32: public function testCustomOperators() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 32: public function testCustomOperators() - line 34: PostgresGrammar::customOperators(['@@@', '@>', '']); - line 40: $operators = $grammar->getOperators(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 37: $connection = m::mock(Connection::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 32: public function testCustomOperators() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 50: public function testCompileTruncate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 50: public function testCompileTruncate() - line 52: $connection = m::mock(Connection::class); - line 61: ], $postgres->compileTruncate($builder)); - line 67: ], $postgres->compileTruncate($builder)); - line 73: ], $postgres->compileTruncate($builder)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 52: $connection = m::mock(Connection::class); - line 56: $builder = m::mock(Builder::class); ❌ tests/Database/DatabasePostgresSchemaBuilderTest.php - Test @ line 19: public function testHasTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 19: public function testHasTable() - line 21: $connection = m::mock(Connection::class); - line 29: $this->assertTrue($builder->hasTable('table')); - line 30: $this->assertTrue($builder->hasTable('public.table')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 21: $connection = m::mock(Connection::class); - line 22: $grammar = m::mock(PostgresGrammar::class); - Test @ line 33: public function testGetColumnListing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 33: public function testGetColumnListing() - line 35: $connection = m::mock(Connection::class); - line 46: $this->assertEquals(['column'], $builder->getColumnListing('table')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 35: $connection = m::mock(Connection::class); - line 36: $grammar = m::mock(PostgresGrammar::class); - line 37: $processor = m::mock(PostgresProcessor::class); ❌ tests/Database/DatabasePostgresSchemaGrammarTest.php - Test @ line 25: public function testBasicCreateTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 25: public function testBasicCreateTable() - line 27: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 28: $blueprint->create(); - line 29: $blueprint->increments('id'); - line 30: $blueprint->string('email'); - line 31: $blueprint->string('name')->collation('nb_NO.utf8'); - line 32: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 25: public function testBasicCreateTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 49: public function testAddingVector() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 49: public function testAddingVector() - line 51: $blueprint = new Blueprint($this->getConnection(), 'embeddings'); - line 52: $blueprint->vector('embedding', 384); - line 53: $statements = $blueprint->toSql($this->getConnection(), $this->getGrammar()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testAddingVector() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 59: public function testCreateTableWithAutoIncrementStartingValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 59: public function testCreateTableWithAutoIncrementStartingValue() - line 61: $connection = $this->getConnection(); - line 62: $connection->getSchemaBuilder()->shouldReceive('parseSchemaAndTable')->andReturn([null, 'users']); - line 65: $blueprint->create(); - line 66: $blueprint->increments('id')->startingValue(1000); - line 67: $blueprint->string('email'); - line 68: $blueprint->string('name')->collation('nb_NO.utf8'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 59: public function testCreateTableWithAutoIncrementStartingValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 76: public function testAddColumnsWithMultipleAutoIncrementStartingValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 76: public function testAddColumnsWithMultipleAutoIncrementStartingValue() - line 78: $builder = $this->getBuilder(); - line 81: $blueprint = new Blueprint($this->getConnection(builder: $builder), 'users'); - line 82: $blueprint->id()->from(100); - line 83: $blueprint->increments('code')->from(200); - line 84: $blueprint->string('name')->from(300); - line 85: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 76: public function testAddColumnsWithMultipleAutoIncrementStartingValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 96: public function testCreateTableAndCommentColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 96: public function testCreateTableAndCommentColumn() - line 98: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 99: $blueprint->create(); - line 100: $blueprint->increments('id'); - line 101: $blueprint->string('email')->comment('my first comment'); - line 102: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 96: public function testCreateTableAndCommentColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 109: public function testCreateTemporaryTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 109: public function testCreateTemporaryTable() - line 111: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 112: $blueprint->create(); - line 113: $blueprint->temporary(); - line 114: $blueprint->increments('id'); - line 115: $blueprint->string('email'); - line 116: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 109: public function testCreateTemporaryTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 122: public function testDropTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 122: public function testDropTable() - line 124: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 125: $blueprint->drop(); - line 126: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 122: public function testDropTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 132: public function testDropTableIfExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 132: public function testDropTableIfExists() - line 134: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 135: $blueprint->dropIfExists(); - line 136: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 132: public function testDropTableIfExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 142: public function testDropColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 142: public function testDropColumn() - line 144: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 145: $blueprint->dropColumn('foo'); - line 146: $statements = $blueprint->toSql(); - line 151: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 152: $blueprint->dropColumn(['foo', 'bar']); - line 153: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 142: public function testDropColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 166: public function testDropPrimary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 166: public function testDropPrimary() - line 168: $connection = $this->getConnection(); - line 169: $connection->getSchemaBuilder()->shouldReceive('parseSchemaAndTable')->andReturn([null, 'users']); - line 172: $blueprint->dropPrimary(); - line 173: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 166: public function testDropPrimary() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 179: public function testDropUnique() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 179: public function testDropUnique() - line 181: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 182: $blueprint->dropUnique('foo'); - line 183: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 179: public function testDropUnique() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 189: public function testDropIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 189: public function testDropIndex() - line 191: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 192: $blueprint->dropIndex('foo'); - line 193: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 189: public function testDropIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 199: public function testDropSpatialIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 199: public function testDropSpatialIndex() - line 201: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 202: $blueprint->dropSpatialIndex(['coordinates']); - line 203: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 199: public function testDropSpatialIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 209: public function testDropForeign() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 209: public function testDropForeign() - line 211: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 212: $blueprint->dropForeign('foo'); - line 213: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 209: public function testDropForeign() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 219: public function testDropTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 219: public function testDropTimestamps() - line 221: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 222: $blueprint->dropTimestamps(); - line 223: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 219: public function testDropTimestamps() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 229: public function testDropTimestampsTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 229: public function testDropTimestampsTz() - line 231: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 232: $blueprint->dropTimestampsTz(); - line 233: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 229: public function testDropTimestampsTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 239: public function testDropMorphs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 239: public function testDropMorphs() - line 241: $blueprint = new Blueprint($this->getConnection(), 'photos'); - line 242: $blueprint->dropMorphs('imageable'); - line 243: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 239: public function testDropMorphs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 250: public function testRenameTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 250: public function testRenameTable() - line 252: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 253: $blueprint->rename('foo'); - line 254: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 250: public function testRenameTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 260: public function testRenameIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 260: public function testRenameIndex() - line 262: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 263: $blueprint->renameIndex('foo', 'bar'); - line 264: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 260: public function testRenameIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 270: public function testAddingPrimaryKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 270: public function testAddingPrimaryKey() - line 272: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 273: $blueprint->primary('foo'); - line 274: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 270: public function testAddingPrimaryKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 280: public function testAddingUniqueKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 280: public function testAddingUniqueKey() - line 282: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 283: $blueprint->unique('foo', 'bar'); - line 284: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 280: public function testAddingUniqueKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 290: public function testAddingUniqueKeyWithNullsNotDistinct() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 290: public function testAddingUniqueKeyWithNullsNotDistinct() - line 292: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 293: $blueprint->unique('foo', 'bar')->nullsNotDistinct(); - line 294: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 290: public function testAddingUniqueKeyWithNullsNotDistinct() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 300: public function testAddingUniqueKeyWithNullsDistinct() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 300: public function testAddingUniqueKeyWithNullsDistinct() - line 302: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 303: $blueprint->unique('foo', 'bar')->nullsNotDistinct(false); - line 304: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 300: public function testAddingUniqueKeyWithNullsDistinct() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 310: public function testAddingUniqueKeyOnline() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 310: public function testAddingUniqueKeyOnline() - line 312: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 313: $blueprint->unique('foo')->online(); - line 314: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 310: public function testAddingUniqueKeyOnline() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 321: public function testAddingIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 321: public function testAddingIndex() - line 323: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 324: $blueprint->index(['foo', 'bar'], 'baz'); - line 325: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 321: public function testAddingIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 331: public function testAddingIndexWithAlgorithm() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 331: public function testAddingIndexWithAlgorithm() - line 333: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 334: $blueprint->index(['foo', 'bar'], 'baz', 'hash'); - line 335: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 331: public function testAddingIndexWithAlgorithm() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 341: public function testAddingIndexOnline() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 341: public function testAddingIndexOnline() - line 343: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 344: $blueprint->index('foo', 'baz')->online(); - line 345: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 341: public function testAddingIndexOnline() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 351: public function testAddingFulltextIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 351: public function testAddingFulltextIndex() - line 353: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 354: $blueprint->fulltext('body'); - line 355: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 351: public function testAddingFulltextIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 361: public function testAddingFulltextIndexMultipleColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 361: public function testAddingFulltextIndexMultipleColumns() - line 363: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 364: $blueprint->fulltext(['body', 'title']); - line 365: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 361: public function testAddingFulltextIndexMultipleColumns() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 371: public function testAddingFulltextIndexWithLanguage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 371: public function testAddingFulltextIndexWithLanguage() - line 373: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 374: $blueprint->fulltext('body')->language('spanish'); - line 375: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 371: public function testAddingFulltextIndexWithLanguage() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 381: public function testAddingFulltextIndexOnline() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 381: public function testAddingFulltextIndexOnline() - line 383: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 384: $blueprint->fulltext('body')->online(); - line 385: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 381: public function testAddingFulltextIndexOnline() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 391: public function testAddingFulltextIndexWithFluency() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 391: public function testAddingFulltextIndexWithFluency() - line 393: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 394: $blueprint->string('body')->fulltext(); - line 395: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 391: public function testAddingFulltextIndexWithFluency() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 401: public function testAddingSpatialIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 401: public function testAddingSpatialIndex() - line 403: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 404: $blueprint->spatialIndex('coordinates'); - line 405: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 401: public function testAddingSpatialIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 411: public function testAddingSpatialIndexOnline() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 411: public function testAddingSpatialIndexOnline() - line 413: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 414: $blueprint->spatialIndex('coordinates')->online(); - line 415: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 411: public function testAddingSpatialIndexOnline() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 421: public function testAddingFluentSpatialIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 421: public function testAddingFluentSpatialIndex() - line 423: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 424: $blueprint->geometry('coordinates', 'point')->spatialIndex(); - line 425: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 421: public function testAddingFluentSpatialIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 431: public function testAddingSpatialIndexWithOperatorClass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 431: public function testAddingSpatialIndexWithOperatorClass() - line 433: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 434: $blueprint->spatialIndex('coordinates', 'my_index', 'point_ops'); - line 435: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 431: public function testAddingSpatialIndexWithOperatorClass() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 441: public function testAddingSpatialIndexWithOperatorClassMultipleColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 441: public function testAddingSpatialIndexWithOperatorClassMultipleColumns() - line 443: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 444: $blueprint->spatialIndex(['coordinates', 'location'], 'my_index', 'point_ops'); - line 445: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 441: public function testAddingSpatialIndexWithOperatorClassMultipleColumns() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 451: public function testAddingSpatialIndexWithOperatorClassOnline() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 451: public function testAddingSpatialIndexWithOperatorClassOnline() - line 453: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 454: $blueprint->spatialIndex('coordinates', 'my_index', 'point_ops')->online(); - line 455: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 451: public function testAddingSpatialIndexWithOperatorClassOnline() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 461: public function testAddingRawIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 461: public function testAddingRawIndex() - line 463: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 464: $blueprint->rawIndex('(function(column))', 'raw_index'); - line 465: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 461: public function testAddingRawIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 471: public function testAddingRawIndexOnline() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 471: public function testAddingRawIndexOnline() - line 473: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 474: $blueprint->rawIndex('(function(column))', 'raw_index')->online(); - line 475: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 471: public function testAddingRawIndexOnline() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 481: public function testAddingIncrementingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 481: public function testAddingIncrementingID() - line 483: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 484: $blueprint->increments('id'); - line 485: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 481: public function testAddingIncrementingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 491: public function testAddingSmallIncrementingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 491: public function testAddingSmallIncrementingID() - line 493: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 494: $blueprint->smallIncrements('id'); - line 495: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 491: public function testAddingSmallIncrementingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 501: public function testAddingMediumIncrementingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 501: public function testAddingMediumIncrementingID() - line 503: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 504: $blueprint->mediumIncrements('id'); - line 505: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 501: public function testAddingMediumIncrementingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 511: public function testAddingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 511: public function testAddingID() - line 513: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 514: $blueprint->id(); - line 515: $statements = $blueprint->toSql(); - line 520: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 521: $blueprint->id('foo'); - line 522: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 511: public function testAddingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 528: public function testAddingForeignID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 528: public function testAddingForeignID() - line 530: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 531: $foreignId = $blueprint->foreignId('foo'); - line 532: $blueprint->foreignId('company_id')->constrained(); - line 533: $blueprint->foreignId('laravel_idea_id')->constrained(); - line 534: $blueprint->foreignId('team_id')->references('id')->on('teams'); - line 535: $blueprint->foreignId('team_column_id')->constrained('teams'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 528: public function testAddingForeignID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 553: public function testAddingForeignIdSpecifyingIndexNameInConstraint() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 553: public function testAddingForeignIdSpecifyingIndexNameInConstraint() - line 555: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 556: $blueprint->foreignId('company_id')->constrained(indexName: 'my_index'); - line 557: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 553: public function testAddingForeignIdSpecifyingIndexNameInConstraint() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 564: public function testAddingBigIncrementingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 564: public function testAddingBigIncrementingID() - line 566: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 567: $blueprint->bigIncrements('id'); - line 568: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 564: public function testAddingBigIncrementingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 574: public function testAddingString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 574: public function testAddingString() - line 576: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 577: $blueprint->string('foo'); - line 578: $statements = $blueprint->toSql(); - line 583: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 584: $blueprint->string('foo', 100); - line 585: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 574: public function testAddingString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 598: public function testAddingStringWithoutLengthLimit() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 598: public function testAddingStringWithoutLengthLimit() - line 600: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 601: $blueprint->string('foo'); - line 602: $statements = $blueprint->toSql(); - line 609: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 610: $blueprint->string('foo'); - line 611: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 598: public function testAddingStringWithoutLengthLimit() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 621: public function testAddingCharWithoutLengthLimit() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 621: public function testAddingCharWithoutLengthLimit() - line 623: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 624: $blueprint->char('foo'); - line 625: $statements = $blueprint->toSql(); - line 632: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 633: $blueprint->char('foo'); - line 634: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 621: public function testAddingCharWithoutLengthLimit() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 644: public function testAddingText() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 644: public function testAddingText() - line 646: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 647: $blueprint->text('foo'); - line 648: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 644: public function testAddingText() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 654: public function testAddingBigInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 654: public function testAddingBigInteger() - line 656: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 657: $blueprint->bigInteger('foo'); - line 658: $statements = $blueprint->toSql(); - line 663: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 664: $blueprint->bigInteger('foo', true); - line 665: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 654: public function testAddingBigInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 671: public function testAddingInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 671: public function testAddingInteger() - line 673: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 674: $blueprint->integer('foo'); - line 675: $statements = $blueprint->toSql(); - line 680: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 681: $blueprint->integer('foo', true); - line 682: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 671: public function testAddingInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 688: public function testAddingMediumInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 688: public function testAddingMediumInteger() - line 690: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 691: $blueprint->mediumInteger('foo'); - line 692: $statements = $blueprint->toSql(); - line 697: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 698: $blueprint->mediumInteger('foo', true); - line 699: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 688: public function testAddingMediumInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 705: public function testAddingTinyInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 705: public function testAddingTinyInteger() - line 707: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 708: $blueprint->tinyInteger('foo'); - line 709: $statements = $blueprint->toSql(); - line 714: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 715: $blueprint->tinyInteger('foo', true); - line 716: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 705: public function testAddingTinyInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 722: public function testAddingSmallInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 722: public function testAddingSmallInteger() - line 724: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 725: $blueprint->smallInteger('foo'); - line 726: $statements = $blueprint->toSql(); - line 731: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 732: $blueprint->smallInteger('foo', true); - line 733: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 722: public function testAddingSmallInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 739: public function testAddingFloat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 739: public function testAddingFloat() - line 741: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 742: $blueprint->float('foo', 5); - line 743: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 739: public function testAddingFloat() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 749: public function testAddingDouble() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 749: public function testAddingDouble() - line 751: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 752: $blueprint->double('foo'); - line 753: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 749: public function testAddingDouble() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 759: public function testAddingDecimal() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 759: public function testAddingDecimal() - line 761: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 762: $blueprint->decimal('foo', 5, 2); - line 763: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 759: public function testAddingDecimal() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 769: public function testAddingBoolean() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 769: public function testAddingBoolean() - line 771: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 772: $blueprint->boolean('foo'); - line 773: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 769: public function testAddingBoolean() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 779: public function testAddingEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 779: public function testAddingEnum() - line 781: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 782: $blueprint->enum('role', ['member', 'admin']); - line 783: $blueprint->enum('status', Foo::cases()); - line 784: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 779: public function testAddingEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 791: public function testAddingDate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 791: public function testAddingDate() - line 793: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 794: $blueprint->date('foo'); - line 795: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 791: public function testAddingDate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 801: public function testAddingDateWithDefaultCurrent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 801: public function testAddingDateWithDefaultCurrent() - line 803: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 804: $blueprint->date('foo')->useCurrent(); - line 805: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 801: public function testAddingDateWithDefaultCurrent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 811: public function testAddingYear() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 811: public function testAddingYear() - line 813: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 814: $blueprint->year('birth_year'); - line 815: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 811: public function testAddingYear() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 820: public function testAddingYearWithDefaultCurrent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 820: public function testAddingYearWithDefaultCurrent() - line 822: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 823: $blueprint->year('birth_year')->useCurrent(); - line 824: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 820: public function testAddingYearWithDefaultCurrent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 829: public function testAddingJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 829: public function testAddingJson() - line 831: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 832: $blueprint->json('foo'); - line 833: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 829: public function testAddingJson() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 839: public function testAddingJsonb() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 839: public function testAddingJsonb() - line 841: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 842: $blueprint->jsonb('foo'); - line 843: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 839: public function testAddingJsonb() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 850: public function testAddingDatetimeMethods(string $method, string $type, ?int $userPrecision, false|int|null $grammarPrecision, ?int $expected) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 850: public function testAddingDatetimeMethods(string $method, string $type, ?int $userPrecision, false|int|null $grammarPrecision, ?int $expected) - line 852: PostgresBuilder::defaultTimePrecision($grammarPrecision); - line 853: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 855: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 850: public function testAddingDatetimeMethods(string $method, string $type, ?int $userPrecision, false|int|null $grammarPrecision, ?int $expected) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 864: public function testAddingTimestamps(string $method) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 864: public function testAddingTimestamps(string $method) - line 866: PostgresBuilder::defaultTimePrecision(0); - line 867: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 869: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 864: public function testAddingTimestamps(string $method) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 878: public function testAddingBinary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 878: public function testAddingBinary() - line 880: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 881: $blueprint->binary('foo'); - line 882: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 878: public function testAddingBinary() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 888: public function testAddingUuid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 888: public function testAddingUuid() - line 890: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 891: $blueprint->uuid('foo'); - line 892: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 888: public function testAddingUuid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 898: public function testAddingUuidDefaultsColumnName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 898: public function testAddingUuidDefaultsColumnName() - line 900: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 901: $blueprint->uuid(); - line 902: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 898: public function testAddingUuidDefaultsColumnName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 908: public function testAddingForeignUuid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 908: public function testAddingForeignUuid() - line 910: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 911: $foreignUuid = $blueprint->foreignUuid('foo'); - line 912: $blueprint->foreignUuid('company_id')->constrained(); - line 913: $blueprint->foreignUuid('laravel_idea_id')->constrained(); - line 914: $blueprint->foreignUuid('team_id')->references('id')->on('teams'); - line 915: $blueprint->foreignUuid('team_column_id')->constrained('teams'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 908: public function testAddingForeignUuid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 933: public function testAddingGeneratedAs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 933: public function testAddingGeneratedAs() - line 935: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 936: $blueprint->increments('foo')->generatedAs(); - line 937: $statements = $blueprint->toSql(); - line 941: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 942: $blueprint->increments('foo')->generatedAs()->always(); - line 943: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 933: public function testAddingGeneratedAs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 960: public function testAddingVirtualAs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 960: public function testAddingVirtualAs() - line 962: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 963: $blueprint->integer('foo')->nullable(); - line 964: $blueprint->boolean('bar')->virtualAs('foo is not null'); - line 965: $statements = $blueprint->toSql(); - line 972: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 973: $blueprint->integer('foo')->nullable(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 960: public function testAddingVirtualAs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 983: public function testAddingStoredAs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 983: public function testAddingStoredAs() - line 985: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 986: $blueprint->integer('foo')->nullable(); - line 987: $blueprint->boolean('bar')->storedAs('foo is not null'); - line 988: $statements = $blueprint->toSql(); - line 995: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 996: $blueprint->integer('foo')->nullable(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 983: public function testAddingStoredAs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1006: public function testAddingIpAddress() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1006: public function testAddingIpAddress() - line 1008: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1009: $blueprint->ipAddress('foo'); - line 1010: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1006: public function testAddingIpAddress() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1016: public function testAddingIpAddressDefaultsColumnName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1016: public function testAddingIpAddressDefaultsColumnName() - line 1018: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1019: $blueprint->ipAddress(); - line 1020: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1016: public function testAddingIpAddressDefaultsColumnName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1026: public function testAddingMacAddress() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1026: public function testAddingMacAddress() - line 1028: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1029: $blueprint->macAddress('foo'); - line 1030: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1026: public function testAddingMacAddress() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1036: public function testAddingMacAddressDefaultsColumnName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1036: public function testAddingMacAddressDefaultsColumnName() - line 1038: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1039: $blueprint->macAddress(); - line 1040: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1036: public function testAddingMacAddressDefaultsColumnName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1046: public function testCompileForeign() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 1046: public function testCompileForeign() - line 1048: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1049: $blueprint->foreign('parent_id')->references('id')->on('parents')->onDelete('cascade')->deferrable(); - line 1050: $statements = $blueprint->toSql(); - line 1055: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1056: $blueprint->foreign('parent_id')->references('id')->on('parents')->onDelete('cascade')->deferrable(false)->initiallyImmediate(); - line 1057: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1046: public function testCompileForeign() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1077: public function testAddingGeometry() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1077: public function testAddingGeometry() - line 1079: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1080: $blueprint->geometry('coordinates'); - line 1081: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1077: public function testAddingGeometry() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1087: public function testAddingGeography() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1087: public function testAddingGeography() - line 1089: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1090: $blueprint->geography('coordinates', 'pointzm', 4269); - line 1091: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1087: public function testAddingGeography() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1097: public function testAddingPoint() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1097: public function testAddingPoint() - line 1099: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1100: $blueprint->geometry('coordinates', 'point'); - line 1101: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1097: public function testAddingPoint() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1107: public function testAddingPointWithSrid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1107: public function testAddingPointWithSrid() - line 1109: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1110: $blueprint->geometry('coordinates', 'point', 4269); - line 1111: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1107: public function testAddingPointWithSrid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1117: public function testAddingLineString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1117: public function testAddingLineString() - line 1119: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1120: $blueprint->geometry('coordinates', 'linestring'); - line 1121: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1117: public function testAddingLineString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1127: public function testAddingPolygon() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1127: public function testAddingPolygon() - line 1129: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1130: $blueprint->geometry('coordinates', 'polygon'); - line 1131: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1127: public function testAddingPolygon() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1137: public function testAddingGeometryCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1137: public function testAddingGeometryCollection() - line 1139: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1140: $blueprint->geometry('coordinates', 'geometrycollection'); - line 1141: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1137: public function testAddingGeometryCollection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1147: public function testAddingMultiPoint() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1147: public function testAddingMultiPoint() - line 1149: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1150: $blueprint->geometry('coordinates', 'multipoint'); - line 1151: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1147: public function testAddingMultiPoint() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1157: public function testAddingMultiLineString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1157: public function testAddingMultiLineString() - line 1159: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1160: $blueprint->geometry('coordinates', 'multilinestring'); - line 1161: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1157: public function testAddingMultiLineString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1167: public function testAddingMultiPolygon() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1167: public function testAddingMultiPolygon() - line 1169: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 1170: $blueprint->geometry('coordinates', 'multipolygon'); - line 1171: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1167: public function testAddingMultiPolygon() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1177: public function testCreateDatabase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1177: public function testCreateDatabase() - line 1179: $connection = $this->getConnection(); - line 1181: $statement = $this->getGrammar($connection)->compileCreateDatabase('my_database_a'); - line 1188: $connection = $this->getConnection(); - line 1190: $statement = $this->getGrammar($connection)->compileCreateDatabase('my_database_b'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1177: public function testCreateDatabase() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1198: public function testDropDatabaseIfExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1198: public function testDropDatabaseIfExists() - line 1200: $statement = $this->getGrammar()->compileDropDatabaseIfExists('my_database_a'); - line 1207: $statement = $this->getGrammar()->compileDropDatabaseIfExists('my_database_b'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1236: public function testDropAllTablesWithPrefixAndSchema() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1236: public function testDropAllTablesWithPrefixAndSchema() - line 1238: $connection = $this->getConnection(prefix: 'prefix_'); - line 1239: $statement = $this->getGrammar($connection)->compileDropAllTables(['schema.alpha', 'schema.beta', 'schema.gamma']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1236: public function testDropAllTablesWithPrefixAndSchema() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1244: public function testDropAllViewsWithPrefixAndSchema() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1244: public function testDropAllViewsWithPrefixAndSchema() - line 1246: $connection = $this->getConnection(prefix: 'prefix_'); - line 1247: $statement = $this->getGrammar($connection)->compileDropAllViews(['schema.alpha', 'schema.beta', 'schema.gamma']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1244: public function testDropAllViewsWithPrefixAndSchema() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1252: public function testDropAllTypesWithPrefixAndSchema() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1252: public function testDropAllTypesWithPrefixAndSchema() - line 1254: $connection = $this->getConnection(prefix: 'prefix_'); - line 1255: $statement = $this->getGrammar($connection)->compileDropAllTypes(['schema.alpha', 'schema.beta', 'schema.gamma']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1252: public function testDropAllTypesWithPrefixAndSchema() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1260: public function testDropAllDomainsWithPrefixAndSchema() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1260: public function testDropAllDomainsWithPrefixAndSchema() - line 1262: $connection = $this->getConnection(prefix: 'prefix_'); - line 1263: $statement = $this->getGrammar($connection)->compileDropAllDomains(['schema.alpha', 'schema.beta', 'schema.gamma']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1260: public function testDropAllDomainsWithPrefixAndSchema() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1268: public function testCompileColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1268: public function testCompileColumns() - line 1270: $connection = $this->getConnection(); - line 1273: $statement = $connection->getSchemaGrammar()->compileColumns('public', 'table'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1268: public function testCompileColumns() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1335: public function testGrammarsAreMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1335: public function testGrammarsAreMacroable() - line 1338: $this->getGrammar()::macro('compileReplace', function () { - line 1342: $c = $this->getGrammar()::compileReplace(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseProcessorTest.php - Test @ line 19: public function testInsertGetIdProcessing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 19: public function testInsertGetIdProcessing() - line 21: $pdo = $this->createMock(ProcessorTestPDOStub::class); - line 22: $pdo->expects($this->once())->method('lastInsertId')->with($this->equalTo('id'))->willReturn('1'); - line 29: $result = $processor->processInsertGetId($builder, 'sql', ['foo'], 'id'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 21: $pdo = $this->createMock(ProcessorTestPDOStub::class); - line 23: $connection = m::mock(Connection::class); - line 26: $builder = m::mock(Builder::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 19: public function testInsertGetIdProcessing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseQueryBuilderTest.php - Test @ line 47: public function testBasicSelect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 47: public function testBasicSelect() - line 49: $builder = $this->getBuilder(); - line 50: $builder->select('*')->from('users'); - line 51: $this->assertSame('select * from "users"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 54: public function testBasicSelectWithGetColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 54: public function testBasicSelectWithGetColumns() - line 56: $builder = $this->getBuilder(); - line 57: $builder->getProcessor()->shouldReceive('processSelect'); - line 58: $builder->getConnection()->shouldReceive('select')->once()->andReturnUsing(function ($sql) { - line 61: $builder->getConnection()->shouldReceive('select')->once()->andReturnUsing(function ($sql) { - line 64: $builder->getConnection()->shouldReceive('select')->once()->andReturnUsing(function ($sql) { - line 68: $builder->from('users')->get(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 81: public function testBasicSelectUseWritePdo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 81: public function testBasicSelectUseWritePdo() - line 83: $builder = $this->getMySqlBuilderWithProcessor(); - line 84: $builder->getConnection()->shouldReceive('select')->once() - line 86: $builder->useWritePdo()->select('*')->from('users')->get(); - line 88: $builder = $this->getMySqlBuilderWithProcessor(); - line 89: $builder->getConnection()->shouldReceive('select')->once() - line 91: $builder->select('*')->from('users')->get(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 81: public function testBasicSelectUseWritePdo() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 94: public function testBasicTableWrappingProtectsQuotationMarks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 94: public function testBasicTableWrappingProtectsQuotationMarks() - line 96: $builder = $this->getBuilder(); - line 97: $builder->select('*')->from('some"table'); - line 98: $this->assertSame('select * from "some""table"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 101: public function testAliasWrappingAsWholeConstant() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 101: public function testAliasWrappingAsWholeConstant() - line 103: $builder = $this->getBuilder(); - line 104: $builder->select('x.y as foo.bar')->from('baz'); - line 105: $this->assertSame('select "x"."y" as "foo.bar" from "baz"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 108: public function testAliasWrappingWithSpacesInDatabaseName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 108: public function testAliasWrappingWithSpacesInDatabaseName() - line 110: $builder = $this->getBuilder(); - line 111: $builder->select('w x.y.z as foo.bar')->from('baz'); - line 112: $this->assertSame('select "w x"."y"."z" as "foo.bar" from "baz"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 115: public function testAddingSelects() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 115: public function testAddingSelects() - line 117: $builder = $this->getBuilder(); - line 118: $builder->select('foo')->addSelect('bar')->addSelect(['baz', 'boom'])->addSelect('bar')->from('users'); - line 119: $this->assertSame('select "foo", "bar", "baz", "boom" from "users"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 122: public function testBasicSelectWithPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 122: public function testBasicSelectWithPrefix() - line 124: $builder = $this->getBuilder(prefix: 'prefix_'); - line 125: $builder->select('*')->from('users'); - line 126: $this->assertSame('select * from "prefix_users"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 129: public function testBasicSelectDistinct() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 129: public function testBasicSelectDistinct() - line 131: $builder = $this->getBuilder(); - line 132: $builder->distinct()->select('foo', 'bar')->from('users'); - line 133: $this->assertSame('select distinct "foo", "bar" from "users"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 136: public function testBasicSelectDistinctOnColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 136: public function testBasicSelectDistinctOnColumns() - line 138: $builder = $this->getBuilder(); - line 139: $builder->distinct('foo')->select('foo', 'bar')->from('users'); - line 140: $this->assertSame('select distinct "foo", "bar" from "users"', $builder->toSql()); - line 142: $builder = $this->getPostgresBuilder(); - line 143: $builder->distinct('foo')->select('foo', 'bar')->from('users'); - line 144: $this->assertSame('select distinct on ("foo") "foo", "bar" from "users"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 147: public function testBasicAlias() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 147: public function testBasicAlias() - line 149: $builder = $this->getBuilder(); - line 150: $builder->select('foo as bar')->from('users'); - line 151: $this->assertSame('select "foo" as "bar" from "users"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 154: public function testAliasWithPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 154: public function testAliasWithPrefix() - line 156: $builder = $this->getBuilder(prefix: 'prefix_'); - line 157: $builder->select('*')->from('users as people'); - line 158: $this->assertSame('select * from "prefix_users" as "prefix_people"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 161: public function testJoinAliasesWithPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 161: public function testJoinAliasesWithPrefix() - line 163: $builder = $this->getBuilder(prefix: 'prefix_'); - line 164: $builder->select('*')->from('services')->join('translations AS t', 't.item_id', '=', 'services.id'); - line 165: $this->assertSame('select * from "prefix_services" inner join "prefix_translations" as "prefix_t" on "prefix_t"."item_id" = "prefix_services"."id"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 168: public function testBasicTableWrapping() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 168: public function testBasicTableWrapping() - line 170: $builder = $this->getBuilder(); - line 171: $builder->select('*')->from('public.users'); - line 172: $this->assertSame('select * from "public"."users"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 175: public function testWhenCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 175: public function testWhenCallback() - line 180: $query->where('id', '=', 1); - line 183: $builder = $this->getBuilder(); - line 184: $builder->select('*')->from('users')->when(true, $callback)->where('email', 'foo'); - line 185: $this->assertSame('select * from "users" where "id" = ? and "email" = ?', $builder->toSql()); - line 187: $builder = $this->getBuilder(); - line 188: $builder->select('*')->from('users')->when(false, $callback)->where('email', 'foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 192: public function testWhenCallbackWithReturn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 192: public function testWhenCallbackWithReturn() - line 197: return $query->where('id', '=', 1); - line 200: $builder = $this->getBuilder(); - line 201: $builder->select('*')->from('users')->when(true, $callback)->where('email', 'foo'); - line 202: $this->assertSame('select * from "users" where "id" = ? and "email" = ?', $builder->toSql()); - line 204: $builder = $this->getBuilder(); - line 205: $builder->select('*')->from('users')->when(false, $callback)->where('email', 'foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 209: public function testWhenCallbackWithDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 209: public function testWhenCallbackWithDefault() - line 214: $query->where('id', '=', 1); - line 220: $query->where('id', '=', 2); - line 223: $builder = $this->getBuilder(); - line 224: $builder->select('*')->from('users')->when('truthy', $callback, $default)->where('email', 'foo'); - line 225: $this->assertSame('select * from "users" where "id" = ? and "email" = ?', $builder->toSql()); - line 226: $this->assertEquals([0 => 1, 1 => 'foo'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 234: public function testUnlessCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 234: public function testUnlessCallback() - line 239: $query->where('id', '=', 1); - line 242: $builder = $this->getBuilder(); - line 243: $builder->select('*')->from('users')->unless(false, $callback)->where('email', 'foo'); - line 244: $this->assertSame('select * from "users" where "id" = ? and "email" = ?', $builder->toSql()); - line 246: $builder = $this->getBuilder(); - line 247: $builder->select('*')->from('users')->unless(true, $callback)->where('email', 'foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 251: public function testUnlessCallbackWithReturn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 251: public function testUnlessCallbackWithReturn() - line 256: return $query->where('id', '=', 1); - line 259: $builder = $this->getBuilder(); - line 260: $builder->select('*')->from('users')->unless(false, $callback)->where('email', 'foo'); - line 261: $this->assertSame('select * from "users" where "id" = ? and "email" = ?', $builder->toSql()); - line 263: $builder = $this->getBuilder(); - line 264: $builder->select('*')->from('users')->unless(true, $callback)->where('email', 'foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 268: public function testUnlessCallbackWithDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 268: public function testUnlessCallbackWithDefault() - line 273: $query->where('id', '=', 1); - line 279: $query->where('id', '=', 2); - line 282: $builder = $this->getBuilder(); - line 283: $builder->select('*')->from('users')->unless(0, $callback, $default)->where('email', 'foo'); - line 284: $this->assertSame('select * from "users" where "id" = ? and "email" = ?', $builder->toSql()); - line 285: $this->assertEquals([0 => 1, 1 => 'foo'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 293: public function testTapCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 293: public function testTapCallback() - line 296: return $query->where('id', '=', 1); - line 299: $builder = $this->getBuilder(); - line 300: $builder->select('*')->from('users')->tap($callback)->where('email', 'foo'); - line 301: $this->assertSame('select * from "users" where "id" = ? and "email" = ?', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 304: public function testPipeCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 304: public function testPipeCallback() - line 306: $query = $this->getBuilder(); - line 308: $result = $query->pipe(fn (Builder $query) => 5); - line 311: $result = $query->pipe(fn (Builder $query) => null); - line 314: $result = $query->pipe(function (Builder $query) { - line 320: $result = $query->pipe(fn (Builder $query) => $query->where('foo', 'bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 325: public function testBasicWheres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 325: public function testBasicWheres() - line 327: $builder = $this->getBuilder(); - line 328: $builder->select('*')->from('users')->where('id', '=', 1); - line 329: $this->assertSame('select * from "users" where "id" = ?', $builder->toSql()); - line 330: $this->assertEquals([0 => 1], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 333: public function testBasicWhereNot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 333: public function testBasicWhereNot() - line 335: $builder = $this->getBuilder(); - line 336: $builder->select('*')->from('users')->whereNot('name', 'foo')->whereNot('name', '<>', 'bar'); - line 337: $this->assertSame('select * from "users" where not "name" = ? and not "name" <> ?', $builder->toSql()); - line 338: $this->assertEquals(['foo', 'bar'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 341: public function testWheresWithArrayValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 20. Evidence: - line 341: public function testWheresWithArrayValue() - line 343: $builder = $this->getBuilder(); - line 344: $builder->select('*')->from('users')->where('id', [12]); - line 345: $this->assertSame('select * from "users" where "id" = ?', $builder->toSql()); - line 346: $this->assertEquals([0 => 12], $builder->getBindings()); - line 348: $builder = $this->getBuilder(); - line 349: $builder->select('*')->from('users')->where('id', '=', [12, 30]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 369: public function testMySqlWrappingProtectsQuotationMarks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 369: public function testMySqlWrappingProtectsQuotationMarks() - line 371: $builder = $this->getMySqlBuilder(); - line 372: $builder->select('*')->From('some`table'); - line 373: $this->assertSame('select * from `some``table`', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 376: public function testDateBasedWheresAcceptsTwoArguments() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 376: public function testDateBasedWheresAcceptsTwoArguments() - line 378: $builder = $this->getMySqlBuilder(); - line 379: $builder->select('*')->from('users')->whereDate('created_at', 1); - line 380: $this->assertSame('select * from `users` where date(`created_at`) = ?', $builder->toSql()); - line 382: $builder = $this->getMySqlBuilder(); - line 383: $builder->select('*')->from('users')->whereDay('created_at', 1); - line 384: $this->assertSame('select * from `users` where day(`created_at`) = ?', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 395: public function testDateBasedOrWheresAcceptsTwoArguments() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 395: public function testDateBasedOrWheresAcceptsTwoArguments() - line 397: $builder = $this->getMySqlBuilder(); - line 398: $builder->select('*')->from('users')->where('id', 1)->orWhereDate('created_at', 1); - line 399: $this->assertSame('select * from `users` where `id` = ? or date(`created_at`) = ?', $builder->toSql()); - line 401: $builder = $this->getMySqlBuilder(); - line 402: $builder->select('*')->from('users')->where('id', 1)->orWhereDay('created_at', 1); - line 403: $this->assertSame('select * from `users` where `id` = ? or day(`created_at`) = ?', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 414: public function testDateBasedWheresExpressionIsNotBound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 414: public function testDateBasedWheresExpressionIsNotBound() - line 416: $builder = $this->getBuilder(); - line 417: $builder->select('*')->from('users')->whereDate('created_at', new Raw('NOW()'))->where('admin', true); - line 418: $this->assertEquals([true], $builder->getBindings()); - line 420: $builder = $this->getBuilder(); - line 421: $builder->select('*')->from('users')->whereDay('created_at', new Raw('NOW()')); - line 422: $this->assertEquals([], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 433: public function testWhereDateMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 433: public function testWhereDateMySql() - line 435: $builder = $this->getMySqlBuilder(); - line 436: $builder->select('*')->from('users')->whereDate('created_at', '=', '2015-12-21'); - line 437: $this->assertSame('select * from `users` where date(`created_at`) = ?', $builder->toSql()); - line 438: $this->assertEquals([0 => '2015-12-21'], $builder->getBindings()); - line 440: $builder = $this->getMySqlBuilder(); - line 441: $builder->select('*')->from('users')->whereDate('created_at', '=', new Raw('NOW()')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 445: public function testWhereDayMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 445: public function testWhereDayMySql() - line 447: $builder = $this->getMySqlBuilder(); - line 448: $builder->select('*')->from('users')->whereDay('created_at', '=', 1); - line 449: $this->assertSame('select * from `users` where day(`created_at`) = ?', $builder->toSql()); - line 450: $this->assertEquals([0 => 1], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 453: public function testOrWhereDayMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 453: public function testOrWhereDayMySql() - line 455: $builder = $this->getMySqlBuilder(); - line 456: $builder->select('*')->from('users')->whereDay('created_at', '=', 1)->orWhereDay('created_at', '=', 2); - line 457: $this->assertSame('select * from `users` where day(`created_at`) = ? or day(`created_at`) = ?', $builder->toSql()); - line 458: $this->assertEquals([0 => 1, 1 => 2], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 461: public function testOrWhereDayPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 461: public function testOrWhereDayPostgres() - line 463: $builder = $this->getPostgresBuilder(); - line 464: $builder->select('*')->from('users')->whereDay('created_at', '=', 1)->orWhereDay('created_at', '=', 2); - line 465: $this->assertSame('select * from "users" where extract(day from "created_at") = ? or extract(day from "created_at") = ?', $builder->toSql()); - line 466: $this->assertEquals([0 => 1, 1 => 2], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 469: public function testOrWhereDaySqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 469: public function testOrWhereDaySqlServer() - line 471: $builder = $this->getSqlServerBuilder(); - line 472: $builder->select('*')->from('users')->whereDay('created_at', '=', 1)->orWhereDay('created_at', '=', 2); - line 473: $this->assertSame('select * from [users] where day([created_at]) = ? or day([created_at]) = ?', $builder->toSql()); - line 474: $this->assertEquals([0 => 1, 1 => 2], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 477: public function testWhereMonthMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 477: public function testWhereMonthMySql() - line 479: $builder = $this->getMySqlBuilder(); - line 480: $builder->select('*')->from('users')->whereMonth('created_at', '=', 5); - line 481: $this->assertSame('select * from `users` where month(`created_at`) = ?', $builder->toSql()); - line 482: $this->assertEquals([0 => 5], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 485: public function testOrWhereMonthMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 485: public function testOrWhereMonthMySql() - line 487: $builder = $this->getMySqlBuilder(); - line 488: $builder->select('*')->from('users')->whereMonth('created_at', '=', 5)->orWhereMonth('created_at', '=', 6); - line 489: $this->assertSame('select * from `users` where month(`created_at`) = ? or month(`created_at`) = ?', $builder->toSql()); - line 490: $this->assertEquals([0 => 5, 1 => 6], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 493: public function testOrWhereMonthPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 493: public function testOrWhereMonthPostgres() - line 495: $builder = $this->getPostgresBuilder(); - line 496: $builder->select('*')->from('users')->whereMonth('created_at', '=', 5)->orWhereMonth('created_at', '=', 6); - line 497: $this->assertSame('select * from "users" where extract(month from "created_at") = ? or extract(month from "created_at") = ?', $builder->toSql()); - line 498: $this->assertEquals([0 => 5, 1 => 6], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 501: public function testOrWhereMonthSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 501: public function testOrWhereMonthSqlServer() - line 503: $builder = $this->getSqlServerBuilder(); - line 504: $builder->select('*')->from('users')->whereMonth('created_at', '=', 5)->orWhereMonth('created_at', '=', 6); - line 505: $this->assertSame('select * from [users] where month([created_at]) = ? or month([created_at]) = ?', $builder->toSql()); - line 506: $this->assertEquals([0 => 5, 1 => 6], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 509: public function testWhereYearMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 509: public function testWhereYearMySql() - line 511: $builder = $this->getMySqlBuilder(); - line 512: $builder->select('*')->from('users')->whereYear('created_at', '=', 2014); - line 513: $this->assertSame('select * from `users` where year(`created_at`) = ?', $builder->toSql()); - line 514: $this->assertEquals([0 => 2014], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 517: public function testOrWhereYearMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 517: public function testOrWhereYearMySql() - line 519: $builder = $this->getMySqlBuilder(); - line 520: $builder->select('*')->from('users')->whereYear('created_at', '=', 2014)->orWhereYear('created_at', '=', 2015); - line 521: $this->assertSame('select * from `users` where year(`created_at`) = ? or year(`created_at`) = ?', $builder->toSql()); - line 522: $this->assertEquals([0 => 2014, 1 => 2015], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 525: public function testOrWhereYearPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 525: public function testOrWhereYearPostgres() - line 527: $builder = $this->getPostgresBuilder(); - line 528: $builder->select('*')->from('users')->whereYear('created_at', '=', 2014)->orWhereYear('created_at', '=', 2015); - line 529: $this->assertSame('select * from "users" where extract(year from "created_at") = ? or extract(year from "created_at") = ?', $builder->toSql()); - line 530: $this->assertEquals([0 => 2014, 1 => 2015], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 533: public function testOrWhereYearSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 533: public function testOrWhereYearSqlServer() - line 535: $builder = $this->getSqlServerBuilder(); - line 536: $builder->select('*')->from('users')->whereYear('created_at', '=', 2014)->orWhereYear('created_at', '=', 2015); - line 537: $this->assertSame('select * from [users] where year([created_at]) = ? or year([created_at]) = ?', $builder->toSql()); - line 538: $this->assertEquals([0 => 2014, 1 => 2015], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 541: public function testWhereTimeMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 541: public function testWhereTimeMySql() - line 543: $builder = $this->getMySqlBuilder(); - line 544: $builder->select('*')->from('users')->whereTime('created_at', '>=', '22:00'); - line 545: $this->assertSame('select * from `users` where time(`created_at`) >= ?', $builder->toSql()); - line 546: $this->assertEquals([0 => '22:00'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 549: public function testWhereTimeOperatorOptionalMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 549: public function testWhereTimeOperatorOptionalMySql() - line 551: $builder = $this->getMySqlBuilder(); - line 552: $builder->select('*')->from('users')->whereTime('created_at', '22:00'); - line 553: $this->assertSame('select * from `users` where time(`created_at`) = ?', $builder->toSql()); - line 554: $this->assertEquals([0 => '22:00'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 557: public function testWhereTimeOperatorOptionalPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 557: public function testWhereTimeOperatorOptionalPostgres() - line 559: $builder = $this->getPostgresBuilder(); - line 560: $builder->select('*')->from('users')->whereTime('created_at', '22:00'); - line 561: $this->assertSame('select * from "users" where "created_at"::time = ?', $builder->toSql()); - line 562: $this->assertEquals([0 => '22:00'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 565: public function testWhereTimeSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 565: public function testWhereTimeSqlServer() - line 567: $builder = $this->getSqlServerBuilder(); - line 568: $builder->select('*')->from('users')->whereTime('created_at', '22:00'); - line 569: $this->assertSame('select * from [users] where cast([created_at] as time) = ?', $builder->toSql()); - line 570: $this->assertEquals([0 => '22:00'], $builder->getBindings()); - line 572: $builder = $this->getSqlServerBuilder(); - line 573: $builder->select('*')->from('users')->whereTime('created_at', new Raw('NOW()')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 578: public function testOrWhereTimeMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 578: public function testOrWhereTimeMySql() - line 580: $builder = $this->getMySqlBuilder(); - line 581: $builder->select('*')->from('users')->whereTime('created_at', '<=', '10:00')->orWhereTime('created_at', '>=', '22:00'); - line 582: $this->assertSame('select * from `users` where time(`created_at`) <= ? or time(`created_at`) >= ?', $builder->toSql()); - line 583: $this->assertEquals([0 => '10:00', 1 => '22:00'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 586: public function testOrWhereTimePostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 586: public function testOrWhereTimePostgres() - line 588: $builder = $this->getPostgresBuilder(); - line 589: $builder->select('*')->from('users')->whereTime('created_at', '<=', '10:00')->orWhereTime('created_at', '>=', '22:00'); - line 590: $this->assertSame('select * from "users" where "created_at"::time <= ? or "created_at"::time >= ?', $builder->toSql()); - line 591: $this->assertEquals([0 => '10:00', 1 => '22:00'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 594: public function testOrWhereTimeSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 594: public function testOrWhereTimeSqlServer() - line 596: $builder = $this->getSqlServerBuilder(); - line 597: $builder->select('*')->from('users')->whereTime('created_at', '<=', '10:00')->orWhereTime('created_at', '>=', '22:00'); - line 598: $this->assertSame('select * from [users] where cast([created_at] as time) <= ? or cast([created_at] as time) >= ?', $builder->toSql()); - line 599: $this->assertEquals([0 => '10:00', 1 => '22:00'], $builder->getBindings()); - line 601: $builder = $this->getSqlServerBuilder(); - line 602: $builder->select('*')->from('users')->whereTime('created_at', '<=', '10:00')->orWhereTime('created_at', new Raw('NOW()')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 607: public function testWhereDatePostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 607: public function testWhereDatePostgres() - line 609: $builder = $this->getPostgresBuilder(); - line 610: $builder->select('*')->from('users')->whereDate('created_at', '=', '2015-12-21'); - line 611: $this->assertSame('select * from "users" where "created_at"::date = ?', $builder->toSql()); - line 612: $this->assertEquals([0 => '2015-12-21'], $builder->getBindings()); - line 614: $builder = $this->getPostgresBuilder(); - line 615: $builder->select('*')->from('users')->whereDate('created_at', new Raw('NOW()')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 623: public function testWhereDayPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 623: public function testWhereDayPostgres() - line 625: $builder = $this->getPostgresBuilder(); - line 626: $builder->select('*')->from('users')->whereDay('created_at', '=', 1); - line 627: $this->assertSame('select * from "users" where extract(day from "created_at") = ?', $builder->toSql()); - line 628: $this->assertEquals([0 => 1], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 631: public function testWhereMonthPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 631: public function testWhereMonthPostgres() - line 633: $builder = $this->getPostgresBuilder(); - line 634: $builder->select('*')->from('users')->whereMonth('created_at', '=', 5); - line 635: $this->assertSame('select * from "users" where extract(month from "created_at") = ?', $builder->toSql()); - line 636: $this->assertEquals([0 => 5], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 639: public function testWhereYearPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 639: public function testWhereYearPostgres() - line 641: $builder = $this->getPostgresBuilder(); - line 642: $builder->select('*')->from('users')->whereYear('created_at', '=', 2014); - line 643: $this->assertSame('select * from "users" where extract(year from "created_at") = ?', $builder->toSql()); - line 644: $this->assertEquals([0 => 2014], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 647: public function testWhereTimePostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 647: public function testWhereTimePostgres() - line 649: $builder = $this->getPostgresBuilder(); - line 650: $builder->select('*')->from('users')->whereTime('created_at', '>=', '22:00'); - line 651: $this->assertSame('select * from "users" where "created_at"::time >= ?', $builder->toSql()); - line 652: $this->assertEquals([0 => '22:00'], $builder->getBindings()); - line 654: $builder = $this->getPostgresBuilder(); - line 655: $builder->select('*')->from('users')->whereTime('result->created_at', '>=', '22:00'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 660: public function testWherePast() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 660: public function testWherePast() - line 666: $builder = $this->getBuilder(); - line 667: $builder->select('*')->from('posts')->wherePast('published_at'); - line 668: $this->assertSame('select * from "posts" where "published_at" < ?', $builder->toSql()); - line 669: $this->assertEquals([0 => $testDate], $builder->getBindings()); - line 671: $builder = $this->getBuilder(); - line 672: $builder->select('*')->from('posts')->where('id', '=', 1)->orWherePast('published_at'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 677: public function testWherePastUsesArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 677: public function testWherePastUsesArray() - line 683: $builder = $this->getBuilder(); - line 684: $builder->select('*')->from('posts')->wherePast(['published_at', 'held_at']); - line 685: $this->assertSame('select * from "posts" where "published_at" < ? and "held_at" < ?', $builder->toSql()); - line 686: $this->assertEquals([0 => $testDate, 1 => $testDate], $builder->getBindings()); - line 688: $builder = $this->getBuilder(); - line 689: $builder->select('*')->from('posts')->where('id', '=', 1)->orWherePast(['published_at', 'held_at']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 694: public function testWhereTodayMySQL() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 694: public function testWhereTodayMySQL() - line 698: $builder = $this->getMySqlBuilder(); - line 699: $builder->select('*')->from('posts')->whereToday('published_at'); - line 700: $this->assertSame('select * from `posts` where date(`published_at`) = ?', $builder->toSql()); - line 701: $this->assertEquals([0 => '2022-04-20'], $builder->getBindings()); - line 703: $builder = $this->getMySqlBuilder(); - line 704: $builder->select('*')->from('posts')->where('id', '=', 1)->orWhereToday('published_at'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 709: public function testPassingArrayToWhereTodayMySQL() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 709: public function testPassingArrayToWhereTodayMySQL() - line 713: $builder = $this->getMySqlBuilder(); - line 714: $builder->select('*')->from('posts')->whereToday(['published_at', 'held_at']); - line 715: $this->assertSame('select * from `posts` where date(`published_at`) = ? and date(`held_at`) = ?', $builder->toSql()); - line 716: $this->assertEquals([0 => '2022-04-20', 1 => '2022-04-20'], $builder->getBindings()); - line 718: $builder = $this->getMySqlBuilder(); - line 719: $builder->select('*')->from('posts')->where('id', '=', 1)->orWhereToday(['published_at', 'held_at']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 724: public function testWhereTodaySqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 724: public function testWhereTodaySqlServer() - line 728: $builder = $this->getSqlServerBuilder(); - line 729: $builder->select('*')->from('posts')->whereToday('published_at'); - line 730: $this->assertSame('select * from [posts] where cast([published_at] as date) = ?', $builder->toSql()); - line 731: $this->assertEquals([0 => '2022-04-20'], $builder->getBindings()); - line 733: $builder = $this->getSqlServerBuilder(); - line 734: $builder->select('*')->from('posts')->where('id', '=', 1)->orWhereToday('published_at'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 739: public function testPassingArrayToWhereTodaySqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 739: public function testPassingArrayToWhereTodaySqlServer() - line 743: $builder = $this->getSqlServerBuilder(); - line 744: $builder->select('*')->from('posts')->whereToday(['published_at', 'held_at']); - line 745: $this->assertSame('select * from [posts] where cast([published_at] as date) = ? and cast([held_at] as date) = ?', $builder->toSql()); - line 746: $this->assertEquals([0 => '2022-04-20', 1 => '2022-04-20'], $builder->getBindings()); - line 748: $builder = $this->getSqlServerBuilder(); - line 749: $builder->select('*')->from('posts')->where('id', '=', 1)->orWhereToday(['published_at', 'held_at']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 754: public function testWhereFuture() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 754: public function testWhereFuture() - line 760: $builder = $this->getBuilder(); - line 761: $builder->select('*')->from('posts')->whereFuture('published_at'); - line 762: $this->assertSame('select * from "posts" where "published_at" > ?', $builder->toSql()); - line 763: $this->assertEquals([0 => $testDate], $builder->getBindings()); - line 765: $builder = $this->getBuilder(); - line 766: $builder->select('*')->from('posts')->where('id', '=', 1)->orWhereFuture('published_at'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 771: public function testPassingArrayToWhereFuture() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 771: public function testPassingArrayToWhereFuture() - line 777: $builder = $this->getBuilder(); - line 778: $builder->select('*')->from('posts')->whereFuture(['published_at', 'held_at']); - line 779: $this->assertSame('select * from "posts" where "published_at" > ? and "held_at" > ?', $builder->toSql()); - line 780: $this->assertEquals([0 => $testDate, 1 => $testDate], $builder->getBindings()); - line 782: $builder = $this->getBuilder(); - line 783: $builder->select('*')->from('posts')->where('id', '=', 1)->orWhereFuture(['published_at', 'held_at']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 788: public function testWhereLikePostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 20. Evidence: - line 788: public function testWhereLikePostgres() - line 790: $builder = $this->getPostgresBuilder(); - line 791: $builder->select('*')->from('users')->where('id', 'like', '1'); - line 792: $this->assertSame('select * from "users" where "id"::text like ?', $builder->toSql()); - line 793: $this->assertEquals([0 => '1'], $builder->getBindings()); - line 795: $builder = $this->getPostgresBuilder(); - line 796: $builder->select('*')->from('users')->where('id', 'LIKE', '1'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 816: public function testWhereLikeClausePostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 24. Evidence: - line 816: public function testWhereLikeClausePostgres() - line 818: $builder = $this->getPostgresBuilder(); - line 819: $builder->select('*')->from('users')->whereLike('id', '1'); - line 820: $this->assertSame('select * from "users" where "id"::text ilike ?', $builder->toSql()); - line 821: $this->assertEquals([0 => '1'], $builder->getBindings()); - line 823: $builder = $this->getPostgresBuilder(); - line 824: $builder->select('*')->from('users')->whereLike('id', '1', false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 849: public function testWhereLikeClauseMysql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 24. Evidence: - line 849: public function testWhereLikeClauseMysql() - line 851: $builder = $this->getMySqlBuilder(); - line 852: $builder->select('*')->from('users')->whereLike('id', '1'); - line 853: $this->assertSame('select * from `users` where `id` like ?', $builder->toSql()); - line 854: $this->assertEquals([0 => '1'], $builder->getBindings()); - line 856: $builder = $this->getMySqlBuilder(); - line 857: $builder->select('*')->from('users')->whereLike('id', '1', false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 882: public function testWhereLikeClauseSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 28. Evidence: - line 882: public function testWhereLikeClauseSqlite() - line 884: $builder = $this->getSQLiteBuilder(); - line 885: $builder->select('*')->from('users')->whereLike('id', '1'); - line 886: $this->assertSame('select * from "users" where "id" like ?', $builder->toSql()); - line 887: $this->assertEquals([0 => '1'], $builder->getBindings()); - line 889: $builder = $this->getSQLiteBuilder(); - line 890: $builder->select('*')->from('users')->whereLike('id', '1', true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 920: public function testWhereLikeClauseSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 920: public function testWhereLikeClauseSqlServer() - line 922: $builder = $this->getSqlServerBuilder(); - line 923: $builder->select('*')->from('users')->whereLike('id', '1'); - line 924: $this->assertSame('select * from [users] where [id] like ?', $builder->toSql()); - line 925: $this->assertEquals([0 => '1'], $builder->getBindings()); - line 927: $builder = $this->getSqlServerBuilder(); - line 928: $builder->select('*')->from('users')->whereLike('id', '1')->orWhereLike('id', '2'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 938: public function testWhereDateSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 938: public function testWhereDateSqlite() - line 940: $builder = $this->getSQLiteBuilder(); - line 941: $builder->select('*')->from('users')->whereDate('created_at', '=', '2015-12-21'); - line 942: $this->assertSame('select * from "users" where strftime(\'%Y-%m-%d\', "created_at") = cast(? as text)', $builder->toSql()); - line 943: $this->assertEquals([0 => '2015-12-21'], $builder->getBindings()); - line 945: $builder = $this->getSQLiteBuilder(); - line 946: $builder->select('*')->from('users')->whereDate('created_at', new Raw('NOW()')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 950: public function testWhereDaySqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 950: public function testWhereDaySqlite() - line 952: $builder = $this->getSQLiteBuilder(); - line 953: $builder->select('*')->from('users')->whereDay('created_at', '=', 1); - line 954: $this->assertSame('select * from "users" where strftime(\'%d\', "created_at") = cast(? as text)', $builder->toSql()); - line 955: $this->assertEquals([0 => 1], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 958: public function testWhereMonthSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 958: public function testWhereMonthSqlite() - line 960: $builder = $this->getSQLiteBuilder(); - line 961: $builder->select('*')->from('users')->whereMonth('created_at', '=', 5); - line 962: $this->assertSame('select * from "users" where strftime(\'%m\', "created_at") = cast(? as text)', $builder->toSql()); - line 963: $this->assertEquals([0 => 5], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 966: public function testWhereYearSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 966: public function testWhereYearSqlite() - line 968: $builder = $this->getSQLiteBuilder(); - line 969: $builder->select('*')->from('users')->whereYear('created_at', '=', 2014); - line 970: $this->assertSame('select * from "users" where strftime(\'%Y\', "created_at") = cast(? as text)', $builder->toSql()); - line 971: $this->assertEquals([0 => 2014], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 974: public function testWhereTimeSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 974: public function testWhereTimeSqlite() - line 976: $builder = $this->getSQLiteBuilder(); - line 977: $builder->select('*')->from('users')->whereTime('created_at', '>=', '22:00'); - line 978: $this->assertSame('select * from "users" where strftime(\'%H:%M:%S\', "created_at") >= cast(? as text)', $builder->toSql()); - line 979: $this->assertEquals([0 => '22:00'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 982: public function testWhereTimeOperatorOptionalSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 982: public function testWhereTimeOperatorOptionalSqlite() - line 984: $builder = $this->getSQLiteBuilder(); - line 985: $builder->select('*')->from('users')->whereTime('created_at', '22:00'); - line 986: $this->assertSame('select * from "users" where strftime(\'%H:%M:%S\', "created_at") = cast(? as text)', $builder->toSql()); - line 987: $this->assertEquals([0 => '22:00'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 990: public function testWhereDateSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 990: public function testWhereDateSqlServer() - line 992: $builder = $this->getSqlServerBuilder(); - line 993: $builder->select('*')->from('users')->whereDate('created_at', '=', '2015-12-21'); - line 994: $this->assertSame('select * from [users] where cast([created_at] as date) = ?', $builder->toSql()); - line 995: $this->assertEquals([0 => '2015-12-21'], $builder->getBindings()); - line 997: $builder = $this->getSqlServerBuilder(); - line 998: $builder->select('*')->from('users')->whereDate('created_at', new Raw('NOW()')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1002: public function testWhereDaySqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1002: public function testWhereDaySqlServer() - line 1004: $builder = $this->getSqlServerBuilder(); - line 1005: $builder->select('*')->from('users')->whereDay('created_at', '=', 1); - line 1006: $this->assertSame('select * from [users] where day([created_at]) = ?', $builder->toSql()); - line 1007: $this->assertEquals([0 => 1], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1010: public function testWhereMonthSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1010: public function testWhereMonthSqlServer() - line 1012: $builder = $this->getSqlServerBuilder(); - line 1013: $builder->select('*')->from('users')->whereMonth('created_at', '=', 5); - line 1014: $this->assertSame('select * from [users] where month([created_at]) = ?', $builder->toSql()); - line 1015: $this->assertEquals([0 => 5], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1018: public function testWhereYearSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1018: public function testWhereYearSqlServer() - line 1020: $builder = $this->getSqlServerBuilder(); - line 1021: $builder->select('*')->from('users')->whereYear('created_at', '=', 2014); - line 1022: $this->assertSame('select * from [users] where year([created_at]) = ?', $builder->toSql()); - line 1023: $this->assertEquals([0 => 2014], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1026: public function testWhereBetweens() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 34. Evidence: - line 1026: public function testWhereBetweens() - line 1028: $builder = $this->getBuilder(); - line 1029: $builder->select('*')->from('users')->whereBetween('id', [1, 2]); - line 1030: $this->assertSame('select * from "users" where "id" between ? and ?', $builder->toSql()); - line 1031: $this->assertEquals([0 => 1, 1 => 2], $builder->getBindings()); - line 1033: $builder = $this->getBuilder(); - line 1034: $builder->select('*')->from('users')->whereBetween('id', [[1, 2, 3]]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1072: public function testOrWhereBetween() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 24. Evidence: - line 1072: public function testOrWhereBetween() - line 1074: $builder = $this->getBuilder(); - line 1075: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereBetween('id', [3, 5]); - line 1076: $this->assertSame('select * from "users" where "id" = ? or "id" between ? and ?', $builder->toSql()); - line 1077: $this->assertEquals([0 => 1, 1 => 3, 2 => 5], $builder->getBindings()); - line 1079: $builder = $this->getBuilder(); - line 1080: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereBetween('id', [[3, 4, 5]]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1105: public function testOrWhereNotBetween() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 24. Evidence: - line 1105: public function testOrWhereNotBetween() - line 1107: $builder = $this->getBuilder(); - line 1108: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereNotBetween('id', [3, 5]); - line 1109: $this->assertSame('select * from "users" where "id" = ? or "id" not between ? and ?', $builder->toSql()); - line 1110: $this->assertEquals([0 => 1, 1 => 3, 2 => 5], $builder->getBindings()); - line 1112: $builder = $this->getBuilder(); - line 1113: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereNotBetween('id', [[3, 4, 5]]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1138: public function testWhereBetweenColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 1138: public function testWhereBetweenColumns() - line 1140: $builder = $this->getBuilder(); - line 1141: $builder->select('*')->from('users')->whereBetweenColumns('id', ['users.created_at', 'users.updated_at']); - line 1142: $this->assertSame('select * from "users" where "id" between "users"."created_at" and "users"."updated_at"', $builder->toSql()); - line 1143: $this->assertEquals([], $builder->getBindings()); - line 1145: $builder = $this->getBuilder(); - line 1146: $builder->select('*')->from('users')->whereNotBetweenColumns('id', ['created_at', 'updated_at']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1156: public function testOrWhereBetweenColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 1156: public function testOrWhereBetweenColumns() - line 1158: $builder = $this->getBuilder(); - line 1159: $builder->select('*')->from('users')->where('id', 2)->orWhereBetweenColumns('id', ['users.created_at', 'users.updated_at']); - line 1160: $this->assertSame('select * from "users" where "id" = ? or "id" between "users"."created_at" and "users"."updated_at"', $builder->toSql()); - line 1161: $this->assertEquals([0 => 2], $builder->getBindings()); - line 1163: $builder = $this->getBuilder(); - line 1164: $builder->select('*')->from('users')->where('id', 2)->orWhereBetweenColumns('id', ['created_at', 'updated_at']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1174: public function testOrWhereNotBetweenColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 1174: public function testOrWhereNotBetweenColumns() - line 1176: $builder = $this->getBuilder(); - line 1177: $builder->select('*')->from('users')->where('id', 2)->orWhereNotBetweenColumns('id', ['users.created_at', 'users.updated_at']); - line 1178: $this->assertSame('select * from "users" where "id" = ? or "id" not between "users"."created_at" and "users"."updated_at"', $builder->toSql()); - line 1179: $this->assertEquals([0 => 2], $builder->getBindings()); - line 1181: $builder = $this->getBuilder(); - line 1182: $builder->select('*')->from('users')->where('id', 2)->orWhereNotBetweenColumns('id', ['created_at', 'updated_at']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1192: public function testWhereValueBetween() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 1192: public function testWhereValueBetween() - line 1194: $builder = $this->getBuilder(); - line 1195: $builder->select('*')->from('users')->whereValueBetween('2020-01-01 19:30:00', ['created_at', 'updated_at']); - line 1196: $this->assertSame('select * from "users" where ? between "created_at" and "updated_at"', $builder->toSql()); - line 1197: $this->assertEquals([0 => '2020-01-01 19:30:00'], $builder->getBindings()); - line 1199: $builder = $this->getBuilder(); - line 1200: $builder->select('*')->from('users')->whereValueBetween('2020-01-01 19:30:00', ['created_at', 'updated_at']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1214: public function testOrWhereValueBetween() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 1214: public function testOrWhereValueBetween() - line 1216: $builder = $this->getBuilder(); - line 1217: $builder->select('*')->from('users')->where('id', 2)->orWhereValueBetween('2020-01-01 19:30:00', ['created_at', 'updated_at']); - line 1218: $this->assertSame('select * from "users" where "id" = ? or ? between "created_at" and "updated_at"', $builder->toSql()); - line 1219: $this->assertEquals([0 => 2, 1 => '2020-01-01 19:30:00'], $builder->getBindings()); - line 1221: $builder = $this->getBuilder(); - line 1222: $builder->select('*')->from('users')->where('id', 2)->orWhereValueBetween('2020-01-01 19:30:00', ['created_at', 'updated_at']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1236: public function testWhereValueNotBetween() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 1236: public function testWhereValueNotBetween() - line 1238: $builder = $this->getBuilder(); - line 1239: $builder->select('*')->from('users')->whereValueNotBetween('2020-01-01 19:30:00', ['created_at', 'updated_at']); - line 1240: $this->assertSame('select * from "users" where ? not between "created_at" and "updated_at"', $builder->toSql()); - line 1241: $this->assertEquals([0 => '2020-01-01 19:30:00'], $builder->getBindings()); - line 1243: $builder = $this->getBuilder(); - line 1244: $builder->select('*')->from('users')->whereValueNotBetween('2020-01-01 19:30:00', ['created_at', 'updated_at']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1258: public function testOrWhereValueNotBetween() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 1258: public function testOrWhereValueNotBetween() - line 1260: $builder = $this->getBuilder(); - line 1261: $builder->select('*')->from('users')->where('id', 2)->orWhereValueNotBetween('2020-01-01 19:30:00', ['created_at', 'updated_at']); - line 1262: $this->assertSame('select * from "users" where "id" = ? or ? not between "created_at" and "updated_at"', $builder->toSql()); - line 1263: $this->assertEquals([0 => 2, 1 => '2020-01-01 19:30:00'], $builder->getBindings()); - line 1265: $builder = $this->getBuilder(); - line 1266: $builder->select('*')->from('users')->where('id', 2)->orWhereValueNotBetween('2020-01-01 19:30:00', ['created_at', 'updated_at']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1280: public function testBasicOrWheres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1280: public function testBasicOrWheres() - line 1282: $builder = $this->getBuilder(); - line 1283: $builder->select('*')->from('users')->where('id', '=', 1)->orWhere('email', '=', 'foo'); - line 1284: $this->assertSame('select * from "users" where "id" = ? or "email" = ?', $builder->toSql()); - line 1285: $this->assertEquals([0 => 1, 1 => 'foo'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1288: public function testBasicOrWhereNot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1288: public function testBasicOrWhereNot() - line 1290: $builder = $this->getBuilder(); - line 1291: $builder->select('*')->from('users')->orWhereNot('name', 'foo')->orWhereNot('name', '<>', 'bar'); - line 1292: $this->assertSame('select * from "users" where not "name" = ? or not "name" <> ?', $builder->toSql()); - line 1293: $this->assertEquals(['foo', 'bar'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1296: public function testRawWheres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1296: public function testRawWheres() - line 1298: $builder = $this->getBuilder(); - line 1299: $builder->select('*')->from('users')->whereRaw('id = ? or email = ?', [1, 'foo']); - line 1300: $this->assertSame('select * from "users" where id = ? or email = ?', $builder->toSql()); - line 1301: $this->assertEquals([0 => 1, 1 => 'foo'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1304: public function testRawOrWheres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1304: public function testRawOrWheres() - line 1306: $builder = $this->getBuilder(); - line 1307: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereRaw('email = ?', ['foo']); - line 1308: $this->assertSame('select * from "users" where "id" = ? or email = ?', $builder->toSql()); - line 1309: $this->assertEquals([0 => 1, 1 => 'foo'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1312: public function testBasicWhereIns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 1312: public function testBasicWhereIns() - line 1314: $builder = $this->getBuilder(); - line 1315: $builder->select('*')->from('users')->whereIn('id', [1, 2, 3]); - line 1316: $this->assertSame('select * from "users" where "id" in (?, ?, ?)', $builder->toSql()); - line 1317: $this->assertEquals([0 => 1, 1 => 2, 2 => 3], $builder->getBindings()); - line 1320: $builder = $this->getBuilder(); - line 1321: $builder->select('*')->from('users')->whereIn('id', [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1345: public function testBasicWhereInsException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1345: public function testBasicWhereInsException() - line 1347: $this->expectException(InvalidArgumentException::class); - line 1348: $builder = $this->getBuilder(); - line 1349: $builder->select('*')->from('users')->whereIn('id', [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1345: public function testBasicWhereInsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1359: public function testBasicWhereNotIns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1359: public function testBasicWhereNotIns() - line 1361: $builder = $this->getBuilder(); - line 1362: $builder->select('*')->from('users')->whereNotIn('id', [1, 2, 3]); - line 1363: $this->assertSame('select * from "users" where "id" not in (?, ?, ?)', $builder->toSql()); - line 1364: $this->assertEquals([0 => 1, 1 => 2, 2 => 3], $builder->getBindings()); - line 1366: $builder = $this->getBuilder(); - line 1367: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereNotIn('id', [1, 2, 3]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1372: public function testRawWhereIns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 1372: public function testRawWhereIns() - line 1374: $builder = $this->getBuilder(); - line 1375: $builder->select('*')->from('users')->whereIn('id', [new Raw(1)]); - line 1376: $this->assertSame('select * from "users" where "id" in (1)', $builder->toSql()); - line 1378: $builder = $this->getBuilder(); - line 1379: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereIn('id', [new Raw(1)]); - line 1380: $this->assertSame('select * from "users" where "id" = ? or "id" in (1)', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1384: public function testEmptyWhereIns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1384: public function testEmptyWhereIns() - line 1386: $builder = $this->getBuilder(); - line 1387: $builder->select('*')->from('users')->whereIn('id', []); - line 1388: $this->assertSame('select * from "users" where 0 = 1', $builder->toSql()); - line 1389: $this->assertEquals([], $builder->getBindings()); - line 1391: $builder = $this->getBuilder(); - line 1392: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereIn('id', []); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1397: public function testEmptyWhereNotIns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1397: public function testEmptyWhereNotIns() - line 1399: $builder = $this->getBuilder(); - line 1400: $builder->select('*')->from('users')->whereNotIn('id', []); - line 1401: $this->assertSame('select * from "users" where 1 = 1', $builder->toSql()); - line 1402: $this->assertEquals([], $builder->getBindings()); - line 1404: $builder = $this->getBuilder(); - line 1405: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereNotIn('id', []); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1410: public function testWhereIntegerInRaw() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1410: public function testWhereIntegerInRaw() - line 1412: $builder = $this->getBuilder(); - line 1413: $builder->select('*')->from('users')->whereIntegerInRaw('id', [ - line 1416: $this->assertSame('select * from "users" where "id" in (1, 2, 5)', $builder->toSql()); - line 1417: $this->assertEquals([], $builder->getBindings()); - line 1419: $builder = $this->getBuilder(); - line 1420: $builder->select('*')->from('users')->whereIntegerInRaw('id', [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1430: public function testOrWhereIntegerInRaw() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1430: public function testOrWhereIntegerInRaw() - line 1432: $builder = $this->getBuilder(); - line 1433: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereIntegerInRaw('id', ['1a', 2]); - line 1434: $this->assertSame('select * from "users" where "id" = ? or "id" in (1, 2)', $builder->toSql()); - line 1435: $this->assertEquals([0 => 1], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1438: public function testWhereIntegerNotInRaw() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1438: public function testWhereIntegerNotInRaw() - line 1440: $builder = $this->getBuilder(); - line 1441: $builder->select('*')->from('users')->whereIntegerNotInRaw('id', ['1a', 2]); - line 1442: $this->assertSame('select * from "users" where "id" not in (1, 2)', $builder->toSql()); - line 1443: $this->assertEquals([], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1446: public function testOrWhereIntegerNotInRaw() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1446: public function testOrWhereIntegerNotInRaw() - line 1448: $builder = $this->getBuilder(); - line 1449: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereIntegerNotInRaw('id', ['1a', 2]); - line 1450: $this->assertSame('select * from "users" where "id" = ? or "id" not in (1, 2)', $builder->toSql()); - line 1451: $this->assertEquals([0 => 1], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1454: public function testEmptyWhereIntegerInRaw() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1454: public function testEmptyWhereIntegerInRaw() - line 1456: $builder = $this->getBuilder(); - line 1457: $builder->select('*')->from('users')->whereIntegerInRaw('id', []); - line 1458: $this->assertSame('select * from "users" where 0 = 1', $builder->toSql()); - line 1459: $this->assertEquals([], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1462: public function testEmptyWhereIntegerNotInRaw() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1462: public function testEmptyWhereIntegerNotInRaw() - line 1464: $builder = $this->getBuilder(); - line 1465: $builder->select('*')->from('users')->whereIntegerNotInRaw('id', []); - line 1466: $this->assertSame('select * from "users" where 1 = 1', $builder->toSql()); - line 1467: $this->assertEquals([], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1470: public function testBasicWhereColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1470: public function testBasicWhereColumn() - line 1472: $builder = $this->getBuilder(); - line 1473: $builder->select('*')->from('users')->whereColumn('first_name', 'last_name')->orWhereColumn('first_name', 'middle_name'); - line 1474: $this->assertSame('select * from "users" where "first_name" = "last_name" or "first_name" = "middle_name"', $builder->toSql()); - line 1475: $this->assertEquals([], $builder->getBindings()); - line 1477: $builder = $this->getBuilder(); - line 1478: $builder->select('*')->from('users')->whereColumn('updated_at', '>', 'created_at'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1483: public function testArrayWhereColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1483: public function testArrayWhereColumn() - line 1490: $builder = $this->getBuilder(); - line 1491: $builder->select('*')->from('users')->whereColumn($conditions); - line 1492: $this->assertSame('select * from "users" where ("first_name" = "last_name" and "updated_at" > "created_at")', $builder->toSql()); - line 1493: $this->assertEquals([], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1496: public function testWhereFulltextMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 20. Evidence: - line 1496: public function testWhereFulltextMySql() - line 1498: $builder = $this->getMySqlBuilderWithProcessor(); - line 1499: $builder->select('*')->from('users')->whereFullText('body', 'Hello World'); - line 1500: $this->assertSame('select * from `users` where match (`body`) against (? in natural language mode)', $builder->toSql()); - line 1501: $this->assertEquals(['Hello World'], $builder->getBindings()); - line 1503: $builder = $this->getMySqlBuilderWithProcessor(); - line 1504: $builder->select('*')->from('users')->whereFullText('body', 'Hello World', ['expanded' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1524: public function testWhereFulltextPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 32. Evidence: - line 1524: public function testWhereFulltextPostgres() - line 1526: $builder = $this->getPostgresBuilderWithProcessor(); - line 1527: $builder->select('*')->from('users')->whereFullText('body', 'Hello World'); - line 1528: $this->assertSame('select * from "users" where (to_tsvector(\'english\', "body")) @@ plainto_tsquery(\'english\', ?)', $builder->toSql()); - line 1529: $this->assertEquals(['Hello World'], $builder->getBindings()); - line 1531: $builder = $this->getPostgresBuilderWithProcessor(); - line 1532: $builder->select('*')->from('users')->whereFullText('body', 'Hello World', ['language' => 'simple']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1567: public function testWhereAll() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 1567: public function testWhereAll() - line 1569: $builder = $this->getBuilder(); - line 1570: $builder->select('*')->from('users')->whereAll(['last_name', 'email'], '%Otwell%'); - line 1571: $this->assertSame('select * from "users" where ("last_name" = ? and "email" = ?)', $builder->toSql()); - line 1572: $this->assertEquals(['%Otwell%', '%Otwell%'], $builder->getBindings()); - line 1574: $builder = $this->getBuilder(); - line 1575: $builder->select('*')->from('users')->whereAll(['last_name', 'email'], 'not like', '%Otwell%'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1588: public function testOrWhereAll() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 1588: public function testOrWhereAll() - line 1590: $builder = $this->getBuilder(); - line 1591: $builder->select('*')->from('users')->where('first_name', 'like', '%Taylor%')->orWhereAll(['last_name', 'email'], 'like', '%Otwell%'); - line 1592: $this->assertSame('select * from "users" where "first_name" like ? or ("last_name" like ? and "email" like ?)', $builder->toSql()); - line 1593: $this->assertEquals(['%Taylor%', '%Otwell%', '%Otwell%'], $builder->getBindings()); - line 1595: $builder = $this->getBuilder(); - line 1596: $builder->select('*')->from('users')->where('first_name', 'like', '%Taylor%')->whereAll(['last_name', 'email'], 'like', '%Otwell%', 'or'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1614: public function testWhereAny() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 1614: public function testWhereAny() - line 1616: $builder = $this->getBuilder(); - line 1617: $builder->select('*')->from('users')->whereAny(['last_name', 'email'], 'like', '%Otwell%'); - line 1618: $this->assertSame('select * from "users" where ("last_name" like ? or "email" like ?)', $builder->toSql()); - line 1619: $this->assertEquals(['%Otwell%', '%Otwell%'], $builder->getBindings()); - line 1621: $builder = $this->getBuilder(); - line 1622: $builder->select('*')->from('users')->whereAny(['last_name', 'email'], '%Otwell%'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1635: public function testOrWhereAny() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 1635: public function testOrWhereAny() - line 1637: $builder = $this->getBuilder(); - line 1638: $builder->select('*')->from('users')->where('first_name', 'like', '%Taylor%')->orWhereAny(['last_name', 'email'], 'like', '%Otwell%'); - line 1639: $this->assertSame('select * from "users" where "first_name" like ? or ("last_name" like ? or "email" like ?)', $builder->toSql()); - line 1640: $this->assertEquals(['%Taylor%', '%Otwell%', '%Otwell%'], $builder->getBindings()); - line 1642: $builder = $this->getBuilder(); - line 1643: $builder->select('*')->from('users')->where('first_name', 'like', '%Taylor%')->whereAny(['last_name', 'email'], 'like', '%Otwell%', 'or'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1661: public function testWhereNone() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 1661: public function testWhereNone() - line 1663: $builder = $this->getBuilder(); - line 1664: $builder->select('*')->from('users')->whereNone(['last_name', 'email'], 'like', '%Otwell%'); - line 1665: $this->assertSame('select * from "users" where not ("last_name" like ? or "email" like ?)', $builder->toSql()); - line 1666: $this->assertEquals(['%Otwell%', '%Otwell%'], $builder->getBindings()); - line 1668: $builder = $this->getBuilder(); - line 1669: $builder->select('*')->from('users')->whereNone(['last_name', 'email'], 'Otwell'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1687: public function testOrWhereNone() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 1687: public function testOrWhereNone() - line 1689: $builder = $this->getBuilder(); - line 1690: $builder->select('*')->from('users')->where('first_name', 'like', '%Taylor%')->orWhereNone(['last_name', 'email'], 'like', '%Otwell%'); - line 1691: $this->assertSame('select * from "users" where "first_name" like ? or not ("last_name" like ? or "email" like ?)', $builder->toSql()); - line 1692: $this->assertEquals(['%Taylor%', '%Otwell%', '%Otwell%'], $builder->getBindings()); - line 1694: $builder = $this->getBuilder(); - line 1695: $builder->select('*')->from('users')->where('first_name', 'like', '%Taylor%')->whereNone(['last_name', 'email'], 'like', '%Otwell%', 'or'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1713: public function testUnions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 35. Evidence: - line 1713: public function testUnions() - line 1715: $builder = $this->getBuilder(); - line 1716: $builder->select('*')->from('users')->where('id', '=', 1); - line 1717: $builder->union($this->getBuilder()->select('*')->from('users')->where('id', '=', 2)); - line 1718: $this->assertSame('(select * from "users" where "id" = ?) union (select * from "users" where "id" = ?)', $builder->toSql()); - line 1719: $this->assertEquals([0 => 1, 1 => 2], $builder->getBindings()); - line 1721: $builder = $this->getMySqlBuilder(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1762: public function testUnionAlls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 1762: public function testUnionAlls() - line 1764: $builder = $this->getBuilder(); - line 1765: $builder->select('*')->from('users')->where('id', '=', 1); - line 1766: $builder->unionAll($this->getBuilder()->select('*')->from('users')->where('id', '=', 2)); - line 1767: $this->assertSame('(select * from "users" where "id" = ?) union all (select * from "users" where "id" = ?)', $builder->toSql()); - line 1768: $this->assertEquals([0 => 1, 1 => 2], $builder->getBindings()); - line 1771: $builder = $this->getPostgresBuilder(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1785: public function testMultipleUnions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1785: public function testMultipleUnions() - line 1787: $builder = $this->getBuilder(); - line 1788: $builder->select('*')->from('users')->where('id', '=', 1); - line 1789: $builder->union($this->getBuilder()->select('*')->from('users')->where('id', '=', 2)); - line 1790: $builder->union($this->getBuilder()->select('*')->from('users')->where('id', '=', 3)); - line 1791: $this->assertSame('(select * from "users" where "id" = ?) union (select * from "users" where "id" = ?) union (select * from "users" where "id" = ?)', $builder->toSql()); - line 1792: $this->assertEquals([0 => 1, 1 => 2, 2 => 3], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1795: public function testMultipleUnionAlls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1795: public function testMultipleUnionAlls() - line 1797: $builder = $this->getBuilder(); - line 1798: $builder->select('*')->from('users')->where('id', '=', 1); - line 1799: $builder->unionAll($this->getBuilder()->select('*')->from('users')->where('id', '=', 2)); - line 1800: $builder->unionAll($this->getBuilder()->select('*')->from('users')->where('id', '=', 3)); - line 1801: $this->assertSame('(select * from "users" where "id" = ?) union all (select * from "users" where "id" = ?) union all (select * from "users" where "id" = ?)', $builder->toSql()); - line 1802: $this->assertEquals([0 => 1, 1 => 2, 2 => 3], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1805: public function testUnionOrderBys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1805: public function testUnionOrderBys() - line 1807: $builder = $this->getBuilder(); - line 1808: $builder->select('*')->from('users')->where('id', '=', 1); - line 1809: $builder->union($this->getBuilder()->select('*')->from('users')->where('id', '=', 2)); - line 1810: $builder->orderBy('id', 'desc'); - line 1811: $this->assertSame('(select * from "users" where "id" = ?) union (select * from "users" where "id" = ?) order by "id" desc', $builder->toSql()); - line 1812: $this->assertEquals([0 => 1, 1 => 2], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1815: public function testUnionLimitsAndOffsets() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 1815: public function testUnionLimitsAndOffsets() - line 1817: $builder = $this->getBuilder(); - line 1818: $builder->select('*')->from('users'); - line 1819: $builder->union($this->getBuilder()->select('*')->from('dogs')); - line 1820: $builder->offset(5)->limit(10); - line 1821: $this->assertSame('(select * from "users") union (select * from "dogs") limit 10 offset 5', $builder->toSql()); - line 1824: $builder = $this->getPostgresBuilder(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1838: public function testUnionWithJoin() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1838: public function testUnionWithJoin() - line 1840: $builder = $this->getBuilder(); - line 1841: $builder->select('*')->from('users'); - line 1842: $builder->union($this->getBuilder()->select('*')->from('dogs')->join('breeds', function ($join) { - line 1846: $this->assertSame('(select * from "users") union (select * from "dogs" inner join "breeds" on "dogs"."breed_id" = "breeds"."id" and "breeds"."is_native" = ?)', $builder->toSql()); - line 1847: $this->assertEquals([0 => 1], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1850: public function testMySqlUnionOrderBys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1850: public function testMySqlUnionOrderBys() - line 1852: $builder = $this->getMySqlBuilder(); - line 1853: $builder->select('*')->from('users')->where('id', '=', 1); - line 1854: $builder->union($this->getMySqlBuilder()->select('*')->from('users')->where('id', '=', 2)); - line 1855: $builder->orderBy('id', 'desc'); - line 1856: $this->assertSame('(select * from `users` where `id` = ?) union (select * from `users` where `id` = ?) order by `id` desc', $builder->toSql()); - line 1857: $this->assertEquals([0 => 1, 1 => 2], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1860: public function testMySqlUnionLimitsAndOffsets() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1860: public function testMySqlUnionLimitsAndOffsets() - line 1862: $builder = $this->getMySqlBuilder(); - line 1863: $builder->select('*')->from('users'); - line 1864: $builder->union($this->getMySqlBuilder()->select('*')->from('dogs')); - line 1865: $builder->offset(5)->limit(10); - line 1866: $this->assertSame('(select * from `users`) union (select * from `dogs`) limit 10 offset 5', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1869: public function testUnionAggregate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 20. Evidence: - line 1869: public function testUnionAggregate() - line 1872: $builder = $this->getMySqlBuilder(); - line 1873: $builder->getConnection()->shouldReceive('select')->once()->with($expected, [], true); - line 1874: $builder->getProcessor()->shouldReceive('processSelect')->once(); - line 1875: $builder->from('posts')->union($this->getMySqlBuilder()->from('videos'))->count(); - line 1878: $builder = $this->getMySqlBuilder(); - line 1879: $builder->getConnection()->shouldReceive('select')->once()->with($expected, [], true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1869: public function testUnionAggregate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1902: public function testHavingAggregate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1902: public function testHavingAggregate() - line 1905: $builder = $this->getMySqlBuilder(); - line 1906: $builder->getConnection()->shouldReceive('getDatabaseName'); - line 1907: $builder->getConnection()->shouldReceive('select')->once()->with($expected, [0 => 1], true)->andReturn([['aggregate' => 1]]); - line 1908: $builder->getProcessor()->shouldReceive('processSelect')->once()->andReturnUsing(function ($builder, $results) { - line 1912: $builder->from('posts')->selectSub(function ($query) { - line 1915: $builder->count(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1902: public function testHavingAggregate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1918: public function testSubSelectWhereIns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1918: public function testSubSelectWhereIns() - line 1920: $builder = $this->getBuilder(); - line 1921: $builder->select('*')->from('users')->whereIn('id', function ($q) { - line 1924: $this->assertSame('select * from "users" where "id" in (select "id" from "users" where "age" > ? limit 3)', $builder->toSql()); - line 1925: $this->assertEquals([25], $builder->getBindings()); - line 1927: $builder = $this->getBuilder(); - line 1928: $builder->select('*')->from('users')->whereNotIn('id', function ($q) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1935: public function testBasicWhereNulls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1935: public function testBasicWhereNulls() - line 1937: $builder = $this->getBuilder(); - line 1938: $builder->select('*')->from('users')->whereNull('id'); - line 1939: $this->assertSame('select * from "users" where "id" is null', $builder->toSql()); - line 1940: $this->assertEquals([], $builder->getBindings()); - line 1942: $builder = $this->getBuilder(); - line 1943: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereNull('id'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1948: public function testBasicWhereNullExpressionsMysql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1948: public function testBasicWhereNullExpressionsMysql() - line 1950: $builder = $this->getMysqlBuilder(); - line 1951: $builder->select('*')->from('users')->whereNull(new Raw('id')); - line 1952: $this->assertSame('select * from `users` where id is null', $builder->toSql()); - line 1953: $this->assertEquals([], $builder->getBindings()); - line 1955: $builder = $this->getMysqlBuilder(); - line 1956: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereNull(new Raw('id')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1961: public function testJsonWhereNullMysql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1961: public function testJsonWhereNullMysql() - line 1963: $builder = $this->getMySqlBuilder(); - line 1964: $builder->select('*')->from('users')->whereNull('items->id'); - line 1965: $this->assertSame('select * from `users` where (json_extract(`items`, \'$."id"\') is null OR json_type(json_extract(`items`, \'$."id"\')) = \'NULL\')', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1968: public function testJsonWhereNotNullMysql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1968: public function testJsonWhereNotNullMysql() - line 1970: $builder = $this->getMySqlBuilder(); - line 1971: $builder->select('*')->from('users')->whereNotNull('items->id'); - line 1972: $this->assertSame('select * from `users` where (json_extract(`items`, \'$."id"\') is not null AND json_type(json_extract(`items`, \'$."id"\')) != \'NULL\')', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1975: public function testJsonWhereNullExpressionMysql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1975: public function testJsonWhereNullExpressionMysql() - line 1977: $builder = $this->getMySqlBuilder(); - line 1978: $builder->select('*')->from('users')->whereNull(new Raw('items->id')); - line 1979: $this->assertSame('select * from `users` where (json_extract(`items`, \'$."id"\') is null OR json_type(json_extract(`items`, \'$."id"\')) = \'NULL\')', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1982: public function testJsonWhereNotNullExpressionMysql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1982: public function testJsonWhereNotNullExpressionMysql() - line 1984: $builder = $this->getMySqlBuilder(); - line 1985: $builder->select('*')->from('users')->whereNotNull(new Raw('items->id')); - line 1986: $this->assertSame('select * from `users` where (json_extract(`items`, \'$."id"\') is not null AND json_type(json_extract(`items`, \'$."id"\')) != \'NULL\')', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1989: public function testArrayWhereNulls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1989: public function testArrayWhereNulls() - line 1991: $builder = $this->getBuilder(); - line 1992: $builder->select('*')->from('users')->whereNull(['id', 'expires_at']); - line 1993: $this->assertSame('select * from "users" where "id" is null and "expires_at" is null', $builder->toSql()); - line 1994: $this->assertEquals([], $builder->getBindings()); - line 1996: $builder = $this->getBuilder(); - line 1997: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereNull(['id', 'expires_at']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2002: public function testBasicWhereNotNulls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 2002: public function testBasicWhereNotNulls() - line 2004: $builder = $this->getBuilder(); - line 2005: $builder->select('*')->from('users')->whereNotNull('id'); - line 2006: $this->assertSame('select * from "users" where "id" is not null', $builder->toSql()); - line 2007: $this->assertEquals([], $builder->getBindings()); - line 2009: $builder = $this->getBuilder(); - line 2010: $builder->select('*')->from('users')->where('id', '>', 1)->orWhereNotNull('id'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2015: public function testArrayWhereNotNulls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 2015: public function testArrayWhereNotNulls() - line 2017: $builder = $this->getBuilder(); - line 2018: $builder->select('*')->from('users')->whereNotNull(['id', 'expires_at']); - line 2019: $this->assertSame('select * from "users" where "id" is not null and "expires_at" is not null', $builder->toSql()); - line 2020: $this->assertEquals([], $builder->getBindings()); - line 2022: $builder = $this->getBuilder(); - line 2023: $builder->select('*')->from('users')->where('id', '>', 1)->orWhereNotNull(['id', 'expires_at']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2028: public function testGroupBys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 19. Evidence: - line 2028: public function testGroupBys() - line 2030: $builder = $this->getBuilder(); - line 2031: $builder->select('*')->from('users')->groupBy('email'); - line 2032: $this->assertSame('select * from "users" group by "email"', $builder->toSql()); - line 2034: $builder = $this->getBuilder(); - line 2035: $builder->select('*')->from('users')->groupBy('id', 'email'); - line 2036: $this->assertSame('select * from "users" group by "id", "email"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2056: public function testOrderBys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 2056: public function testOrderBys() - line 2058: $builder = $this->getBuilder(); - line 2059: $builder->select('*')->from('users')->orderBy('email')->orderBy('age', 'desc'); - line 2060: $this->assertSame('select * from "users" order by "email" asc, "age" desc', $builder->toSql()); - line 2063: $this->assertSame('select * from "users"', $builder->toSql()); - line 2066: $this->assertSame('select * from "users"', $builder->toSql()); - line 2068: $builder = $this->getBuilder(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2085: public function testLatest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 2085: public function testLatest() - line 2087: $builder = $this->getBuilder(); - line 2088: $builder->select('*')->from('users')->latest(); - line 2089: $this->assertSame('select * from "users" order by "created_at" desc', $builder->toSql()); - line 2091: $builder = $this->getBuilder(); - line 2092: $builder->select('*')->from('users')->latest()->limit(1); - line 2093: $this->assertSame('select * from "users" order by "created_at" desc limit 1', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2100: public function testOldest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 2100: public function testOldest() - line 2102: $builder = $this->getBuilder(); - line 2103: $builder->select('*')->from('users')->oldest(); - line 2104: $this->assertSame('select * from "users" order by "created_at" asc', $builder->toSql()); - line 2106: $builder = $this->getBuilder(); - line 2107: $builder->select('*')->from('users')->oldest()->limit(1); - line 2108: $this->assertSame('select * from "users" order by "created_at" asc limit 1', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2115: public function testInRandomOrderMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2115: public function testInRandomOrderMySql() - line 2117: $builder = $this->getBuilder(); - line 2118: $builder->select('*')->from('users')->inRandomOrder(); - line 2119: $this->assertSame('select * from "users" order by RANDOM()', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2122: public function testInRandomOrderPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2122: public function testInRandomOrderPostgres() - line 2124: $builder = $this->getPostgresBuilder(); - line 2125: $builder->select('*')->from('users')->inRandomOrder(); - line 2126: $this->assertSame('select * from "users" order by RANDOM()', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2129: public function testInRandomOrderSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2129: public function testInRandomOrderSqlServer() - line 2131: $builder = $this->getSqlServerBuilder(); - line 2132: $builder->select('*')->from('users')->inRandomOrder(); - line 2133: $this->assertSame('select * from [users] order by NEWID()', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2136: public function testOrderBysSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 21. Evidence: - line 2136: public function testOrderBysSqlServer() - line 2138: $builder = $this->getSqlServerBuilder(); - line 2139: $builder->select('*')->from('users')->orderBy('email')->orderBy('age', 'desc'); - line 2140: $this->assertSame('select * from [users] order by [email] asc, [age] desc', $builder->toSql()); - line 2143: $this->assertSame('select * from [users]', $builder->toSql()); - line 2146: $this->assertSame('select * from [users]', $builder->toSql()); - line 2148: $builder = $this->getSqlServerBuilder(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2170: public function testReorder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 22. Evidence: - line 2170: public function testReorder() - line 2172: $builder = $this->getBuilder(); - line 2173: $builder->select('*')->from('users')->orderBy('name'); - line 2174: $this->assertSame('select * from "users" order by "name" asc', $builder->toSql()); - line 2175: $builder->reorder(); - line 2176: $this->assertSame('select * from "users"', $builder->toSql()); - line 2178: $builder = $this->getBuilder(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2199: public function testOrderBySubQueries() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 2199: public function testOrderBySubQueries() - line 2203: return $query->select('created_at')->from('logins')->whereColumn('user_id', 'users.id')->limit(1); - line 2206: $builder = $this->getBuilder()->select('*')->from('users')->orderBy($subQuery); - line 2207: $this->assertSame("$expected asc", $builder->toSql()); - line 2209: $builder = $this->getBuilder()->select('*')->from('users')->orderBy($subQuery, 'desc'); - line 2210: $this->assertSame("$expected desc", $builder->toSql()); - line 2212: $builder = $this->getBuilder()->select('*')->from('users')->orderByDesc($subQuery); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2223: public function testOrderByInvalidDirectionParam() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2223: public function testOrderByInvalidDirectionParam() - line 2225: $this->expectException(InvalidArgumentException::class); - line 2227: $builder = $this->getBuilder(); - line 2228: $builder->select('*')->from('users')->orderBy('age', 'asec'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2223: public function testOrderByInvalidDirectionParam() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2231: public function testHavings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 18. Evidence: - line 2231: public function testHavings() - line 2233: $builder = $this->getBuilder(); - line 2234: $builder->select('*')->from('users')->having('email', '>', 1); - line 2235: $this->assertSame('select * from "users" having "email" > ?', $builder->toSql()); - line 2237: $builder = $this->getBuilder(); - line 2238: $builder->select('*')->from('users') - line 2241: $this->assertSame('select * from "users" having "email" = ? or "email" = ?', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2260: public function testNestedHavings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2260: public function testNestedHavings() - line 2262: $builder = $this->getBuilder(); - line 2263: $builder->select('*')->from('users')->having('email', '=', 'foo')->orHaving(function ($q) { - line 2266: $this->assertSame('select * from "users" having "email" = ? or ("name" = ? and "age" = ?)', $builder->toSql()); - line 2267: $this->assertEquals([0 => 'foo', 1 => 'bar', 2 => 25], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2270: public function testNestedHavingBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2270: public function testNestedHavingBindings() - line 2272: $builder = $this->getBuilder(); - line 2273: $builder->having('email', '=', 'foo')->having(function ($q) { - line 2276: $this->assertEquals([0 => 'foo', 1 => 'bar'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2279: public function testHavingBetweens() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 2279: public function testHavingBetweens() - line 2281: $builder = $this->getBuilder(); - line 2282: $builder->select('*')->from('users')->havingBetween('id', [1, 2, 3]); - line 2283: $this->assertSame('select * from "users" having "id" between ? and ?', $builder->toSql()); - line 2284: $this->assertEquals([0 => 1, 1 => 2], $builder->getBindings()); - line 2286: $builder = $this->getBuilder(); - line 2287: $builder->select('*')->from('users')->havingBetween('id', [[1, 2], [3, 4]]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2292: public function testHavingNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 21. Evidence: - line 2292: public function testHavingNull() - line 2294: $builder = $this->getBuilder(); - line 2295: $builder->select('*')->from('users')->havingNull('email'); - line 2296: $this->assertSame('select * from "users" having "email" is null', $builder->toSql()); - line 2298: $builder = $this->getBuilder(); - line 2299: $builder->select('*')->from('users') - line 2302: $this->assertSame('select * from "users" having "email" is null and "phone" is null', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2327: public function testHavingNotNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 21. Evidence: - line 2327: public function testHavingNotNull() - line 2329: $builder = $this->getBuilder(); - line 2330: $builder->select('*')->from('users')->havingNotNull('email'); - line 2331: $this->assertSame('select * from "users" having "email" is not null', $builder->toSql()); - line 2333: $builder = $this->getBuilder(); - line 2334: $builder->select('*')->from('users') - line 2337: $this->assertSame('select * from "users" having "email" is not null and "phone" is not null', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2362: public function testHavingExpression() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2362: public function testHavingExpression() - line 2364: $builder = $this->getBuilder(); - line 2365: $builder->select('*')->from('users')->having( - line 2374: $this->assertSame('select * from "users" having 1 = 1', $builder->toSql()); - line 2375: $this->assertSame([], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2378: public function testHavingShortcut() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2378: public function testHavingShortcut() - line 2380: $builder = $this->getBuilder(); - line 2381: $builder->select('*')->from('users')->having('email', 1)->orHaving('email', 2); - line 2382: $this->assertSame('select * from "users" having "email" = ? or "email" = ?', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2385: public function testHavingFollowedBySelectGet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 2385: public function testHavingFollowedBySelectGet() - line 2387: $builder = $this->getBuilder(); - line 2389: $builder->getConnection()->shouldReceive('select')->once()->with($query, ['popular', 3], true)->andReturn([['category' => 'rock', 'total' => 5]]); - line 2390: $builder->getProcessor()->shouldReceive('processSelect')->andReturnUsing(function ($builder, $results) { - line 2393: $builder->from('item'); - line 2394: $result = $builder->select(['category', new Raw('count(*) as "total"')])->where('department', '=', 'popular')->groupBy('category')->having('total', '>', 3)->get(); - line 2395: $this->assertEquals([['category' => 'rock', 'total' => 5]], $result->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2409: public function testRawHavings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 2409: public function testRawHavings() - line 2411: $builder = $this->getBuilder(); - line 2412: $builder->select('*')->from('users')->havingRaw('user_foo < user_bar'); - line 2413: $this->assertSame('select * from "users" having user_foo < user_bar', $builder->toSql()); - line 2415: $builder = $this->getBuilder(); - line 2416: $builder->select('*')->from('users')->having('baz', '=', 1)->orHavingRaw('user_foo < user_bar'); - line 2417: $this->assertSame('select * from "users" having "baz" = ? or user_foo < user_bar', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2424: public function testLimitsAndOffsets() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 24. Evidence: - line 2424: public function testLimitsAndOffsets() - line 2426: $builder = $this->getBuilder(); - line 2427: $builder->select('*')->from('users')->offset(5)->limit(10); - line 2428: $this->assertSame('select * from "users" limit 10 offset 5', $builder->toSql()); - line 2430: $builder = $this->getBuilder(); - line 2431: $builder->select('*')->from('users')->limit(null); - line 2432: $this->assertSame('select * from "users"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2459: public function testForPage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 18. Evidence: - line 2459: public function testForPage() - line 2461: $builder = $this->getBuilder(); - line 2462: $builder->select('*')->from('users')->forPage(2, 15); - line 2463: $this->assertSame('select * from "users" limit 15 offset 15', $builder->toSql()); - line 2465: $builder = $this->getBuilder(); - line 2466: $builder->select('*')->from('users')->forPage(0, 15); - line 2467: $this->assertSame('select * from "users" limit 15 offset 0', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2486: public function testForPageBeforeId() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2486: public function testForPageBeforeId() - line 2488: $builder = $this->getBuilder(); - line 2489: $builder->select('*')->from('users')->forPageBeforeId(15, null); - line 2490: $this->assertSame('select * from "users" where "id" is not null order by "id" desc limit 15', $builder->toSql()); - line 2492: $builder = $this->getBuilder(); - line 2493: $builder->select('*')->from('users')->forPageBeforeId(15, 0); - line 2494: $this->assertSame('select * from "users" where "id" < ? order by "id" desc limit 15', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2497: public function testForPageAfterId() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2497: public function testForPageAfterId() - line 2499: $builder = $this->getBuilder(); - line 2500: $builder->select('*')->from('users')->forPageAfterId(15, null); - line 2501: $this->assertSame('select * from "users" where "id" is not null order by "id" asc limit 15', $builder->toSql()); - line 2503: $builder = $this->getBuilder(); - line 2504: $builder->select('*')->from('users')->forPageAfterId(15, 0); - line 2505: $this->assertSame('select * from "users" where "id" > ? order by "id" asc limit 15', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2508: public function testGetCountForPaginationWithBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2508: public function testGetCountForPaginationWithBindings() - line 2510: $builder = $this->getBuilder(); - line 2511: $builder->from('users')->selectSub(function ($q) { - line 2515: $builder->getConnection()->shouldReceive('select')->once()->with('select count(*) as aggregate from "users"', [], true)->andReturn([['aggregate' => 1]]); - line 2516: $builder->getProcessor()->shouldReceive('processSelect')->once()->andReturnUsing(function ($builder, $results) { - line 2520: $count = $builder->getCountForPagination(); - line 2522: $this->assertEquals([4], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2525: public function testGetCountForPaginationWithColumnAliases() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2525: public function testGetCountForPaginationWithColumnAliases() - line 2527: $builder = $this->getBuilder(); - line 2529: $builder->from('posts')->select($columns); - line 2531: $builder->getConnection()->shouldReceive('select')->once()->with('select count("body", "teaser", "posts"."created") as aggregate from "posts"', [], true)->andReturn([['aggregate' => 1]]); - line 2532: $builder->getProcessor()->shouldReceive('processSelect')->once()->andReturnUsing(function ($builder, $results) { - line 2536: $count = $builder->getCountForPagination($columns); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2525: public function testGetCountForPaginationWithColumnAliases() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2540: public function testGetCountForPaginationWithUnion() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2540: public function testGetCountForPaginationWithUnion() - line 2542: $builder = $this->getBuilder(); - line 2543: $builder->from('posts')->select('id')->union($this->getBuilder()->from('videos')->select('id')); - line 2545: $builder->getConnection()->shouldReceive('select')->once()->with('select count(*) as aggregate from ((select "id" from "posts") union (select "id" from "videos")) as "temp_table"', [], true)->andReturn([['aggregate' => 1]]); - line 2546: $builder->getProcessor()->shouldReceive('processSelect')->once()->andReturnUsing(function ($builder, $results) { - line 2550: $count = $builder->getCountForPagination(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2540: public function testGetCountForPaginationWithUnion() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2554: public function testGetCountForPaginationWithUnionOrders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2554: public function testGetCountForPaginationWithUnionOrders() - line 2556: $builder = $this->getBuilder(); - line 2557: $builder->from('posts')->select('id')->union($this->getBuilder()->from('videos')->select('id'))->latest(); - line 2559: $builder->getConnection()->shouldReceive('select')->once()->with('select count(*) as aggregate from ((select "id" from "posts") union (select "id" from "videos")) as "temp_table"', [], true)->andReturn([['aggregate' => 1]]); - line 2560: $builder->getProcessor()->shouldReceive('processSelect')->once()->andReturnUsing(function ($builder, $results) { - line 2564: $count = $builder->getCountForPagination(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2554: public function testGetCountForPaginationWithUnionOrders() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2568: public function testGetCountForPaginationWithUnionLimitAndOffset() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2568: public function testGetCountForPaginationWithUnionLimitAndOffset() - line 2570: $builder = $this->getBuilder(); - line 2571: $builder->from('posts')->select('id')->union($this->getBuilder()->from('videos')->select('id'))->limit(15)->offset(1); - line 2573: $builder->getConnection()->shouldReceive('select')->once()->with('select count(*) as aggregate from ((select "id" from "posts") union (select "id" from "videos")) as "temp_table"', [], true)->andReturn([['aggregate' => 1]]); - line 2574: $builder->getProcessor()->shouldReceive('processSelect')->once()->andReturnUsing(function ($builder, $results) { - line 2578: $count = $builder->getCountForPagination(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2568: public function testGetCountForPaginationWithUnionLimitAndOffset() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2582: public function testWhereShortcut() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2582: public function testWhereShortcut() - line 2584: $builder = $this->getBuilder(); - line 2585: $builder->select('*')->from('users')->where('id', 1)->orWhere('name', 'foo'); - line 2586: $this->assertSame('select * from "users" where "id" = ? or "name" = ?', $builder->toSql()); - line 2587: $this->assertEquals([0 => 1, 1 => 'foo'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2590: public function testOrWheresHaveConsistentResults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 2590: public function testOrWheresHaveConsistentResults() - line 2593: $builder = $this->getBuilder(); - line 2594: $builder->select('*')->from('users')->where('xxxx', 'xxxx')->orWhere(['foo' => 1, 'bar' => 2]); - line 2595: $queries[] = $builder->toSql(); - line 2597: $builder = $this->getBuilder(); - line 2598: $builder->select('*')->from('users')->where('xxxx', 'xxxx')->orWhere([['foo', 1], ['bar', 2]]); - line 2599: $queries[] = $builder->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2590: public function testOrWheresHaveConsistentResults() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2621: public function testWhereWithArrayConditions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 192. Evidence: - line 2621: public function testWhereWithArrayConditions() - line 2625: $builder = $this->getBuilder(); - line 2626: $builder->select('*')->from('users')->where([['foo', 1], ['bar', 2]]); - line 2627: $this->assertSame('select * from "users" where ("foo" = ? and "bar" = ?)', $builder->toSql()); - line 2628: $this->assertEquals([0 => 1, 1 => 2], $builder->getBindings()); - line 2630: $builder = $this->getBuilder(); - line 2631: $builder->select('*')->from('users')->where([['foo', 1], ['bar', 2]], boolean: 'or'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2900: public function testNestedWheres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2900: public function testNestedWheres() - line 2902: $builder = $this->getBuilder(); - line 2903: $builder->select('*')->from('users')->where('email', '=', 'foo')->orWhere(function ($q) { - line 2906: $this->assertSame('select * from "users" where "email" = ? or ("name" = ? and "age" = ?)', $builder->toSql()); - line 2907: $this->assertEquals([0 => 'foo', 1 => 'bar', 2 => 25], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2910: public function testNestedWhereBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2910: public function testNestedWhereBindings() - line 2912: $builder = $this->getBuilder(); - line 2913: $builder->where('email', '=', 'foo')->where(function ($q) { - line 2916: $this->assertEquals([0 => 'foo', 1 => 'bar'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2919: public function testWhereNot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 2919: public function testWhereNot() - line 2921: $builder = $this->getBuilder(); - line 2922: $builder->select('*')->from('users')->whereNot(function ($q) { - line 2925: $this->assertSame('select * from "users" where not ("email" = ?)', $builder->toSql()); - line 2926: $this->assertEquals([0 => 'foo'], $builder->getBindings()); - line 2928: $builder = $this->getBuilder(); - line 2929: $builder->select('*')->from('users')->where('name', '=', 'bar')->whereNot(function ($q) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2943: public function testIncrementManyArgumentValidation1() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2943: public function testIncrementManyArgumentValidation1() - line 2945: $this->expectException(InvalidArgumentException::class); - line 2946: $this->expectExceptionMessage('Non-numeric value passed as increment amount for column: \'col\'.'); - line 2947: $builder = $this->getBuilder(); - line 2948: $builder->from('users')->incrementEach(['col' => 'a']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2943: public function testIncrementManyArgumentValidation1() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2951: public function testIncrementManyArgumentValidation2() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2951: public function testIncrementManyArgumentValidation2() - line 2953: $this->expectException(InvalidArgumentException::class); - line 2954: $this->expectExceptionMessage('Non-associative array passed to incrementEach method.'); - line 2955: $builder = $this->getBuilder(); - line 2956: $builder->from('users')->incrementEach([11 => 11]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2951: public function testIncrementManyArgumentValidation2() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2959: public function testWhereNotWithArrayConditions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 2959: public function testWhereNotWithArrayConditions() - line 2961: $builder = $this->getBuilder(); - line 2962: $builder->select('*')->from('users')->whereNot([['foo', 1], ['bar', 2]]); - line 2963: $this->assertSame('select * from "users" where not (("foo" = ? and "bar" = ?))', $builder->toSql()); - line 2964: $this->assertEquals([0 => 1, 1 => 2], $builder->getBindings()); - line 2966: $builder = $this->getBuilder(); - line 2967: $builder->select('*')->from('users')->whereNot(['foo' => 1, 'bar' => 2]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2977: public function testFullSubSelects() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2977: public function testFullSubSelects() - line 2979: $builder = $this->getBuilder(); - line 2980: $builder->select('*')->from('users')->where('email', '=', 'foo')->orWhere('id', '=', function ($q) { - line 2984: $this->assertSame('select * from "users" where "email" = ? or "id" = (select max(id) from "users" where "email" = ?)', $builder->toSql()); - line 2985: $this->assertEquals([0 => 'foo', 1 => 'bar'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2988: public function testWhereExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 27. Evidence: - line 2988: public function testWhereExists() - line 2990: $builder = $this->getBuilder(); - line 2991: $builder->select('*')->from('orders')->whereExists(function ($q) { - line 2994: $this->assertSame('select * from "orders" where exists (select * from "products" where "products"."id" = "orders"."id")', $builder->toSql()); - line 2996: $builder = $this->getBuilder(); - line 2997: $builder->select('*')->from('orders')->whereNotExists(function ($q) { - line 3000: $this->assertSame('select * from "orders" where not exists (select * from "products" where "products"."id" = "orders"."id")', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3045: public function testBasicJoins() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 3045: public function testBasicJoins() - line 3047: $builder = $this->getBuilder(); - line 3048: $builder->select('*')->from('users')->join('contacts', 'users.id', 'contacts.id'); - line 3049: $this->assertSame('select * from "users" inner join "contacts" on "users"."id" = "contacts"."id"', $builder->toSql()); - line 3051: $builder = $this->getBuilder(); - line 3052: $builder->select('*')->from('users')->join('contacts', 'users.id', '=', 'contacts.id')->leftJoin('photos', 'users.id', '=', 'photos.id'); - line 3053: $this->assertSame('select * from "users" inner join "contacts" on "users"."id" = "contacts"."id" left join "photos" on "users"."id" = "photos"."id"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3061: public function testCrossJoins() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 3061: public function testCrossJoins() - line 3063: $builder = $this->getBuilder(); - line 3064: $builder->select('*')->from('sizes')->crossJoin('colors'); - line 3065: $this->assertSame('select * from "sizes" cross join "colors"', $builder->toSql()); - line 3067: $builder = $this->getBuilder(); - line 3068: $builder->select('*')->from('tableB')->join('tableA', 'tableA.column1', '=', 'tableB.column2', 'cross'); - line 3069: $this->assertSame('select * from "tableB" cross join "tableA" on "tableA"."column1" = "tableB"."column2"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3076: public function testCrossJoinSubs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3076: public function testCrossJoinSubs() - line 3078: $builder = $this->getBuilder(); - line 3079: $builder->selectRaw('(sale / overall.sales) * 100 AS percent_of_total')->from('sales')->crossJoinSub($this->getBuilder()->selectRaw('SUM(sale) AS sales')->from('sales'), 'overall'); - line 3080: $this->assertSame('select (sale / overall.sales) * 100 AS percent_of_total from "sales" cross join (select SUM(sale) AS sales from "sales") as "overall"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3083: public function testComplexJoin() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 3083: public function testComplexJoin() - line 3085: $builder = $this->getBuilder(); - line 3086: $builder->select('*')->from('users')->join('contacts', function ($j) { - line 3089: $this->assertSame('select * from "users" inner join "contacts" on "users"."id" = "contacts"."id" or "users"."name" = "contacts"."name"', $builder->toSql()); - line 3091: $builder = $this->getBuilder(); - line 3092: $builder->select('*')->from('users')->join('contacts', function ($j) { - line 3095: $this->assertSame('select * from "users" inner join "contacts" on "users"."id" = ? or "users"."name" = ?', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3103: public function testJoinWhereNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 3103: public function testJoinWhereNull() - line 3105: $builder = $this->getBuilder(); - line 3106: $builder->select('*')->from('users')->join('contacts', function ($j) { - line 3109: $this->assertSame('select * from "users" inner join "contacts" on "users"."id" = "contacts"."id" and "contacts"."deleted_at" is null', $builder->toSql()); - line 3111: $builder = $this->getBuilder(); - line 3112: $builder->select('*')->from('users')->join('contacts', function ($j) { - line 3115: $this->assertSame('select * from "users" inner join "contacts" on "users"."id" = "contacts"."id" or "contacts"."deleted_at" is null', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3118: public function testJoinWhereNotNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 3118: public function testJoinWhereNotNull() - line 3120: $builder = $this->getBuilder(); - line 3121: $builder->select('*')->from('users')->join('contacts', function ($j) { - line 3124: $this->assertSame('select * from "users" inner join "contacts" on "users"."id" = "contacts"."id" and "contacts"."deleted_at" is not null', $builder->toSql()); - line 3126: $builder = $this->getBuilder(); - line 3127: $builder->select('*')->from('users')->join('contacts', function ($j) { - line 3130: $this->assertSame('select * from "users" inner join "contacts" on "users"."id" = "contacts"."id" or "contacts"."deleted_at" is not null', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3133: public function testJoinWhereIn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 3133: public function testJoinWhereIn() - line 3135: $builder = $this->getBuilder(); - line 3136: $builder->select('*')->from('users')->join('contacts', function ($j) { - line 3139: $this->assertSame('select * from "users" inner join "contacts" on "users"."id" = "contacts"."id" and "contacts"."name" in (?, ?, ?)', $builder->toSql()); - line 3140: $this->assertEquals([48, 'baz', null], $builder->getBindings()); - line 3142: $builder = $this->getBuilder(); - line 3143: $builder->select('*')->from('users')->join('contacts', function ($j) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3150: public function testJoinWhereInSubquery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 3150: public function testJoinWhereInSubquery() - line 3152: $builder = $this->getBuilder(); - line 3153: $builder->select('*')->from('users')->join('contacts', function ($j) { - line 3158: $this->assertSame('select * from "users" inner join "contacts" on "users"."id" = "contacts"."id" and "contacts"."name" in (select "name" from "contacts" where "name" = ?)', $builder->toSql()); - line 3159: $this->assertEquals(['baz'], $builder->getBindings()); - line 3161: $builder = $this->getBuilder(); - line 3162: $builder->select('*')->from('users')->join('contacts', function ($j) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3171: public function testJoinWhereNotIn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 3171: public function testJoinWhereNotIn() - line 3173: $builder = $this->getBuilder(); - line 3174: $builder->select('*')->from('users')->join('contacts', function ($j) { - line 3177: $this->assertSame('select * from "users" inner join "contacts" on "users"."id" = "contacts"."id" and "contacts"."name" not in (?, ?, ?)', $builder->toSql()); - line 3178: $this->assertEquals([48, 'baz', null], $builder->getBindings()); - line 3180: $builder = $this->getBuilder(); - line 3181: $builder->select('*')->from('users')->join('contacts', function ($j) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3188: public function testJoinsWithNestedConditions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 3188: public function testJoinsWithNestedConditions() - line 3190: $builder = $this->getBuilder(); - line 3191: $builder->select('*')->from('users')->leftJoin('contacts', function ($j) { - line 3196: $this->assertSame('select * from "users" left join "contacts" on "users"."id" = "contacts"."id" and ("contacts"."country" = ? or "contacts"."is_partner" = ?)', $builder->toSql()); - line 3197: $this->assertEquals(['US', 1], $builder->getBindings()); - line 3199: $builder = $this->getBuilder(); - line 3200: $builder->select('*')->from('users')->leftJoin('contacts', function ($j) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3213: public function testJoinsWithAdvancedConditions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3213: public function testJoinsWithAdvancedConditions() - line 3215: $builder = $this->getBuilder(); - line 3216: $builder->select('*')->from('users')->leftJoin('contacts', function ($j) { - line 3223: $this->assertSame('select * from "users" left join "contacts" on "users"."id" = "contacts"."id" and ("role" = ? or "contacts"."disabled" is null or year(contacts.created_at) = 2016)', $builder->toSql()); - line 3224: $this->assertEquals(['admin'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3227: public function testJoinsWithSubqueryCondition() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 3227: public function testJoinsWithSubqueryCondition() - line 3229: $builder = $this->getBuilder(); - line 3230: $builder->select('*')->from('users')->leftJoin('contacts', function ($j) { - line 3237: $this->assertSame('select * from "users" left join "contacts" on "users"."id" = "contacts"."id" and "contact_type_id" in (select "id" from "contact_types" where "category_id" = ? and "deleted_at" is null)', $builder->toSql()); - line 3238: $this->assertEquals(['1'], $builder->getBindings()); - line 3240: $builder = $this->getBuilder(); - line 3241: $builder->select('*')->from('users')->leftJoin('contacts', function ($j) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3253: public function testJoinsWithAdvancedSubqueryCondition() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3253: public function testJoinsWithAdvancedSubqueryCondition() - line 3255: $builder = $this->getBuilder(); - line 3256: $builder->select('*')->from('users')->leftJoin('contacts', function ($j) { - line 3268: $this->assertSame('select * from "users" left join "contacts" on "users"."id" = "contacts"."id" and exists (select 1 from "contact_types" where contact_types.id = contacts.contact_type_id and "category_id" = ? and "deleted_at" is null and "level_id" in (select "id" from "levels" where "is_active" = ?))', $builder->toSql()); - line 3269: $this->assertEquals(['1', true], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3272: public function testJoinsWithNestedJoins() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3272: public function testJoinsWithNestedJoins() - line 3274: $builder = $this->getBuilder(); - line 3275: $builder->select('users.id', 'contacts.id', 'contact_types.id')->from('users')->leftJoin('contacts', function ($j) { - line 3278: $this->assertSame('select "users"."id", "contacts"."id", "contact_types"."id" from "users" left join ("contacts" inner join "contact_types" on "contacts"."contact_type_id" = "contact_types"."id") on "users"."id" = "contacts"."id"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3281: public function testJoinsWithMultipleNestedJoins() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3281: public function testJoinsWithMultipleNestedJoins() - line 3283: $builder = $this->getBuilder(); - line 3284: $builder->select('users.id', 'contacts.id', 'contact_types.id', 'countries.id', 'planets.id')->from('users')->leftJoin('contacts', function ($j) { - line 3296: $this->assertSame('select "users"."id", "contacts"."id", "contact_types"."id", "countries"."id", "planets"."id" from "users" left join ("contacts" inner join "contact_types" on "contacts"."contact_type_id" = "contact_types"."id" left join ("countries" inner join "planets" on "countries"."planet_id" = "planet"."id" and "planet"."is_settled" = ? and "planet"."population" >= ?) on "contacts"."country" = "countries"."country") on "users"."id" = "contacts"."id"', $builder->toSql()); - line 3297: $this->assertEquals(['1', 10000], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3300: public function testJoinsWithNestedJoinWithAdvancedSubqueryCondition() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3300: public function testJoinsWithNestedJoinWithAdvancedSubqueryCondition() - line 3302: $builder = $this->getBuilder(); - line 3303: $builder->select('users.id', 'contacts.id', 'contact_types.id')->from('users')->leftJoin('contacts', function ($j) { - line 3316: $this->assertSame('select "users"."id", "contacts"."id", "contact_types"."id" from "users" left join ("contacts" inner join "contact_types" on "contacts"."contact_type_id" = "contact_types"."id") on "users"."id" = "contacts"."id" and exists (select * from "countries" inner join "planets" on "countries"."planet_id" = "planet"."id" and "planet"."is_settled" = ? where "contacts"."country" = "countries"."country" and "planet"."population" >= ?)', $builder->toSql()); - line 3317: $this->assertEquals(['1', 10000], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3320: public function testJoinWithNestedOnCondition() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3320: public function testJoinWithNestedOnCondition() - line 3322: $builder = $this->getBuilder(); - line 3323: $builder->select('users.id')->from('users')->join('contacts', function (JoinClause $j) { - line 3328: $this->assertSame('select "users"."id" from "users" inner join "contacts" on "users"."id" = "contacts"."id" and ("contacts"."id" = ?)', $builder->toSql()); - line 3329: $this->assertEquals([1], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3332: public function testJoinSub() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 19. Evidence: - line 3332: public function testJoinSub() - line 3334: $builder = $this->getBuilder(); - line 3335: $builder->from('users')->joinSub('select * from "contacts"', 'sub', 'users.id', '=', 'sub.id'); - line 3336: $this->assertSame('select * from "users" inner join (select * from "contacts") as "sub" on "users"."id" = "sub"."id"', $builder->toSql()); - line 3338: $builder = $this->getBuilder(); - line 3339: $builder->from('users')->joinSub(function ($q) { - line 3342: $this->assertSame('select * from "users" inner join (select * from "contacts") as "sub" on "users"."id" = "sub"."id"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3366: public function testJoinSubWithPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3366: public function testJoinSubWithPrefix() - line 3368: $builder = $this->getBuilder(prefix: 'prefix_'); - line 3369: $builder->from('users')->joinSub('select * from "contacts"', 'sub', 'users.id', '=', 'sub.id'); - line 3370: $this->assertSame('select * from "prefix_users" inner join (select * from "contacts") as "prefix_sub" on "prefix_users"."id" = "prefix_sub"."id"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3373: public function testLeftJoinSub() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 3373: public function testLeftJoinSub() - line 3375: $builder = $this->getBuilder(); - line 3376: $builder->from('users')->leftJoinSub($this->getBuilder()->from('contacts'), 'sub', 'users.id', '=', 'sub.id'); - line 3377: $this->assertSame('select * from "users" left join (select * from "contacts") as "sub" on "users"."id" = "sub"."id"', $builder->toSql()); - line 3379: $this->expectException(InvalidArgumentException::class); - line 3380: $builder = $this->getBuilder(); - line 3381: $builder->from('users')->leftJoinSub(['foo'], 'sub', 'users.id', '=', 'sub.id'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3384: public function testRightJoinSub() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 3384: public function testRightJoinSub() - line 3386: $builder = $this->getBuilder(); - line 3387: $builder->from('users')->rightJoinSub($this->getBuilder()->from('contacts'), 'sub', 'users.id', '=', 'sub.id'); - line 3388: $this->assertSame('select * from "users" right join (select * from "contacts") as "sub" on "users"."id" = "sub"."id"', $builder->toSql()); - line 3390: $this->expectException(InvalidArgumentException::class); - line 3391: $builder = $this->getBuilder(); - line 3392: $builder->from('users')->rightJoinSub(['foo'], 'sub', 'users.id', '=', 'sub.id'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3395: public function testJoinLateral() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 29. Evidence: - line 3395: public function testJoinLateral() - line 3397: $builder = $this->getMySqlBuilder(); - line 3398: $builder->getConnection()->shouldReceive('getDatabaseName'); - line 3399: $builder->from('users')->joinLateral('select * from `contacts` where `contracts`.`user_id` = `users`.`id`', 'sub'); - line 3400: $this->assertSame('select * from `users` inner join lateral (select * from `contacts` where `contracts`.`user_id` = `users`.`id`) as `sub` on true', $builder->toSql()); - line 3402: $builder = $this->getMySqlBuilder(); - line 3403: $builder->getConnection()->shouldReceive('getDatabaseName'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3441: public function testJoinLateralMariaDb() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3441: public function testJoinLateralMariaDb() - line 3443: $this->expectException(RuntimeException::class); - line 3444: $builder = $this->getMariaDbBuilder(); - line 3445: $builder->getConnection()->shouldReceive('getDatabaseName'); - line 3446: $builder->from('users')->joinLateral(function ($q) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3441: public function testJoinLateralMariaDb() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3451: public function testJoinLateralSQLite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3451: public function testJoinLateralSQLite() - line 3453: $this->expectException(RuntimeException::class); - line 3454: $builder = $this->getSQLiteBuilder(); - line 3455: $builder->getConnection()->shouldReceive('getDatabaseName'); - line 3456: $builder->from('users')->joinLateral(function ($q) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3451: public function testJoinLateralSQLite() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3461: public function testJoinLateralPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3461: public function testJoinLateralPostgres() - line 3463: $builder = $this->getPostgresBuilder(); - line 3464: $builder->getConnection()->shouldReceive('getDatabaseName'); - line 3465: $builder->from('users')->joinLateral(function ($q) { - line 3468: $this->assertSame('select * from "users" inner join lateral (select * from "contacts" where "contracts"."user_id" = "users"."id") as "sub" on true', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3471: public function testJoinLateralSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3471: public function testJoinLateralSqlServer() - line 3473: $builder = $this->getSqlServerBuilder(); - line 3474: $builder->getConnection()->shouldReceive('getDatabaseName'); - line 3475: $builder->from('users')->joinLateral(function ($q) { - line 3478: $this->assertSame('select * from [users] cross apply (select * from [contacts] where [contracts].[user_id] = [users].[id]) as [sub]', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3481: public function testJoinLateralWithPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3481: public function testJoinLateralWithPrefix() - line 3483: $builder = $this->getMySqlBuilder(prefix: 'prefix_'); - line 3484: $builder->from('users')->joinLateral('select * from `contacts` where `contracts`.`user_id` = `users`.`id`', 'sub'); - line 3485: $this->assertSame('select * from `prefix_users` inner join lateral (select * from `contacts` where `contracts`.`user_id` = `users`.`id`) as `prefix_sub` on true', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3488: public function testLeftJoinLateral() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 3488: public function testLeftJoinLateral() - line 3490: $builder = $this->getMySqlBuilder(); - line 3491: $builder->getConnection()->shouldReceive('getDatabaseName'); - line 3493: $sub = $this->getMySqlBuilder(); - line 3494: $sub->getConnection()->shouldReceive('getDatabaseName'); - line 3496: $builder->from('users')->leftJoinLateral($sub->from('contacts')->whereColumn('contracts.user_id', 'users.id'), 'sub'); - line 3497: $this->assertSame('select * from `users` left join lateral (select * from `contacts` where `contracts`.`user_id` = `users`.`id`) as `sub` on true', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3504: public function testLeftJoinLateralSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3504: public function testLeftJoinLateralSqlServer() - line 3506: $builder = $this->getSqlServerBuilder(); - line 3507: $builder->getConnection()->shouldReceive('getDatabaseName'); - line 3508: $builder->from('users')->leftJoinLateral(function ($q) { - line 3511: $this->assertSame('select * from [users] outer apply (select * from [contacts] where [contracts].[user_id] = [users].[id]) as [sub]', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3514: public function testRawExpressionsInSelect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3514: public function testRawExpressionsInSelect() - line 3516: $builder = $this->getBuilder(); - line 3517: $builder->select(new Raw('substr(foo, 6)'))->from('users'); - line 3518: $this->assertSame('select substr(foo, 6) from "users"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3521: public function testFindReturnsFirstResultByID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3521: public function testFindReturnsFirstResultByID() - line 3523: $builder = $this->getBuilder(); - line 3524: $builder->getConnection()->shouldReceive('select')->once()->with('select * from "users" where "id" = ? limit 1', [1], true)->andReturn([['foo' => 'bar']]); - line 3525: $builder->getProcessor()->shouldReceive('processSelect')->once()->with($builder, [['foo' => 'bar']])->andReturnUsing(function ($query, $results) { - line 3528: $results = $builder->from('users')->find(1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3521: public function testFindReturnsFirstResultByID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3532: public function testFindOrReturnsFirstResultByID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3532: public function testFindOrReturnsFirstResultByID() - line 3534: $builder = $this->getMockQueryBuilder(); - line 3540: $this->assertSame($data, $builder->findOr(1, fn () => 'callback result')); - line 3541: $this->assertSame($data, $builder->findOr(1, ['column'], fn () => 'callback result')); - line 3542: $this->assertSame('callback result', $builder->findOr(1, fn () => 'callback result')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 3535: $data = m::mock(stdClass::class); - Test @ line 3545: public function testFirstMethodReturnsFirstResult() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3545: public function testFirstMethodReturnsFirstResult() - line 3547: $builder = $this->getBuilder(); - line 3548: $builder->getConnection()->shouldReceive('select')->once()->with('select * from "users" where "id" = ? limit 1', [1], true)->andReturn([['foo' => 'bar']]); - line 3549: $builder->getProcessor()->shouldReceive('processSelect')->once()->with($builder, [['foo' => 'bar']])->andReturnUsing(function ($query, $results) { - line 3552: $results = $builder->from('users')->where('id', '=', 1)->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3545: public function testFirstMethodReturnsFirstResult() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3556: public function testFirstOrFailMethodReturnsFirstResult() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3556: public function testFirstOrFailMethodReturnsFirstResult() - line 3558: $builder = $this->getBuilder(); - line 3559: $builder->getConnection()->shouldReceive('select')->once()->with('select * from "users" where "id" = ? limit 1', [1], true)->andReturn([['foo' => 'bar']]); - line 3560: $builder->getProcessor()->shouldReceive('processSelect')->once()->with($builder, [['foo' => 'bar']])->andReturnUsing(function ($query, $results) { - line 3563: $results = $builder->from('users')->where('id', '=', 1)->firstOrFail(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3556: public function testFirstOrFailMethodReturnsFirstResult() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3567: public function testFirstOrFailMethodThrowsRecordNotFoundException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 3567: public function testFirstOrFailMethodThrowsRecordNotFoundException() - line 3569: $builder = $this->getBuilder(); - line 3570: $builder->getConnection()->shouldReceive('select')->once()->with('select * from "users" where "id" = ? limit 1', [1], true)->andReturn([]); - line 3572: $builder->getProcessor()->shouldReceive('processSelect')->once()->with($builder, [])->andReturn([]); - line 3574: $this->expectException(RecordNotFoundException::class); - line 3575: $this->expectExceptionMessage('No record found for the given query.'); - line 3577: $builder->from('users')->where('id', '=', 1)->firstOrFail(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3567: public function testFirstOrFailMethodThrowsRecordNotFoundException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3580: public function testPluckMethodGetsCollectionOfColumnValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 3580: public function testPluckMethodGetsCollectionOfColumnValues() - line 3582: $builder = $this->getBuilder(); - line 3583: $builder->getConnection()->shouldReceive('select')->once()->andReturn([['foo' => 'bar'], ['foo' => 'baz']]); - line 3584: $builder->getProcessor()->shouldReceive('processSelect')->once()->with($builder, [['foo' => 'bar'], ['foo' => 'baz']])->andReturnUsing(function ($query, $results) { - line 3587: $results = $builder->from('users')->where('id', '=', 1)->pluck('foo'); - line 3588: $this->assertEquals(['bar', 'baz'], $results->all()); - line 3590: $builder = $this->getBuilder(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3599: public function testPluckAvoidsDuplicateColumnSelection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 3599: public function testPluckAvoidsDuplicateColumnSelection() - line 3601: $builder = $this->getBuilder(); - line 3602: $builder->getConnection()->shouldReceive('select')->once()->with('select "foo" from "users" where "id" = ?', [1], true)->andReturn([['foo' => 'bar']]); - line 3603: $builder->getProcessor()->shouldReceive('processSelect')->once()->with($builder, [['foo' => 'bar']])->andReturnUsing(function ($query, $results) { - line 3606: $results = $builder->from('users')->where('id', '=', 1)->pluck('foo', 'foo'); - line 3607: $this->assertEquals(['bar' => 'bar'], $results->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3610: public function testImplode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 3610: public function testImplode() - line 3613: $builder = $this->getBuilder(); - line 3614: $builder->getConnection()->shouldReceive('select')->once()->andReturn([['foo' => 'bar'], ['foo' => 'baz']]); - line 3615: $builder->getProcessor()->shouldReceive('processSelect')->once()->with($builder, [['foo' => 'bar'], ['foo' => 'baz']])->andReturnUsing(function ($query, $results) { - line 3618: $results = $builder->from('users')->where('id', '=', 1)->implode('foo'); - line 3622: $builder = $this->getBuilder(); - line 3623: $builder->getConnection()->shouldReceive('select')->once()->andReturn([['foo' => 'bar'], ['foo' => 'baz']]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3610: public function testImplode() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3631: public function testValueMethodReturnsSingleColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3631: public function testValueMethodReturnsSingleColumn() - line 3633: $builder = $this->getBuilder(); - line 3634: $builder->getConnection()->shouldReceive('select')->once()->with('select "foo" from "users" where "id" = ? limit 1', [1], true)->andReturn([['foo' => 'bar']]); - line 3635: $builder->getProcessor()->shouldReceive('processSelect')->once()->with($builder, [['foo' => 'bar']])->andReturn([['foo' => 'bar']]); - line 3636: $results = $builder->from('users')->where('id', '=', 1)->value('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3631: public function testValueMethodReturnsSingleColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3640: public function testRawValueMethodReturnsSingleColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3640: public function testRawValueMethodReturnsSingleColumn() - line 3642: $builder = $this->getBuilder(); - line 3643: $builder->getConnection()->shouldReceive('select')->once()->with('select UPPER("foo") from "users" where "id" = ? limit 1', [1], true)->andReturn([['UPPER("foo")' => 'BAR']]); - line 3644: $builder->getProcessor()->shouldReceive('processSelect')->once()->with($builder, [['UPPER("foo")' => 'BAR']])->andReturn([['UPPER("foo")' => 'BAR']]); - line 3645: $results = $builder->from('users')->where('id', '=', 1)->rawValue('UPPER("foo")'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3640: public function testRawValueMethodReturnsSingleColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3649: public function testAggregateFunctions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 30. Evidence: - line 3649: public function testAggregateFunctions() - line 3651: $builder = $this->getBuilder(); - line 3652: $builder->getConnection()->shouldReceive('select')->once()->with('select count(*) as aggregate from "users"', [], true)->andReturn([['aggregate' => 1]]); - line 3653: $builder->getProcessor()->shouldReceive('processSelect')->once()->andReturnUsing(function ($builder, $results) { - line 3656: $results = $builder->from('users')->count(); - line 3659: $builder = $this->getBuilder(); - line 3660: $builder->getConnection()->shouldReceive('select')->once()->with('select exists(select * from "users") as "exists"', [], true)->andReturn([['exists' => 1]]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3649: public function testAggregateFunctions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3710: public function testSqlServerExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3710: public function testSqlServerExists() - line 3712: $builder = $this->getSqlServerBuilder(); - line 3713: $builder->getConnection()->shouldReceive('select')->once()->with('select top 1 1 [exists] from [users]', [], true)->andReturn([['exists' => 1]]); - line 3714: $results = $builder->from('users')->exists(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3710: public function testSqlServerExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3718: public function testExistsOr() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 3718: public function testExistsOr() - line 3720: $builder = $this->getBuilder(); - line 3721: $builder->getConnection()->shouldReceive('select')->andReturn([['exists' => 1]]); - line 3722: $results = $builder->from('users')->doesntExistOr(function () { - line 3726: $builder = $this->getBuilder(); - line 3727: $builder->getConnection()->shouldReceive('select')->andReturn([['exists' => 0]]); - line 3728: $results = $builder->from('users')->doesntExistOr(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3718: public function testExistsOr() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3734: public function testDoesntExistsOr() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 3734: public function testDoesntExistsOr() - line 3736: $builder = $this->getBuilder(); - line 3737: $builder->getConnection()->shouldReceive('select')->andReturn([['exists' => 0]]); - line 3738: $results = $builder->from('users')->existsOr(function () { - line 3742: $builder = $this->getBuilder(); - line 3743: $builder->getConnection()->shouldReceive('select')->andReturn([['exists' => 1]]); - line 3744: $results = $builder->from('users')->existsOr(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3734: public function testDoesntExistsOr() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3750: public function testAggregateResetFollowedByGet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 3750: public function testAggregateResetFollowedByGet() - line 3752: $builder = $this->getBuilder(); - line 3753: $builder->getConnection()->shouldReceive('select')->once()->with('select count(*) as aggregate from "users"', [], true)->andReturn([['aggregate' => 1]]); - line 3754: $builder->getConnection()->shouldReceive('select')->once()->with('select sum("id") as aggregate from "users"', [], true)->andReturn([['aggregate' => 2]]); - line 3755: $builder->getConnection()->shouldReceive('select')->once()->with('select "column1", "column2" from "users"', [], true)->andReturn([['column1' => 'foo', 'column2' => 'bar']]); - line 3756: $builder->getProcessor()->shouldReceive('processSelect')->andReturnUsing(function ($builder, $results) { - line 3759: $builder->from('users')->select('column1', 'column2'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3768: public function testAggregateResetFollowedBySelectGet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 3768: public function testAggregateResetFollowedBySelectGet() - line 3770: $builder = $this->getBuilder(); - line 3771: $builder->getConnection()->shouldReceive('select')->once()->with('select count("column1") as aggregate from "users"', [], true)->andReturn([['aggregate' => 1]]); - line 3772: $builder->getConnection()->shouldReceive('select')->once()->with('select "column2", "column3" from "users"', [], true)->andReturn([['column2' => 'foo', 'column3' => 'bar']]); - line 3773: $builder->getProcessor()->shouldReceive('processSelect')->andReturnUsing(function ($builder, $results) { - line 3776: $builder->from('users'); - line 3777: $count = $builder->count('column1'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3783: public function testAggregateResetFollowedByGetWithColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 3783: public function testAggregateResetFollowedByGetWithColumns() - line 3785: $builder = $this->getBuilder(); - line 3786: $builder->getConnection()->shouldReceive('select')->once()->with('select count("column1") as aggregate from "users"', [], true)->andReturn([['aggregate' => 1]]); - line 3787: $builder->getConnection()->shouldReceive('select')->once()->with('select "column2", "column3" from "users"', [], true)->andReturn([['column2' => 'foo', 'column3' => 'bar']]); - line 3788: $builder->getProcessor()->shouldReceive('processSelect')->andReturnUsing(function ($builder, $results) { - line 3791: $builder->from('users'); - line 3792: $count = $builder->count('column1'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3798: public function testAggregateWithSubSelect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 3798: public function testAggregateWithSubSelect() - line 3800: $builder = $this->getBuilder(); - line 3801: $builder->getConnection()->shouldReceive('select')->once()->with('select count(*) as aggregate from "users"', [], true)->andReturn([['aggregate' => 1]]); - line 3802: $builder->getProcessor()->shouldReceive('processSelect')->once()->andReturnUsing(function ($builder, $results) { - line 3805: $builder->from('users')->selectSub(function ($query) { - line 3808: $count = $builder->count(); - line 3810: $this->assertSame('(select "foo", "bar" from "posts" where "title" = ?) as "post"', $builder->getGrammar()->getValue($builder->columns[0])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3814: public function testSubqueriesBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 3814: public function testSubqueriesBindings() - line 3816: $builder = $this->getBuilder(); - line 3817: $second = $this->getBuilder()->select('*')->from('users')->orderByRaw('id = ?', 2); - line 3818: $third = $this->getBuilder()->select('*')->from('users')->where('id', 3)->groupBy('id')->having('id', '!=', 4); - line 3819: $builder->groupBy('a')->having('a', '=', 1)->union($second)->union($third); - line 3820: $this->assertEquals([0 => 1, 1 => 2, 2 => 3, 3 => 4], $builder->getBindings()); - line 3822: $builder = $this->getBuilder()->select('*')->from('users')->where('email', '=', function ($q) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3831: public function testInsertMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3831: public function testInsertMethod() - line 3833: $builder = $this->getBuilder(); - line 3834: $builder->getConnection()->shouldReceive('insert')->once()->with('insert into "users" ("email") values (?)', ['foo'])->andReturn(true); - line 3835: $result = $builder->from('users')->insert(['email' => 'foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3831: public function testInsertMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3839: public function testInsertUsingMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3839: public function testInsertUsingMethod() - line 3841: $builder = $this->getBuilder(); - line 3842: $builder->getConnection()->shouldReceive('affectingStatement')->once()->with('insert into "table1" ("foo") select "bar" from "table2" where "foreign_id" = ?', [5])->andReturn(1); - line 3844: $result = $builder->from('table1')->insertUsing( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3839: public function testInsertUsingMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3854: public function testInsertUsingWithEmptyColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3854: public function testInsertUsingWithEmptyColumns() - line 3856: $builder = $this->getBuilder(); - line 3857: $builder->getConnection()->shouldReceive('affectingStatement')->once()->with('insert into "table1" select * from "table2" where "foreign_id" = ?', [5])->andReturn(1); - line 3859: $result = $builder->from('table1')->insertUsing( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3854: public function testInsertUsingWithEmptyColumns() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3869: public function testInsertUsingInvalidSubquery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3869: public function testInsertUsingInvalidSubquery() - line 3871: $this->expectException(InvalidArgumentException::class); - line 3872: $builder = $this->getBuilder(); - line 3873: $builder->from('table1')->insertUsing(['foo'], ['bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3869: public function testInsertUsingInvalidSubquery() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3876: public function testInsertOrIgnoreMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3876: public function testInsertOrIgnoreMethod() - line 3878: $this->expectException(RuntimeException::class); - line 3879: $this->expectExceptionMessage('does not support'); - line 3880: $builder = $this->getBuilder(); - line 3881: $builder->from('users')->insertOrIgnore(['email' => 'foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3876: public function testInsertOrIgnoreMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3884: public function testMySqlInsertOrIgnoreMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3884: public function testMySqlInsertOrIgnoreMethod() - line 3886: $builder = $this->getMySqlBuilder(); - line 3887: $builder->getConnection()->shouldReceive('affectingStatement')->once()->with('insert ignore into `users` (`email`) values (?)', ['foo'])->andReturn(1); - line 3888: $result = $builder->from('users')->insertOrIgnore(['email' => 'foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3884: public function testMySqlInsertOrIgnoreMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3892: public function testPostgresInsertOrIgnoreMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3892: public function testPostgresInsertOrIgnoreMethod() - line 3894: $builder = $this->getPostgresBuilder(); - line 3895: $builder->getConnection()->shouldReceive('affectingStatement')->once()->with('insert into "users" ("email") values (?) on conflict do nothing', ['foo'])->andReturn(1); - line 3896: $result = $builder->from('users')->insertOrIgnore(['email' => 'foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3892: public function testPostgresInsertOrIgnoreMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3900: public function testSQLiteInsertOrIgnoreMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3900: public function testSQLiteInsertOrIgnoreMethod() - line 3902: $builder = $this->getSQLiteBuilder(); - line 3903: $builder->getConnection()->shouldReceive('affectingStatement')->once()->with('insert or ignore into "users" ("email") values (?)', ['foo'])->andReturn(1); - line 3904: $result = $builder->from('users')->insertOrIgnore(['email' => 'foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3900: public function testSQLiteInsertOrIgnoreMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3908: public function testSqlServerInsertOrIgnoreMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3908: public function testSqlServerInsertOrIgnoreMethod() - line 3910: $this->expectException(RuntimeException::class); - line 3911: $this->expectExceptionMessage('does not support'); - line 3912: $builder = $this->getSqlServerBuilder(); - line 3913: $builder->from('users')->insertOrIgnore(['email' => 'foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3908: public function testSqlServerInsertOrIgnoreMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3916: public function testInsertOrIgnoreUsingMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3916: public function testInsertOrIgnoreUsingMethod() - line 3918: $this->expectException(RuntimeException::class); - line 3919: $this->expectExceptionMessage('does not support'); - line 3920: $builder = $this->getBuilder(); - line 3921: $builder->from('users')->insertOrIgnoreUsing(['email' => 'foo'], 'bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3916: public function testInsertOrIgnoreUsingMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3924: public function testSqlServerInsertOrIgnoreUsingMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3924: public function testSqlServerInsertOrIgnoreUsingMethod() - line 3926: $this->expectException(RuntimeException::class); - line 3927: $this->expectExceptionMessage('does not support'); - line 3928: $builder = $this->getSqlServerBuilder(); - line 3929: $builder->from('users')->insertOrIgnoreUsing(['email' => 'foo'], 'bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3924: public function testSqlServerInsertOrIgnoreUsingMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3932: public function testMySqlInsertOrIgnoreUsingMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3932: public function testMySqlInsertOrIgnoreUsingMethod() - line 3934: $builder = $this->getMySqlBuilder(); - line 3935: $builder->getConnection()->shouldReceive('getDatabaseName'); - line 3936: $builder->getConnection()->shouldReceive('affectingStatement')->once()->with('insert ignore into `table1` (`foo`) select `bar` from `table2` where `foreign_id` = ?', [0 => 5])->andReturn(1); - line 3938: $result = $builder->from('table1')->insertOrIgnoreUsing( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3932: public function testMySqlInsertOrIgnoreUsingMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3948: public function testMySqlInsertOrIgnoreUsingWithEmptyColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3948: public function testMySqlInsertOrIgnoreUsingWithEmptyColumns() - line 3950: $builder = $this->getMySqlBuilder(); - line 3951: $builder->getConnection()->shouldReceive('getDatabaseName'); - line 3952: $builder->getConnection()->shouldReceive('affectingStatement')->once()->with('insert ignore into `table1` select * from `table2` where `foreign_id` = ?', [0 => 5])->andReturn(1); - line 3954: $result = $builder->from('table1')->insertOrIgnoreUsing( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3948: public function testMySqlInsertOrIgnoreUsingWithEmptyColumns() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3964: public function testMySqlInsertOrIgnoreUsingInvalidSubquery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3964: public function testMySqlInsertOrIgnoreUsingInvalidSubquery() - line 3966: $this->expectException(InvalidArgumentException::class); - line 3967: $builder = $this->getMySqlBuilder(); - line 3968: $builder->from('table1')->insertOrIgnoreUsing(['foo'], ['bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3964: public function testMySqlInsertOrIgnoreUsingInvalidSubquery() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3971: public function testPostgresInsertOrIgnoreUsingMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3971: public function testPostgresInsertOrIgnoreUsingMethod() - line 3973: $builder = $this->getPostgresBuilder(); - line 3974: $builder->getConnection()->shouldReceive('affectingStatement')->once()->with('insert into "table1" ("foo") select "bar" from "table2" where "foreign_id" = ? on conflict do nothing', [5])->andReturn(1); - line 3976: $result = $builder->from('table1')->insertOrIgnoreUsing( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3971: public function testPostgresInsertOrIgnoreUsingMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3986: public function testPostgresInsertOrIgnoreUsingWithEmptyColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3986: public function testPostgresInsertOrIgnoreUsingWithEmptyColumns() - line 3988: $builder = $this->getPostgresBuilder(); - line 3989: $builder->getConnection()->shouldReceive('affectingStatement')->once()->with('insert into "table1" select * from "table2" where "foreign_id" = ? on conflict do nothing', [5])->andReturn(1); - line 3991: $result = $builder->from('table1')->insertOrIgnoreUsing( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3986: public function testPostgresInsertOrIgnoreUsingWithEmptyColumns() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4001: public function testPostgresInsertOrIgnoreUsingInvalidSubquery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4001: public function testPostgresInsertOrIgnoreUsingInvalidSubquery() - line 4003: $this->expectException(InvalidArgumentException::class); - line 4004: $builder = $this->getPostgresBuilder(); - line 4005: $builder->from('table1')->insertOrIgnoreUsing(['foo'], ['bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4001: public function testPostgresInsertOrIgnoreUsingInvalidSubquery() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4008: public function testSQLiteInsertOrIgnoreUsingMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4008: public function testSQLiteInsertOrIgnoreUsingMethod() - line 4010: $builder = $this->getSQLiteBuilder(); - line 4011: $builder->getConnection()->shouldReceive('getDatabaseName'); - line 4012: $builder->getConnection()->shouldReceive('affectingStatement')->once()->with('insert or ignore into "table1" ("foo") select "bar" from "table2" where "foreign_id" = ?', [5])->andReturn(1); - line 4014: $result = $builder->from('table1')->insertOrIgnoreUsing( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4008: public function testSQLiteInsertOrIgnoreUsingMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4024: public function testSQLiteInsertOrIgnoreUsingWithEmptyColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4024: public function testSQLiteInsertOrIgnoreUsingWithEmptyColumns() - line 4026: $builder = $this->getSQLiteBuilder(); - line 4027: $builder->getConnection()->shouldReceive('getDatabaseName'); - line 4028: $builder->getConnection()->shouldReceive('affectingStatement')->once()->with('insert or ignore into "table1" select * from "table2" where "foreign_id" = ?', [5])->andReturn(1); - line 4030: $result = $builder->from('table1')->insertOrIgnoreUsing( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4024: public function testSQLiteInsertOrIgnoreUsingWithEmptyColumns() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4040: public function testSQLiteInsertOrIgnoreUsingInvalidSubquery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4040: public function testSQLiteInsertOrIgnoreUsingInvalidSubquery() - line 4042: $this->expectException(InvalidArgumentException::class); - line 4043: $builder = $this->getSQLiteBuilder(); - line 4044: $builder->from('table1')->insertOrIgnoreUsing(['foo'], ['bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4040: public function testSQLiteInsertOrIgnoreUsingInvalidSubquery() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4047: public function testInsertGetIdMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4047: public function testInsertGetIdMethod() - line 4049: $builder = $this->getBuilder(); - line 4050: $builder->getProcessor()->shouldReceive('processInsertGetId')->once()->with($builder, 'insert into "users" ("email") values (?)', ['foo'], 'id')->andReturn(1); - line 4051: $result = $builder->from('users')->insertGetId(['email' => 'foo'], 'id'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4047: public function testInsertGetIdMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4055: public function testInsertGetIdMethodRemovesExpressions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4055: public function testInsertGetIdMethodRemovesExpressions() - line 4057: $builder = $this->getBuilder(); - line 4058: $builder->getProcessor()->shouldReceive('processInsertGetId')->once()->with($builder, 'insert into "users" ("email", "bar") values (?, bar)', ['foo'], 'id')->andReturn(1); - line 4059: $result = $builder->from('users')->insertGetId(['email' => 'foo', 'bar' => new Raw('bar')], 'id'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4055: public function testInsertGetIdMethodRemovesExpressions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4063: public function testInsertGetIdWithEmptyValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 4063: public function testInsertGetIdWithEmptyValues() - line 4065: $builder = $this->getMySqlBuilder(); - line 4066: $builder->getProcessor()->shouldReceive('processInsertGetId')->once()->with($builder, 'insert into `users` () values ()', [], null); - line 4067: $builder->from('users')->insertGetId([]); - line 4069: $builder = $this->getPostgresBuilder(); - line 4070: $builder->getProcessor()->shouldReceive('processInsertGetId')->once()->with($builder, 'insert into "users" default values returning "id"', [], null); - line 4071: $builder->from('users')->insertGetId([]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4063: public function testInsertGetIdWithEmptyValues() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4082: public function testInsertMethodRespectsRawBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4082: public function testInsertMethodRespectsRawBindings() - line 4084: $builder = $this->getBuilder(); - line 4085: $builder->getConnection()->shouldReceive('insert')->once()->with('insert into "users" ("email") values (CURRENT TIMESTAMP)', [])->andReturn(true); - line 4086: $result = $builder->from('users')->insert(['email' => new Raw('CURRENT TIMESTAMP')]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4082: public function testInsertMethodRespectsRawBindings() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4090: public function testMultipleInsertsWithExpressionValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4090: public function testMultipleInsertsWithExpressionValues() - line 4092: $builder = $this->getBuilder(); - line 4093: $builder->getConnection()->shouldReceive('insert')->once()->with('insert into "users" ("email") values (UPPER(\'Foo\')), (LOWER(\'Foo\'))', [])->andReturn(true); - line 4094: $result = $builder->from('users')->insert([['email' => new Raw("UPPER('Foo')")], ['email' => new Raw("LOWER('Foo')")]]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4090: public function testMultipleInsertsWithExpressionValues() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4098: public function testUpdateMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 4098: public function testUpdateMethod() - line 4100: $builder = $this->getBuilder(); - line 4101: $builder->getConnection()->shouldReceive('update')->once()->with('update "users" set "email" = ?, "name" = ? where "id" = ?', ['foo', 'bar', 1])->andReturn(1); - line 4102: $result = $builder->from('users')->where('id', '=', 1)->update(['email' => 'foo', 'name' => 'bar']); - line 4105: $builder = $this->getMySqlBuilder(); - line 4106: $builder->getConnection()->shouldReceive('update')->once()->with('update `users` set `email` = ?, `name` = ? where `id` = ? order by `foo` desc limit 5', ['foo', 'bar', 1])->andReturn(1); - line 4107: $result = $builder->from('users')->where('id', '=', 1)->orderBy('foo', 'desc')->limit(5)->update(['email' => 'foo', 'name' => 'bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4098: public function testUpdateMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4111: public function testUpsertMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 4111: public function testUpsertMethod() - line 4113: $builder = $this->getMySqlBuilder(); - line 4114: $builder->getConnection() - line 4117: $result = $builder->from('users')->upsert([['email' => 'foo', 'name' => 'bar'], ['name' => 'bar2', 'email' => 'foo2']], 'email'); - line 4120: $builder = $this->getMySqlBuilder(); - line 4121: $builder->getConnection() - line 4124: $result = $builder->from('users')->upsert([['email' => 'foo', 'name' => 'bar'], ['name' => 'bar2', 'email' => 'foo2']], 'email'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4111: public function testUpsertMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4143: public function testUpsertMethodWithUpdateColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 4143: public function testUpsertMethodWithUpdateColumns() - line 4145: $builder = $this->getMySqlBuilder(); - line 4146: $builder->getConnection() - line 4149: $result = $builder->from('users')->upsert([['email' => 'foo', 'name' => 'bar'], ['name' => 'bar2', 'email' => 'foo2']], 'email', ['name']); - line 4152: $builder = $this->getMySqlBuilder(); - line 4153: $builder->getConnection() - line 4156: $result = $builder->from('users')->upsert([['email' => 'foo', 'name' => 'bar'], ['name' => 'bar2', 'email' => 'foo2']], 'email', ['name']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4143: public function testUpsertMethodWithUpdateColumns() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4175: public function testUpdateMethodWithJoins() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 4175: public function testUpdateMethodWithJoins() - line 4177: $builder = $this->getBuilder(); - line 4178: $builder->getConnection()->shouldReceive('update')->once()->with('update "users" inner join "orders" on "users"."id" = "orders"."user_id" set "email" = ?, "name" = ? where "users"."id" = ?', ['foo', 'bar', 1])->andReturn(1); - line 4179: $result = $builder->from('users')->join('orders', 'users.id', '=', 'orders.user_id')->where('users.id', '=', 1)->update(['email' => 'foo', 'name' => 'bar']); - line 4182: $builder = $this->getBuilder(); - line 4183: $builder->getConnection()->shouldReceive('update')->once()->with('update "users" inner join "orders" on "users"."id" = "orders"."user_id" and "users"."id" = ? set "email" = ?, "name" = ?', [1, 'foo', 'bar'])->andReturn(1); - line 4184: $result = $builder->from('users')->join('orders', function ($join) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4175: public function testUpdateMethodWithJoins() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4191: public function testUpdateMethodWithJoinsOnSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 4191: public function testUpdateMethodWithJoinsOnSqlServer() - line 4193: $builder = $this->getSqlServerBuilder(); - line 4194: $builder->getConnection()->shouldReceive('update')->once()->with('update [users] set [email] = ?, [name] = ? from [users] inner join [orders] on [users].[id] = [orders].[user_id] where [users].[id] = ?', ['foo', 'bar', 1])->andReturn(1); - line 4195: $result = $builder->from('users')->join('orders', 'users.id', '=', 'orders.user_id')->where('users.id', '=', 1)->update(['email' => 'foo', 'name' => 'bar']); - line 4198: $builder = $this->getSqlServerBuilder(); - line 4199: $builder->getConnection()->shouldReceive('update')->once()->with('update [users] set [email] = ?, [name] = ? from [users] inner join [orders] on [users].[id] = [orders].[user_id] and [users].[id] = ?', ['foo', 'bar', 1])->andReturn(1); - line 4200: $result = $builder->from('users')->join('orders', function ($join) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4191: public function testUpdateMethodWithJoinsOnSqlServer() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4207: public function testUpdateMethodWithJoinsOnMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 4207: public function testUpdateMethodWithJoinsOnMySql() - line 4209: $builder = $this->getMySqlBuilder(); - line 4210: $builder->getConnection()->shouldReceive('update')->once()->with('update `users` inner join `orders` on `users`.`id` = `orders`.`user_id` set `email` = ?, `name` = ? where `users`.`id` = ?', ['foo', 'bar', 1])->andReturn(1); - line 4211: $result = $builder->from('users')->join('orders', 'users.id', '=', 'orders.user_id')->where('users.id', '=', 1)->update(['email' => 'foo', 'name' => 'bar']); - line 4214: $builder = $this->getMySqlBuilder(); - line 4215: $builder->getConnection()->shouldReceive('update')->once()->with('update `users` inner join `orders` on `users`.`id` = `orders`.`user_id` and `users`.`id` = ? set `email` = ?, `name` = ?', [1, 'foo', 'bar'])->andReturn(1); - line 4216: $result = $builder->from('users')->join('orders', function ($join) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4207: public function testUpdateMethodWithJoinsOnMySql() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4223: public function testUpdateMethodWithJoinsOnSQLite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 4223: public function testUpdateMethodWithJoinsOnSQLite() - line 4225: $builder = $this->getSQLiteBuilder(); - line 4226: $builder->getConnection()->shouldReceive('update')->once()->with('update "users" set "email" = ?, "name" = ? where "rowid" in (select "users"."rowid" from "users" where "users"."id" > ? order by "id" asc limit 3)', ['foo', 'bar', 1])->andReturn(1); - line 4227: $result = $builder->from('users')->where('users.id', '>', 1)->limit(3)->oldest('id')->update(['email' => 'foo', 'name' => 'bar']); - line 4230: $builder = $this->getSQLiteBuilder(); - line 4231: $builder->getConnection()->shouldReceive('update')->once()->with('update "users" set "email" = ?, "name" = ? where "rowid" in (select "users"."rowid" from "users" inner join "orders" on "users"."id" = "orders"."user_id" where "users"."id" = ?)', ['foo', 'bar', 1])->andReturn(1); - line 4232: $result = $builder->from('users')->join('orders', 'users.id', '=', 'orders.user_id')->where('users.id', '=', 1)->update(['email' => 'foo', 'name' => 'bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4223: public function testUpdateMethodWithJoinsOnSQLite() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4249: public function testUpdateMethodWithJoinsAndAliasesOnSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4249: public function testUpdateMethodWithJoinsAndAliasesOnSqlServer() - line 4251: $builder = $this->getSqlServerBuilder(); - line 4252: $builder->getConnection()->shouldReceive('update')->once()->with('update [u] set [email] = ?, [name] = ? from [users] as [u] inner join [orders] on [u].[id] = [orders].[user_id] where [u].[id] = ?', ['foo', 'bar', 1])->andReturn(1); - line 4253: $result = $builder->from('users as u')->join('orders', 'u.id', '=', 'orders.user_id')->where('u.id', '=', 1)->update(['email' => 'foo', 'name' => 'bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4249: public function testUpdateMethodWithJoinsAndAliasesOnSqlServer() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4257: public function testUpdateMethodWithoutJoinsOnPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 4257: public function testUpdateMethodWithoutJoinsOnPostgres() - line 4259: $builder = $this->getPostgresBuilder(); - line 4260: $builder->getConnection()->shouldReceive('update')->once()->with('update "users" set "email" = ?, "name" = ? where "id" = ?', ['foo', 'bar', 1])->andReturn(1); - line 4261: $result = $builder->from('users')->where('id', '=', 1)->update(['users.email' => 'foo', 'name' => 'bar']); - line 4264: $builder = $this->getPostgresBuilder(); - line 4265: $builder->getConnection()->shouldReceive('update')->once()->with('update "users" set "email" = ?, "name" = ? where "id" = ?', ['foo', 'bar', 1])->andReturn(1); - line 4266: $result = $builder->from('users')->where('id', '=', 1)->selectRaw('?', ['ignore'])->update(['users.email' => 'foo', 'name' => 'bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4257: public function testUpdateMethodWithoutJoinsOnPostgres() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4275: public function testUpdateMethodWithJoinsOnPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 4275: public function testUpdateMethodWithJoinsOnPostgres() - line 4277: $builder = $this->getPostgresBuilder(); - line 4278: $builder->getConnection()->shouldReceive('update')->once()->with('update "users" set "email" = ?, "name" = ? where "ctid" in (select "users"."ctid" from "users" inner join "orders" on "users"."id" = "orders"."user_id" where "users"."id" = ?)', ['foo', 'bar', 1])->andReturn(1); - line 4279: $result = $builder->from('users')->join('orders', 'users.id', '=', 'orders.user_id')->where('users.id', '=', 1)->update(['email' => 'foo', 'name' => 'bar']); - line 4282: $builder = $this->getPostgresBuilder(); - line 4283: $builder->getConnection()->shouldReceive('update')->once()->with('update "users" set "email" = ?, "name" = ? where "ctid" in (select "users"."ctid" from "users" inner join "orders" on "users"."id" = "orders"."user_id" and "users"."id" = ?)', ['foo', 'bar', 1])->andReturn(1); - line 4284: $result = $builder->from('users')->join('orders', function ($join) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4275: public function testUpdateMethodWithJoinsOnPostgres() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4301: public function testUpdateFromMethodWithJoinsOnPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 4301: public function testUpdateFromMethodWithJoinsOnPostgres() - line 4303: $builder = $this->getPostgresBuilder(); - line 4304: $builder->getConnection()->shouldReceive('update')->once()->with('update "users" set "email" = ?, "name" = ? from "orders" where "users"."id" = ? and "users"."id" = "orders"."user_id"', ['foo', 'bar', 1])->andReturn(1); - line 4305: $result = $builder->from('users')->join('orders', 'users.id', '=', 'orders.user_id')->where('users.id', '=', 1)->updateFrom(['email' => 'foo', 'name' => 'bar']); - line 4308: $builder = $this->getPostgresBuilder(); - line 4309: $builder->getConnection()->shouldReceive('update')->once()->with('update "users" set "email" = ?, "name" = ? from "orders" where "users"."id" = "orders"."user_id" and "users"."id" = ?', ['foo', 'bar', 1])->andReturn(1); - line 4310: $result = $builder->from('users')->join('orders', function ($join) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4301: public function testUpdateFromMethodWithJoinsOnPostgres() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4327: public function testUpdateMethodRespectsRaw() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4327: public function testUpdateMethodRespectsRaw() - line 4329: $builder = $this->getBuilder(); - line 4330: $builder->getConnection()->shouldReceive('update')->once()->with('update "users" set "email" = foo, "name" = ? where "id" = ?', ['bar', 1])->andReturn(1); - line 4331: $result = $builder->from('users')->where('id', '=', 1)->update(['email' => new Raw('foo'), 'name' => 'bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4327: public function testUpdateMethodRespectsRaw() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4335: public function testUpdateMethodWorksWithQueryAsValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4335: public function testUpdateMethodWorksWithQueryAsValue() - line 4337: $builder = $this->getBuilder(); - line 4338: $builder->getConnection()->shouldReceive('update')->once()->with('update "users" set "credits" = (select sum(credits) from "transactions" where "transactions"."user_id" = "users"."id" and "type" = ?) where "id" = ?', ['foo', 1])->andReturn(1); - line 4339: $result = $builder->from('users')->where('id', '=', 1)->update(['credits' => $this->getBuilder()->from('transactions')->selectRaw('sum(credits)')->whereColumn('transactions.user_id', 'users.id')->where('type', 'foo')]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4335: public function testUpdateMethodWorksWithQueryAsValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4344: public function testUpdateOrInsertMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4344: public function testUpdateOrInsertMethod() - line 4346: $builder = m::mock(Builder::class.'[where,exists,insert]', [ - line 4356: $this->assertTrue($builder->updateOrInsert(['email' => 'foo'], ['name' => 'bar'])); - line 4366: $builder->shouldReceive('take')->andReturnSelf(); - line 4369: $this->assertTrue($builder->updateOrInsert(['email' => 'foo'], ['name' => 'bar'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 4347: $connection = m::mock(Connection::class), - line 4349: m::mock(Processor::class), - line 4359: $connection = m::mock(Connection::class), - line 4361: m::mock(Processor::class), - Test @ line 4372: public function testUpdateOrInsertMethodWorksWithEmptyUpdateValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4372: public function testUpdateOrInsertMethodWorksWithEmptyUpdateValues() - line 4375: $connection = m::mock(Connection::class), - line 4383: $this->assertTrue($builder->updateOrInsert(['email' => 'foo'])); - line 4384: $builder->shouldNotHaveReceived('update'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 4375: $connection = m::mock(Connection::class), - line 4377: m::mock(Processor::class), - Test @ line 4387: public function testDeleteMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 21. Evidence: - line 4387: public function testDeleteMethod() - line 4389: $builder = $this->getBuilder(); - line 4390: $builder->getConnection()->shouldReceive('delete')->once()->with('delete from "users" where "email" = ?', ['foo'])->andReturn(1); - line 4391: $result = $builder->from('users')->where('email', '=', 'foo')->delete(); - line 4394: $builder = $this->getBuilder(); - line 4395: $builder->getConnection()->shouldReceive('delete')->once()->with('delete from "users" where "users"."id" = ?', [1])->andReturn(1); - line 4396: $result = $builder->from('users')->delete(1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4387: public function testDeleteMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4425: public function testDeleteWithJoinMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 39. Evidence: - line 4425: public function testDeleteWithJoinMethod() - line 4427: $builder = $this->getSqliteBuilder(); - line 4428: $builder->getConnection()->shouldReceive('delete')->once()->with('delete from "users" where "rowid" in (select "users"."rowid" from "users" inner join "contacts" on "users"."id" = "contacts"."id" where "users"."email" = ? order by "users"."id" asc limit 1)', ['foo'])->andReturn(1); - line 4429: $result = $builder->from('users')->join('contacts', 'users.id', '=', 'contacts.id')->where('users.email', '=', 'foo')->orderBy('users.id')->limit(1)->delete(); - line 4432: $builder = $this->getSqliteBuilder(); - line 4433: $builder->getConnection()->shouldReceive('delete')->once()->with('delete from "users" as "u" where "rowid" in (select "u"."rowid" from "users" as "u" inner join "contacts" as "c" on "u"."id" = "c"."id")', [])->andReturn(1); - line 4434: $result = $builder->from('users as u')->join('contacts as c', 'u.id', '=', 'c.id')->delete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4425: public function testDeleteWithJoinMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4498: public function testTruncateMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 4498: public function testTruncateMethod() - line 4500: $builder = $this->getBuilder(); - line 4501: $connection = $builder->getConnection(); - line 4503: $builder->from('users')->truncate(); - line 4505: $builder = $this->getSQLiteBuilder(); - line 4506: $builder->getConnection()->shouldReceive('getSchemaBuilder->parseSchemaAndTable')->andReturn([null, 'users']); - line 4507: $builder->from('users'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4514: public function testTruncateMethodWithPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 4514: public function testTruncateMethodWithPrefix() - line 4516: $builder = $this->getBuilder(prefix: 'prefix_'); - line 4517: $connection = $builder->getConnection(); - line 4519: $builder->from('users')->truncate(); - line 4521: $builder = $this->getSQLiteBuilder(prefix: 'prefix_'); - line 4522: $builder->getConnection()->shouldReceive('getSchemaBuilder->parseSchemaAndTable')->andReturn([null, 'users']); - line 4523: $builder->from('users'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4530: public function testTruncateMethodWithPrefixAndSchema() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 4530: public function testTruncateMethodWithPrefixAndSchema() - line 4532: $builder = $this->getBuilder(prefix: 'prefix_'); - line 4533: $connection = $builder->getConnection(); - line 4535: $builder->from('my_schema.users')->truncate(); - line 4537: $builder = $this->getSQLiteBuilder(prefix: 'prefix_'); - line 4538: $builder->getConnection()->shouldReceive('getSchemaBuilder->parseSchemaAndTable')->andReturn(['my_schema', 'users']); - line 4539: $builder->from('my_schema.users'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4546: public function testPreserveAddsClosureToArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 4546: public function testPreserveAddsClosureToArray() - line 4548: $builder = $this->getBuilder(); - line 4549: $builder->beforeQuery(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4555: public function testApplyPreserveCleansArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4555: public function testApplyPreserveCleansArray() - line 4557: $builder = $this->getBuilder(); - line 4558: $builder->beforeQuery(function () { - line 4561: $builder->applyBeforeQueryCallbacks(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4565: public function testPreservedAreAppliedByToSql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4565: public function testPreservedAreAppliedByToSql() - line 4567: $builder = $this->getBuilder(); - line 4568: $builder->beforeQuery(function ($builder) { - line 4571: $this->assertSame('select * where "foo" = ?', $builder->toSql()); - line 4572: $this->assertEquals(['bar'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4575: public function testPreservedAreAppliedByInsert() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4575: public function testPreservedAreAppliedByInsert() - line 4577: $builder = $this->getBuilder(); - line 4578: $builder->getConnection()->shouldReceive('insert')->once()->with('insert into "users" ("email") values (?)', ['foo']); - line 4579: $builder->beforeQuery(function ($builder) { - line 4582: $builder->insert(['email' => 'foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4575: public function testPreservedAreAppliedByInsert() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4585: public function testPreservedAreAppliedByInsertGetId() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4585: public function testPreservedAreAppliedByInsertGetId() - line 4588: $builder = $this->getBuilder(); - line 4589: $builder->getProcessor()->shouldReceive('processInsertGetId')->once()->with($builder, 'insert into "users" ("email") values (?)', ['foo'], 'id'); - line 4590: $builder->beforeQuery(function ($builder) { - line 4593: $builder->insertGetId(['email' => 'foo'], 'id'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4585: public function testPreservedAreAppliedByInsertGetId() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4596: public function testPreservedAreAppliedByInsertUsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4596: public function testPreservedAreAppliedByInsertUsing() - line 4598: $builder = $this->getBuilder(); - line 4599: $builder->getConnection()->shouldReceive('affectingStatement')->once()->with('insert into "users" ("email") select *', []); - line 4600: $builder->beforeQuery(function ($builder) { - line 4603: $builder->insertUsing(['email'], $this->getBuilder()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4596: public function testPreservedAreAppliedByInsertUsing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4606: public function testPreservedAreAppliedByUpsert() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 4606: public function testPreservedAreAppliedByUpsert() - line 4608: $builder = $this->getMySqlBuilder(); - line 4609: $builder->getConnection() - line 4612: $builder->beforeQuery(function ($builder) { - line 4615: $builder->upsert(['email' => 'foo'], 'id'); - line 4617: $builder = $this->getMySqlBuilder(); - line 4618: $builder->getConnection() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4606: public function testPreservedAreAppliedByUpsert() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4627: public function testPreservedAreAppliedByUpdate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4627: public function testPreservedAreAppliedByUpdate() - line 4629: $builder = $this->getBuilder(); - line 4630: $builder->getConnection()->shouldReceive('update')->once()->with('update "users" set "email" = ? where "id" = ?', ['foo', 1]); - line 4631: $builder->from('users')->beforeQuery(function ($builder) { - line 4634: $builder->update(['email' => 'foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4627: public function testPreservedAreAppliedByUpdate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4637: public function testPreservedAreAppliedByDelete() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4637: public function testPreservedAreAppliedByDelete() - line 4639: $builder = $this->getBuilder(); - line 4640: $builder->getConnection()->shouldReceive('delete')->once()->with('delete from "users"', []); - line 4641: $builder->beforeQuery(function ($builder) { - line 4644: $builder->delete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4637: public function testPreservedAreAppliedByDelete() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4647: public function testPreservedAreAppliedByTruncate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4647: public function testPreservedAreAppliedByTruncate() - line 4649: $builder = $this->getBuilder(); - line 4650: $builder->getConnection()->shouldReceive('statement')->once()->with('truncate table "users"', []); - line 4651: $builder->beforeQuery(function ($builder) { - line 4654: $builder->truncate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4647: public function testPreservedAreAppliedByTruncate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4657: public function testPreservedAreAppliedByExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4657: public function testPreservedAreAppliedByExists() - line 4659: $builder = $this->getBuilder(); - line 4660: $builder->getConnection()->shouldReceive('select')->once()->with('select exists(select * from "users") as "exists"', [], true); - line 4661: $builder->beforeQuery(function ($builder) { - line 4664: $builder->exists(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4657: public function testPreservedAreAppliedByExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4667: public function testPostgresInsertGetId() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4667: public function testPostgresInsertGetId() - line 4669: $builder = $this->getPostgresBuilder(); - line 4670: $builder->getProcessor()->shouldReceive('processInsertGetId')->once()->with($builder, 'insert into "users" ("email") values (?) returning "id"', ['foo'], 'id')->andReturn(1); - line 4671: $result = $builder->from('users')->insertGetId(['email' => 'foo'], 'id'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4667: public function testPostgresInsertGetId() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4675: public function testMySqlWrapping() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4675: public function testMySqlWrapping() - line 4677: $builder = $this->getMySqlBuilder(); - line 4678: $builder->select('*')->from('users'); - line 4679: $this->assertSame('select * from `users`', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4682: public function testMySqlUpdateWrappingJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4682: public function testMySqlUpdateWrappingJson() - line 4684: $connection = $this->createMock(Connection::class); - line 4689: ->method('update') - line 4697: $builder->from('users')->where('active', '=', 1)->update(['name->first_name' => 'John', 'name->last_name' => 'Doe']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 4684: $connection = $this->createMock(Connection::class); - line 4686: $processor = m::mock(Processor::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4682: public function testMySqlUpdateWrappingJson() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4700: public function testMySqlUpdateWrappingNestedJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4700: public function testMySqlUpdateWrappingNestedJson() - line 4702: $connection = $this->createMock(Connection::class); - line 4707: ->method('update') - line 4715: $builder->from('users')->where('active', '=', 1)->update(['meta->name->first_name' => 'John', 'meta->name->last_name' => 'Doe']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 4702: $connection = $this->createMock(Connection::class); - line 4704: $processor = m::mock(Processor::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4700: public function testMySqlUpdateWrappingNestedJson() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4718: public function testMySqlUpdateWrappingJsonArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4718: public function testMySqlUpdateWrappingJsonArray() - line 4720: $connection = $this->createMock(Connection::class); - line 4725: ->method('update') - line 4737: $builder->from('users')->where('active', 1)->update([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 4720: $connection = $this->createMock(Connection::class); - line 4722: $processor = m::mock(Processor::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4718: public function testMySqlUpdateWrappingJsonArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4745: public function testMySqlUpdateWrappingJsonPathArrayIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4745: public function testMySqlUpdateWrappingJsonPathArrayIndex() - line 4747: $connection = $this->createMock(Connection::class); - line 4752: ->method('update') - line 4762: $builder->from('users')->where('active', 1)->update([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 4747: $connection = $this->createMock(Connection::class); - line 4749: $processor = m::mock(Processor::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4745: public function testMySqlUpdateWrappingJsonPathArrayIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4768: public function testMySqlUpdateWithJsonPreparesBindingsCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 4768: public function testMySqlUpdateWithJsonPreparesBindingsCorrectly() - line 4770: $connection = $this->getConnection(); - line 4781: $builder->from('users')->where('id', '=', 0)->update(['options->enable' => false, 'updated_at' => '2015-05-26 22:02:06']); - line 4790: $builder->from('users')->where('id', '=', 0)->update(['options->size' => 45, 'updated_at' => '2015-05-26 22:02:06']); - line 4792: $builder = $this->getMySqlBuilder(); - line 4793: $builder->getConnection()->shouldReceive('update')->once()->with('update `users` set `options` = json_set(`options`, \'$."size"\', ?)', [null]); - line 4794: $builder->from('users')->update(['options->size' => null]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 4772: $processor = m::mock(Processor::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4768: public function testMySqlUpdateWithJsonPreparesBindingsCorrectly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4801: public function testPostgresUpdateWrappingJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 4801: public function testPostgresUpdateWrappingJson() - line 4803: $builder = $this->getPostgresBuilder(); - line 4804: $builder->getConnection()->shouldReceive('update') - line 4806: $builder->from('users')->update(['users.options->name->first_name' => 'John']); - line 4808: $builder = $this->getPostgresBuilder(); - line 4809: $builder->getConnection()->shouldReceive('update') - line 4811: $builder->from('users')->update(['options->language' => new Raw("'null'")]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4801: public function testPostgresUpdateWrappingJson() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4814: public function testPostgresUpdateWrappingJsonArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4814: public function testPostgresUpdateWrappingJsonArray() - line 4816: $builder = $this->getPostgresBuilder(); - line 4817: $builder->getConnection()->shouldReceive('update') - line 4824: $builder->from('users')->update([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4814: public function testPostgresUpdateWrappingJsonArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4832: public function testPostgresUpdateWrappingJsonPathArrayIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4832: public function testPostgresUpdateWrappingJsonPathArrayIndex() - line 4834: $builder = $this->getPostgresBuilder(); - line 4835: $builder->getConnection()->shouldReceive('update') - line 4841: $builder->from('users')->where('options->[1]->2fa', true)->update([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4832: public function testPostgresUpdateWrappingJsonPathArrayIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4847: public function testSQLiteUpdateWrappingJsonArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4847: public function testSQLiteUpdateWrappingJsonArray() - line 4849: $builder = $this->getSQLiteBuilder(); - line 4851: $builder->getConnection()->shouldReceive('update') - line 4857: $builder->from('users')->update([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4847: public function testSQLiteUpdateWrappingJsonArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4864: public function testSQLiteUpdateWrappingNestedJsonArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4864: public function testSQLiteUpdateWrappingNestedJsonArray() - line 4866: $builder = $this->getSQLiteBuilder(); - line 4867: $builder->getConnection()->shouldReceive('update') - line 4873: $builder->from('users')->update([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4864: public function testSQLiteUpdateWrappingNestedJsonArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4882: public function testSQLiteUpdateWrappingJsonPathArrayIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4882: public function testSQLiteUpdateWrappingJsonPathArrayIndex() - line 4884: $builder = $this->getSQLiteBuilder(); - line 4885: $builder->getConnection()->shouldReceive('update') - line 4891: $builder->from('users')->where('options->[1]->2fa', true)->update([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4882: public function testSQLiteUpdateWrappingJsonPathArrayIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4897: public function testMySqlWrappingJsonWithString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 4897: public function testMySqlWrappingJsonWithString() - line 4899: $builder = $this->getMySqlBuilder(); - line 4900: $builder->select('*')->from('users')->where('items->sku', '=', 'foo-bar'); - line 4901: $this->assertSame('select * from `users` where json_unquote(json_extract(`items`, \'$."sku"\')) = ?', $builder->toSql()); - line 4902: $this->assertCount(1, $builder->getRawBindings()['where']); - line 4903: $this->assertSame('foo-bar', $builder->getRawBindings()['where'][0]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4906: public function testMySqlWrappingJsonWithInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4906: public function testMySqlWrappingJsonWithInteger() - line 4908: $builder = $this->getMySqlBuilder(); - line 4909: $builder->select('*')->from('users')->where('items->price', '=', 1); - line 4910: $this->assertSame('select * from `users` where json_unquote(json_extract(`items`, \'$."price"\')) = ?', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4913: public function testMySqlWrappingJsonWithDouble() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4913: public function testMySqlWrappingJsonWithDouble() - line 4915: $builder = $this->getMySqlBuilder(); - line 4916: $builder->select('*')->from('users')->where('items->price', '=', 1.5); - line 4917: $this->assertSame('select * from `users` where json_unquote(json_extract(`items`, \'$."price"\')) = ?', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4920: public function testMySqlWrappingJsonWithBoolean() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 4920: public function testMySqlWrappingJsonWithBoolean() - line 4922: $builder = $this->getMySqlBuilder(); - line 4923: $builder->select('*')->from('users')->where('items->available', '=', true); - line 4924: $this->assertSame('select * from `users` where json_extract(`items`, \'$."available"\') = true', $builder->toSql()); - line 4926: $builder = $this->getMySqlBuilder(); - line 4927: $builder->select('*')->from('users')->where(new Raw("items->'$.available'"), '=', true); - line 4928: $this->assertSame("select * from `users` where items->'$.available' = true", $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4931: public function testMySqlWrappingJsonWithBooleanAndIntegerThatLooksLikeOne() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4931: public function testMySqlWrappingJsonWithBooleanAndIntegerThatLooksLikeOne() - line 4933: $builder = $this->getMySqlBuilder(); - line 4934: $builder->select('*')->from('users')->where('items->available', '=', true)->where('items->active', '=', false)->where('items->number_available', '=', 0); - line 4935: $this->assertSame('select * from `users` where json_extract(`items`, \'$."available"\') = true and json_extract(`items`, \'$."active"\') = false and json_unquote(json_extract(`items`, \'$."number_available"\')) = ?', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4938: public function testJsonPathEscaping() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 4938: public function testJsonPathEscaping() - line 4944: $builder = $this->getMySqlBuilder(); - line 4945: $builder->select("json->'))#"); - line 4946: $this->assertEquals($expectedWithJsonEscaped, $builder->toSql()); - line 4948: $builder = $this->getMySqlBuilder(); - line 4949: $builder->select("json->\'))#"); - line 4950: $this->assertEquals($expectedWithJsonEscaped, $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4961: public function testMySqlWrappingJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 4961: public function testMySqlWrappingJson() - line 4963: $builder = $this->getMySqlBuilder(); - line 4964: $builder->select('*')->from('users')->whereRaw('items->\'$."price"\' = 1'); - line 4965: $this->assertSame('select * from `users` where items->\'$."price"\' = 1', $builder->toSql()); - line 4967: $builder = $this->getMySqlBuilder(); - line 4968: $builder->select('items->price')->from('users')->where('users.items->price', '=', 1)->orderBy('items->price'); - line 4969: $this->assertSame('select json_unquote(json_extract(`items`, \'$."price"\')) from `users` where json_unquote(json_extract(`users`.`items`, \'$."price"\')) = ? order by json_unquote(json_extract(`items`, \'$."price"\')) asc', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4980: public function testPostgresWrappingJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 4980: public function testPostgresWrappingJson() - line 4982: $builder = $this->getPostgresBuilder(); - line 4983: $builder->select('items->price')->from('users')->where('users.items->price', '=', 1)->orderBy('items->price'); - line 4984: $this->assertSame('select "items"->>\'price\' from "users" where "users"."items"->>\'price\' = ? order by "items"->>\'price\' asc', $builder->toSql()); - line 4986: $builder = $this->getPostgresBuilder(); - line 4987: $builder->select('*')->from('users')->where('items->price->in_usd', '=', 1); - line 4988: $this->assertSame('select * from "users" where "items"->\'price\'->>\'in_usd\' = ?', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5003: public function testSqlServerWrappingJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 5003: public function testSqlServerWrappingJson() - line 5005: $builder = $this->getSqlServerBuilder(); - line 5006: $builder->select('items->price')->from('users')->where('users.items->price', '=', 1)->orderBy('items->price'); - line 5007: $this->assertSame('select json_value([items], \'$."price"\') from [users] where json_value([users].[items], \'$."price"\') = ? order by json_value([items], \'$."price"\') asc', $builder->toSql()); - line 5009: $builder = $this->getSqlServerBuilder(); - line 5010: $builder->select('*')->from('users')->where('items->price->in_usd', '=', 1); - line 5011: $this->assertSame('select * from [users] where json_value([items], \'$."price"."in_usd"\') = ?', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5022: public function testSqliteWrappingJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 5022: public function testSqliteWrappingJson() - line 5024: $builder = $this->getSQLiteBuilder(); - line 5025: $builder->select('items->price')->from('users')->where('users.items->price', '=', 1)->orderBy('items->price'); - line 5026: $this->assertSame('select json_extract("items", \'$."price"\') from "users" where json_extract("users"."items", \'$."price"\') = ? order by json_extract("items", \'$."price"\') asc', $builder->toSql()); - line 5028: $builder = $this->getSQLiteBuilder(); - line 5029: $builder->select('*')->from('users')->where('items->price->in_usd', '=', 1); - line 5030: $this->assertSame('select * from "users" where json_extract("items", \'$."price"."in_usd"\') = ?', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5041: public function testSQLiteOrderBy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 5041: public function testSQLiteOrderBy() - line 5043: $builder = $this->getSQLiteBuilder(); - line 5044: $builder->select('*')->from('users')->orderBy('email', 'desc'); - line 5045: $this->assertSame('select * from "users" order by "email" desc', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5048: public function testSqlServerLimitsAndOffsets() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 26. Evidence: - line 5048: public function testSqlServerLimitsAndOffsets() - line 5050: $builder = $this->getSqlServerBuilder(); - line 5051: $builder->select('*')->from('users')->limit(10); - line 5052: $this->assertSame('select top 10 * from [users]', $builder->toSql()); - line 5054: $builder = $this->getSqlServerBuilder(); - line 5055: $builder->select('*')->from('users')->offset(10)->orderBy('email', 'desc'); - line 5056: $this->assertSame('select * from [users] order by [email] desc offset 10 rows', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5087: public function testMySqlSoundsLikeOperator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5087: public function testMySqlSoundsLikeOperator() - line 5089: $builder = $this->getMySqlBuilder(); - line 5090: $builder->select('*')->from('users')->where('name', 'sounds like', 'John Doe'); - line 5091: $this->assertSame('select * from `users` where `name` sounds like ?', $builder->toSql()); - line 5092: $this->assertEquals(['John Doe'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5095: public function testBitwiseOperators() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 24. Evidence: - line 5095: public function testBitwiseOperators() - line 5097: $builder = $this->getBuilder(); - line 5098: $builder->select('*')->from('users')->where('bar', '&', 1); - line 5099: $this->assertSame('select * from "users" where "bar" & ?', $builder->toSql()); - line 5101: $builder = $this->getPostgresBuilder(); - line 5102: $builder->select('*')->from('users')->where('bar', '#', 1); - line 5103: $this->assertSame('select * from "users" where ("bar" # ?)::bool', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5130: public function testMergeWheresCanMergeWheresAndBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 5130: public function testMergeWheresCanMergeWheresAndBindings() - line 5132: $builder = $this->getBuilder(); - line 5134: $builder->mergeWheres(['wheres'], [12 => 'foo', 13 => 'bar']); - line 5136: $this->assertEquals(['foo', 'bar'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5139: public function testPrepareValueAndOperator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5139: public function testPrepareValueAndOperator() - line 5141: $builder = $this->getBuilder(); - line 5142: [$value, $operator] = $builder->prepareValueAndOperator('>', '20'); - line 5146: $builder = $this->getBuilder(); - line 5147: [$value, $operator] = $builder->prepareValueAndOperator('>', '20', true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5139: public function testPrepareValueAndOperator() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5152: public function testPrepareValueAndOperatorExpectException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5152: public function testPrepareValueAndOperatorExpectException() - line 5154: $this->expectException(InvalidArgumentException::class); - line 5155: $this->expectExceptionMessage('Illegal operator and value combination.'); - line 5157: $builder = $this->getBuilder(); - line 5158: $builder->prepareValueAndOperator(null, 'like'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5152: public function testPrepareValueAndOperatorExpectException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5161: public function testProvidingNullWithOperatorsBuildsCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 5161: public function testProvidingNullWithOperatorsBuildsCorrectly() - line 5163: $builder = $this->getBuilder(); - line 5164: $builder->select('*')->from('users')->where('foo', null); - line 5165: $this->assertSame('select * from "users" where "foo" is null', $builder->toSql()); - line 5167: $builder = $this->getBuilder(); - line 5168: $builder->select('*')->from('users')->where('foo', '=', null); - line 5169: $this->assertSame('select * from "users" where "foo" is null', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5184: public function testDynamicWhere() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 5184: public function testDynamicWhere() - line 5188: $builder = m::mock(Builder::class)->makePartial(); - line 5190: $builder->shouldReceive('where')->with('foo_bar', '=', $parameters[0], 'and')->once()->andReturnSelf(); - line 5191: $builder->shouldReceive('where')->with('baz', '=', $parameters[1], 'and')->once()->andReturnSelf(); - line 5192: $builder->shouldReceive('where')->with('qux', '=', $parameters[2], 'or')->once()->andReturnSelf(); - line 5194: $this->assertEquals($builder, $builder->dynamicWhere($method, $parameters)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 5188: $builder = m::mock(Builder::class)->makePartial(); - Test @ line 5197: public function testDynamicWhereIsNotGreedy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 5197: public function testDynamicWhereIsNotGreedy() - line 5201: $builder = m::mock(Builder::class)->makePartial(); - line 5203: $builder->shouldReceive('where')->with('ios_version', '=', '6.1', 'and')->once()->andReturnSelf(); - line 5204: $builder->shouldReceive('where')->with('android_version', '=', '4.2', 'and')->once()->andReturnSelf(); - line 5205: $builder->shouldReceive('where')->with('orientation', '=', 'Vertical', 'or')->once()->andReturnSelf(); - line 5207: $builder->dynamicWhere($method, $parameters); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 5201: $builder = m::mock(Builder::class)->makePartial(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5197: public function testDynamicWhereIsNotGreedy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5210: public function testCallTriggersDynamicWhere() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 5210: public function testCallTriggersDynamicWhere() - line 5212: $builder = $this->getBuilder(); - line 5214: $this->assertEquals($builder, $builder->whereFooAndBar('baz', 'qux')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5218: public function testBuilderThrowsExpectedExceptionWithUndefinedMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 5218: public function testBuilderThrowsExpectedExceptionWithUndefinedMethod() - line 5220: $this->expectException(BadMethodCallException::class); - line 5222: $builder = $this->getBuilder(); - line 5223: $builder->getConnection()->shouldReceive('select'); - line 5224: $builder->getProcessor()->shouldReceive('processSelect')->andReturn([]); - line 5226: $builder->noValidMethodHere(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5218: public function testBuilderThrowsExpectedExceptionWithUndefinedMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5229: public function testMySqlLock() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 5229: public function testMySqlLock() - line 5231: $builder = $this->getMySqlBuilder(); - line 5232: $builder->select('*')->from('foo')->where('bar', '=', 'baz')->lock(); - line 5233: $this->assertSame('select * from `foo` where `bar` = ? for update', $builder->toSql()); - line 5234: $this->assertEquals(['baz'], $builder->getBindings()); - line 5236: $builder = $this->getMySqlBuilder(); - line 5237: $builder->select('*')->from('foo')->where('bar', '=', 'baz')->lock(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5247: public function testPostgresLock() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 5247: public function testPostgresLock() - line 5249: $builder = $this->getPostgresBuilder(); - line 5250: $builder->select('*')->from('foo')->where('bar', '=', 'baz')->lock(); - line 5251: $this->assertSame('select * from "foo" where "bar" = ? for update', $builder->toSql()); - line 5252: $this->assertEquals(['baz'], $builder->getBindings()); - line 5254: $builder = $this->getPostgresBuilder(); - line 5255: $builder->select('*')->from('foo')->where('bar', '=', 'baz')->lock(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5265: public function testSqlServerLock() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 5265: public function testSqlServerLock() - line 5267: $builder = $this->getSqlServerBuilder(); - line 5268: $builder->select('*')->from('foo')->where('bar', '=', 'baz')->lock(); - line 5269: $this->assertSame('select * from [foo] with(rowlock,updlock,holdlock) where [bar] = ?', $builder->toSql()); - line 5270: $this->assertEquals(['baz'], $builder->getBindings()); - line 5272: $builder = $this->getSqlServerBuilder(); - line 5273: $builder->select('*')->from('foo')->where('bar', '=', 'baz')->lock(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5283: public function testSelectWithLockUsesWritePdo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 5283: public function testSelectWithLockUsesWritePdo() - line 5285: $builder = $this->getMySqlBuilderWithProcessor(); - line 5286: $builder->getConnection()->shouldReceive('select')->once() - line 5288: $builder->select('*')->from('foo')->where('bar', '=', 'baz')->lock()->get(); - line 5290: $builder = $this->getMySqlBuilderWithProcessor(); - line 5291: $builder->getConnection()->shouldReceive('select')->once() - line 5293: $builder->select('*')->from('foo')->where('bar', '=', 'baz')->lock(false)->get(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5283: public function testSelectWithLockUsesWritePdo() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5296: public function testBindingOrder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 5296: public function testBindingOrder() - line 5301: $builder = $this->getBuilder(); - line 5302: $builder->select('*')->from('users')->join('othertable', function ($join) { - line 5305: $this->assertEquals($expectedSql, $builder->toSql()); - line 5306: $this->assertEquals($expectedBindings, $builder->getBindings()); - line 5309: $builder = $this->getBuilder(); - line 5310: $builder->select('*')->from('users')->orderByRaw('match ("foo") against(?)', ['bar'])->having('population', '>', 3)->groupBy('city')->where('registered', 1)->join('othertable', function ($join) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5317: public function testAddBindingWithArrayMergesBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5317: public function testAddBindingWithArrayMergesBindings() - line 5319: $builder = $this->getBuilder(); - line 5320: $builder->addBinding(['foo', 'bar']); - line 5321: $builder->addBinding(['baz']); - line 5322: $this->assertEquals(['foo', 'bar', 'baz'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5325: public function testAddBindingWithArrayMergesBindingsInCorrectOrder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5325: public function testAddBindingWithArrayMergesBindingsInCorrectOrder() - line 5327: $builder = $this->getBuilder(); - line 5328: $builder->addBinding(['bar', 'baz'], 'having'); - line 5329: $builder->addBinding(['foo'], 'where'); - line 5330: $this->assertEquals(['foo', 'bar', 'baz'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5333: public function testAddBindingWithEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5333: public function testAddBindingWithEnum() - line 5335: $builder = $this->getBuilder(); - line 5336: $builder->addBinding(IntegerStatus::done); - line 5337: $builder->addBinding([NonBackedStatus::done]); - line 5338: $this->assertEquals([2, 'done'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5341: public function testMergeBuilders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 5341: public function testMergeBuilders() - line 5343: $builder = $this->getBuilder(); - line 5344: $builder->addBinding(['foo', 'bar']); - line 5345: $otherBuilder = $this->getBuilder(); - line 5346: $otherBuilder->addBinding(['baz']); - line 5347: $builder->mergeBindings($otherBuilder); - line 5348: $this->assertEquals(['foo', 'bar', 'baz'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5351: public function testMergeBuildersBindingOrder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 5351: public function testMergeBuildersBindingOrder() - line 5353: $builder = $this->getBuilder(); - line 5354: $builder->addBinding('foo', 'where'); - line 5355: $builder->addBinding('baz', 'having'); - line 5356: $otherBuilder = $this->getBuilder(); - line 5357: $otherBuilder->addBinding('bar', 'where'); - line 5358: $builder->mergeBindings($otherBuilder); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5362: public function testSubSelect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 5362: public function testSubSelect() - line 5367: $builder = $this->getPostgresBuilder(); - line 5368: $builder->from('one')->select(['foo', 'bar'])->where('key', '=', 'val'); - line 5369: $builder->selectSub(function ($query) { - line 5372: $this->assertEquals($expectedSql, $builder->toSql()); - line 5373: $this->assertEquals($expectedBindings, $builder->getBindings()); - line 5375: $builder = $this->getPostgresBuilder(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5388: public function testSubSelectResetBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 5388: public function testSubSelectResetBindings() - line 5390: $builder = $this->getPostgresBuilder(); - line 5391: $builder->from('one')->selectSub(function ($query) { - line 5395: $this->assertSame('select (select "baz" from "two" where "subkey" = ?) as "sub" from "one"', $builder->toSql()); - line 5396: $this->assertEquals(['subval'], $builder->getBindings()); - line 5398: $builder->select('*'); - line 5400: $this->assertSame('select * from "one"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5404: public function testSqlServerWhereDate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5404: public function testSqlServerWhereDate() - line 5406: $builder = $this->getSqlServerBuilder(); - line 5407: $builder->select('*')->from('users')->whereDate('created_at', '=', '2015-09-23'); - line 5408: $this->assertSame('select * from [users] where cast([created_at] as date) = ?', $builder->toSql()); - line 5409: $this->assertEquals([0 => '2015-09-23'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5412: public function testUppercaseLeadingBooleansAreRemoved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 5412: public function testUppercaseLeadingBooleansAreRemoved() - line 5414: $builder = $this->getBuilder(); - line 5415: $builder->select('*')->from('users')->where('name', '=', 'Taylor', 'AND'); - line 5416: $this->assertSame('select * from "users" where "name" = ?', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5419: public function testLowercaseLeadingBooleansAreRemoved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 5419: public function testLowercaseLeadingBooleansAreRemoved() - line 5421: $builder = $this->getBuilder(); - line 5422: $builder->select('*')->from('users')->where('name', '=', 'Taylor', 'and'); - line 5423: $this->assertSame('select * from "users" where "name" = ?', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5426: public function testCaseInsensitiveLeadingBooleansAreRemoved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 5426: public function testCaseInsensitiveLeadingBooleansAreRemoved() - line 5428: $builder = $this->getBuilder(); - line 5429: $builder->select('*')->from('users')->where('name', '=', 'Taylor', 'And'); - line 5430: $this->assertSame('select * from "users" where "name" = ?', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5433: public function testTableValuedFunctionAsTableInSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 5433: public function testTableValuedFunctionAsTableInSqlServer() - line 5435: $builder = $this->getSqlServerBuilder(); - line 5436: $builder->select('*')->from('users()'); - line 5437: $this->assertSame('select * from [users]()', $builder->toSql()); - line 5439: $builder = $this->getSqlServerBuilder(); - line 5440: $builder->select('*')->from('users(1,2)'); - line 5441: $this->assertSame('select * from [users](1,2)', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5444: public function testChunkWithLastChunkComplete() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 5444: public function testChunkWithLastChunkComplete() - line 5446: $builder = $this->getMockQueryBuilder(); - line 5453: $builder->shouldReceive('getOffset')->once()->andReturnNull(); - line 5454: $builder->shouldReceive('getLimit')->once()->andReturnNull(); - line 5455: $builder->shouldReceive('offset')->once()->with(0)->andReturnSelf(); - line 5456: $builder->shouldReceive('offset')->once()->with(2)->andReturnSelf(); - line 5457: $builder->shouldReceive('offset')->once()->with(4)->andReturnSelf(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 5461: $callbackAssertor = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5444: public function testChunkWithLastChunkComplete() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5471: public function testChunkWithLastChunkPartial() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 5471: public function testChunkWithLastChunkPartial() - line 5473: $builder = $this->getMockQueryBuilder(); - line 5479: $builder->shouldReceive('getOffset')->once()->andReturnNull(); - line 5480: $builder->shouldReceive('getLimit')->once()->andReturnNull(); - line 5481: $builder->shouldReceive('offset')->once()->with(0)->andReturnSelf(); - line 5482: $builder->shouldReceive('offset')->once()->with(2)->andReturnSelf(); - line 5483: $builder->shouldReceive('limit')->twice()->with(2)->andReturnSelf(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 5486: $callbackAssertor = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5471: public function testChunkWithLastChunkPartial() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5495: public function testChunkCanBeStoppedByReturningFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 5495: public function testChunkCanBeStoppedByReturningFalse() - line 5497: $builder = $this->getMockQueryBuilder(); - line 5502: $builder->shouldReceive('getOffset')->once()->andReturnNull(); - line 5503: $builder->shouldReceive('getLimit')->once()->andReturnNull(); - line 5504: $builder->shouldReceive('offset')->once()->with(0)->andReturnSelf(); - line 5505: $builder->shouldReceive('limit')->once()->with(2)->andReturnSelf(); - line 5510: $callbackAssertor->shouldReceive('doSomething')->never()->with($chunk2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 5508: $callbackAssertor = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5495: public function testChunkCanBeStoppedByReturningFalse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5519: public function testChunkWithCountZero() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 5519: public function testChunkWithCountZero() - line 5521: $builder = $this->getMockQueryBuilder(); - line 5524: $builder->shouldReceive('getOffset')->once()->andReturnNull(); - line 5525: $builder->shouldReceive('getLimit')->once()->andReturnNull(); - line 5526: $builder->shouldReceive('offset')->never(); - line 5527: $builder->shouldReceive('limit')->never(); - line 5528: $builder->shouldReceive('get')->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5519: public function testChunkWithCountZero() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5535: public function testChunkByIdOnArrays() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 5535: public function testChunkByIdOnArrays() - line 5537: $builder = $this->getMockQueryBuilder(); - line 5543: $builder->shouldReceive('forPageAfterId')->once()->with(2, 0, 'someIdField')->andReturnSelf(); - line 5544: $builder->shouldReceive('forPageAfterId')->once()->with(2, 2, 'someIdField')->andReturnSelf(); - line 5545: $builder->shouldReceive('forPageAfterId')->once()->with(2, 11, 'someIdField')->andReturnSelf(); - line 5551: $callbackAssertor->shouldReceive('doSomething')->never()->with($chunk3); - line 5553: $builder->chunkById(2, function ($results) use ($callbackAssertor) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 5548: $callbackAssertor = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5535: public function testChunkByIdOnArrays() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5558: public function testChunkPaginatesUsingIdWithLastChunkComplete() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 5558: public function testChunkPaginatesUsingIdWithLastChunkComplete() - line 5560: $builder = $this->getMockQueryBuilder(); - line 5566: $builder->shouldReceive('forPageAfterId')->once()->with(2, 0, 'someIdField')->andReturnSelf(); - line 5567: $builder->shouldReceive('forPageAfterId')->once()->with(2, 2, 'someIdField')->andReturnSelf(); - line 5568: $builder->shouldReceive('forPageAfterId')->once()->with(2, 11, 'someIdField')->andReturnSelf(); - line 5574: $callbackAssertor->shouldReceive('doSomething')->never()->with($chunk3); - line 5576: $builder->chunkById(2, function ($results) use ($callbackAssertor) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 5571: $callbackAssertor = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5558: public function testChunkPaginatesUsingIdWithLastChunkComplete() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5581: public function testChunkPaginatesUsingIdWithLastChunkPartial() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5581: public function testChunkPaginatesUsingIdWithLastChunkPartial() - line 5583: $builder = $this->getMockQueryBuilder(); - line 5588: $builder->shouldReceive('forPageAfterId')->once()->with(2, 0, 'someIdField')->andReturnSelf(); - line 5589: $builder->shouldReceive('forPageAfterId')->once()->with(2, 2, 'someIdField')->andReturnSelf(); - line 5596: $builder->chunkById(2, function ($results) use ($callbackAssertor) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 5592: $callbackAssertor = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5581: public function testChunkPaginatesUsingIdWithLastChunkPartial() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5601: public function testChunkPaginatesUsingIdWithCountZero() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5601: public function testChunkPaginatesUsingIdWithCountZero() - line 5603: $builder = $this->getMockQueryBuilder(); - line 5606: $builder->shouldReceive('forPageAfterId')->never(); - line 5607: $builder->shouldReceive('get')->never(); - line 5609: $builder->chunkById(0, function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5601: public function testChunkPaginatesUsingIdWithCountZero() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5614: public function testChunkPaginatesUsingIdWithAlias() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 5614: public function testChunkPaginatesUsingIdWithAlias() - line 5616: $builder = $this->getMockQueryBuilder(); - line 5621: $builder->shouldReceive('forPageAfterId')->once()->with(2, 0, 'table.id')->andReturnSelf(); - line 5622: $builder->shouldReceive('forPageAfterId')->once()->with(2, 10, 'table.id')->andReturnSelf(); - line 5627: $callbackAssertor->shouldReceive('doSomething')->never()->with($chunk2); - line 5629: $builder->chunkById(2, function ($results) use ($callbackAssertor) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 5625: $callbackAssertor = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5614: public function testChunkPaginatesUsingIdWithAlias() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5634: public function testChunkPaginatesUsingIdDesc() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 5634: public function testChunkPaginatesUsingIdDesc() - line 5636: $builder = $this->getMockQueryBuilder(); - line 5641: $builder->shouldReceive('forPageBeforeId')->once()->with(2, 0, 'someIdField')->andReturnSelf(); - line 5642: $builder->shouldReceive('forPageBeforeId')->once()->with(2, 1, 'someIdField')->andReturnSelf(); - line 5647: $callbackAssertor->shouldReceive('doSomething')->never()->with($chunk2); - line 5649: $builder->chunkByIdDesc(2, function ($results) use ($callbackAssertor) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 5645: $callbackAssertor = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5634: public function testChunkPaginatesUsingIdDesc() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5654: public function testPaginate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 5654: public function testPaginate() - line 5660: $builder = $this->getMockQueryBuilder(); - line 5666: $builder->shouldReceive('forPage')->once()->with($page, $perPage)->andReturnSelf(); - line 5673: $result = $builder->paginate($perPage, $columns, $pageName, $page); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5654: public function testPaginate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5681: public function testPaginateWithDefaultArguments() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 5681: public function testPaginateWithDefaultArguments() - line 5686: $builder = $this->getMockQueryBuilder(); - line 5692: $builder->shouldReceive('forPage')->once()->with($page, $perPage)->andReturnSelf(); - line 5703: $result = $builder->paginate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5681: public function testPaginateWithDefaultArguments() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5711: public function testPaginateWhenNoResults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5711: public function testPaginateWhenNoResults() - line 5716: $builder = $this->getMockQueryBuilder(); - line 5722: $builder->shouldNotReceive('forPage'); - line 5723: $builder->shouldNotReceive('get'); - line 5733: $result = $builder->paginate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5711: public function testPaginateWhenNoResults() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5741: public function testPaginateWithSpecificColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 5741: public function testPaginateWithSpecificColumns() - line 5747: $builder = $this->getMockQueryBuilder(); - line 5753: $builder->shouldReceive('forPage')->once()->with($page, $perPage)->andReturnSelf(); - line 5760: $result = $builder->paginate($perPage, $columns, $pageName, $page); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5741: public function testPaginateWithSpecificColumns() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5768: public function testPaginateWithTotalOverride() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 5768: public function testPaginateWithTotalOverride() - line 5774: $builder = $this->getMockQueryBuilder(); - line 5779: $builder->shouldReceive('getCountForPagination')->never(); - line 5780: $builder->shouldReceive('forPage')->once()->with($page, $perPage)->andReturnSelf(); - line 5787: $result = $builder->paginate($perPage, $columns, $pageName, $page, 10); - line 5789: $this->assertEquals(10, $result->total()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5792: public function testCursorPaginate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 5792: public function testCursorPaginate() - line 5798: $builder = $this->getMockQueryBuilder(); - line 5799: $builder->from('foobar')->orderBy('test'); - line 5800: $builder->shouldReceive('newQuery')->andReturnUsing(function () use ($builder) { - line 5804: $path = 'http://foo.bar?cursor='.$cursor->encode(); - line 5808: $builder->shouldReceive('get')->once()->andReturnUsing(function () use ($builder, $results) { - line 5821: $result = $builder->cursorPaginate($perPage, $columns, $cursorName, $cursor); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5830: public function testCursorPaginateMultipleOrderColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 5830: public function testCursorPaginateMultipleOrderColumns() - line 5836: $builder = $this->getMockQueryBuilder(); - line 5837: $builder->from('foobar')->orderBy('test')->orderBy('another'); - line 5838: $builder->shouldReceive('newQuery')->andReturnUsing(function () use ($builder) { - line 5842: $path = 'http://foo.bar?cursor='.$cursor->encode(); - line 5846: $builder->shouldReceive('get')->once()->andReturnUsing(function () use ($builder, $results) { - line 5860: $result = $builder->cursorPaginate($perPage, $columns, $cursorName, $cursor); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5869: public function testCursorPaginateWithDefaultArguments() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 5869: public function testCursorPaginateWithDefaultArguments() - line 5874: $builder = $this->getMockQueryBuilder(); - line 5875: $builder->from('foobar')->orderBy('test'); - line 5876: $builder->shouldReceive('newQuery')->andReturnUsing(function () use ($builder) { - line 5880: $path = 'http://foo.bar?cursor='.$cursor->encode(); - line 5884: $builder->shouldReceive('get')->once()->andReturnUsing(function () use ($builder, $results) { - line 5901: $result = $builder->cursorPaginate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5910: public function testCursorPaginateWhenNoResults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 5910: public function testCursorPaginateWhenNoResults() - line 5914: $builder = $this->getMockQueryBuilder()->orderBy('test'); - line 5929: $result = $builder->cursorPaginate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5910: public function testCursorPaginateWhenNoResults() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5938: public function testCursorPaginateWithSpecificColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 5938: public function testCursorPaginateWithSpecificColumns() - line 5944: $builder = $this->getMockQueryBuilder(); - line 5945: $builder->from('foobar')->orderBy('id'); - line 5946: $builder->shouldReceive('newQuery')->andReturnUsing(function () use ($builder) { - line 5954: $builder->shouldReceive('get')->once()->andReturnUsing(function () use ($builder, $results) { - line 5967: $result = $builder->cursorPaginate($perPage, $columns, $cursorName, $cursor); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5976: public function testCursorPaginateWithMixedOrders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 5976: public function testCursorPaginateWithMixedOrders() - line 5982: $builder = $this->getMockQueryBuilder(); - line 5983: $builder->from('foobar')->orderBy('foo')->orderByDesc('bar')->orderBy('baz'); - line 5984: $builder->shouldReceive('newQuery')->andReturnUsing(function () use ($builder) { - line 5988: $path = 'http://foo.bar?cursor='.$cursor->encode(); - line 5992: $builder->shouldReceive('get')->once()->andReturnUsing(function () use ($builder, $results) { - line 6006: $result = $builder->cursorPaginate($perPage, $columns, $cursorName, $cursor); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6015: public function testCursorPaginateWithDynamicColumnInSelectRaw() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 6015: public function testCursorPaginateWithDynamicColumnInSelectRaw() - line 6020: $builder = $this->getMockQueryBuilder(); - line 6021: $builder->from('foobar')->select('*')->selectRaw('(CONCAT(firstname, \' \', lastname)) as test')->orderBy('test'); - line 6022: $builder->shouldReceive('newQuery')->andReturnUsing(function () use ($builder) { - line 6026: $path = 'http://foo.bar?cursor='.$cursor->encode(); - line 6030: $builder->shouldReceive('get')->once()->andReturnUsing(function () use ($builder, $results) { - line 6047: $result = $builder->cursorPaginate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6056: public function testCursorPaginateWithDynamicColumnWithCastInSelectRaw() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 6056: public function testCursorPaginateWithDynamicColumnWithCastInSelectRaw() - line 6061: $builder = $this->getMockQueryBuilder(); - line 6062: $builder->from('foobar')->select('*')->selectRaw('(CAST(CONCAT(firstname, \' \', lastname) as VARCHAR)) as test')->orderBy('test'); - line 6063: $builder->shouldReceive('newQuery')->andReturnUsing(function () use ($builder) { - line 6067: $path = 'http://foo.bar?cursor='.$cursor->encode(); - line 6071: $builder->shouldReceive('get')->once()->andReturnUsing(function () use ($builder, $results) { - line 6088: $result = $builder->cursorPaginate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6097: public function testCursorPaginateWithDynamicColumnInSelectSub() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 6097: public function testCursorPaginateWithDynamicColumnInSelectSub() - line 6102: $builder = $this->getMockQueryBuilder(); - line 6103: $builder->from('foobar')->select('*')->selectSub('CONCAT(firstname, \' \', lastname)', 'test')->orderBy('test'); - line 6104: $builder->shouldReceive('newQuery')->andReturnUsing(function () use ($builder) { - line 6108: $path = 'http://foo.bar?cursor='.$cursor->encode(); - line 6112: $builder->shouldReceive('get')->once()->andReturnUsing(function () use ($builder, $results) { - line 6129: $result = $builder->cursorPaginate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6138: public function testCursorPaginateWithUnionWheres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 6138: public function testCursorPaginateWithUnionWheres() - line 6140: $ts = now()->toDateTimeString(); - line 6146: $builder = $this->getMockQueryBuilder(); - line 6147: $builder->select('id', 'start_time as created_at')->selectRaw("'video' as type")->from('videos'); - line 6148: $builder->union($this->getBuilder()->select('id', 'created_at')->selectRaw("'news' as type")->from('news')); - line 6149: $builder->orderBy('created_at'); - line 6151: $builder->shouldReceive('newQuery')->andReturnUsing(function () use ($builder) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6185: public function testCursorPaginateWithMultipleUnionsAndMultipleWheres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 6185: public function testCursorPaginateWithMultipleUnionsAndMultipleWheres() - line 6187: $ts = now()->toDateTimeString(); - line 6193: $builder = $this->getMockQueryBuilder(); - line 6194: $builder->select('id', 'start_time as created_at')->selectRaw("'video' as type")->from('videos'); - line 6195: $builder->union($this->getBuilder()->select('id', 'created_at')->selectRaw("'news' as type")->from('news')->where('extra', 'first')); - line 6196: $builder->union($this->getBuilder()->select('id', 'created_at')->selectRaw("'podcast' as type")->from('podcasts')->where('extra', 'second')); - line 6197: $builder->orderBy('created_at'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6234: public function testCursorPaginateWithUnionMultipleWheresMultipleOrders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 6234: public function testCursorPaginateWithUnionMultipleWheresMultipleOrders() - line 6236: $ts = now()->toDateTimeString(); - line 6242: $builder = $this->getMockQueryBuilder(); - line 6243: $builder->select('id', 'start_time as created_at', 'type')->from('videos')->where('extra', 'first'); - line 6244: $builder->union($this->getBuilder()->select('id', 'created_at', 'type')->from('news')->where('extra', 'second')); - line 6245: $builder->union($this->getBuilder()->select('id', 'created_at', 'type')->from('podcasts')->where('extra', 'third')); - line 6246: $builder->orderBy('id')->orderByDesc('created_at')->orderBy('type'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6284: public function testCursorPaginateWithUnionWheresWithRawOrderExpression() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 6284: public function testCursorPaginateWithUnionWheresWithRawOrderExpression() - line 6286: $ts = now()->toDateTimeString(); - line 6292: $builder = $this->getMockQueryBuilder(); - line 6293: $builder->select('id', 'is_published', 'start_time as created_at')->selectRaw("'video' as type")->where('is_published', true)->from('videos'); - line 6294: $builder->union($this->getBuilder()->select('id', 'is_published', 'created_at')->selectRaw("'news' as type")->where('is_published', true)->from('news')); - line 6295: $builder->orderByRaw('case when (id = 3 and type="news" then 0 else 1 end)')->orderBy('created_at'); - line 6297: $builder->shouldReceive('newQuery')->andReturnUsing(function () use ($builder) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6331: public function testCursorPaginateWithUnionWheresReverseOrder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 6331: public function testCursorPaginateWithUnionWheresReverseOrder() - line 6333: $ts = now()->toDateTimeString(); - line 6339: $builder = $this->getMockQueryBuilder(); - line 6340: $builder->select('id', 'start_time as created_at')->selectRaw("'video' as type")->from('videos'); - line 6341: $builder->union($this->getBuilder()->select('id', 'created_at')->selectRaw("'news' as type")->from('news')); - line 6342: $builder->orderBy('created_at'); - line 6344: $builder->shouldReceive('newQuery')->andReturnUsing(function () use ($builder) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6378: public function testCursorPaginateWithUnionWheresMultipleOrders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 6378: public function testCursorPaginateWithUnionWheresMultipleOrders() - line 6380: $ts = now()->toDateTimeString(); - line 6386: $builder = $this->getMockQueryBuilder(); - line 6387: $builder->select('id', 'start_time as created_at')->selectRaw("'video' as type")->from('videos'); - line 6388: $builder->union($this->getBuilder()->select('id', 'created_at')->selectRaw("'news' as type")->from('news')); - line 6389: $builder->orderByDesc('created_at')->orderBy('id'); - line 6391: $builder->shouldReceive('newQuery')->andReturnUsing(function () use ($builder) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6425: public function testCursorPaginateWithUnionWheresAndAliassedOrderColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 6425: public function testCursorPaginateWithUnionWheresAndAliassedOrderColumns() - line 6427: $ts = now()->toDateTimeString(); - line 6433: $builder = $this->getMockQueryBuilder(); - line 6434: $builder->select('id', 'start_time as created_at')->selectRaw("'video' as type")->from('videos'); - line 6435: $builder->union($this->getBuilder()->select('id', 'created_at')->selectRaw("'news' as type")->from('news')); - line 6436: $builder->union($this->getBuilder()->select('id', 'init_at as created_at')->selectRaw("'podcast' as type")->from('podcasts')); - line 6437: $builder->orderBy('created_at'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6474: public function testWhereExpression() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 6474: public function testWhereExpression() - line 6476: $builder = $this->getBuilder(); - line 6477: $builder->select('*')->from('orders')->where( - line 6486: $this->assertSame('select * from "orders" where 1 = 1', $builder->toSql()); - line 6487: $this->assertSame([], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6490: public function testWhereRowValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 6490: public function testWhereRowValues() - line 6492: $builder = $this->getBuilder(); - line 6493: $builder->select('*')->from('orders')->whereRowValues(['last_update', 'order_number'], '<', [1, 2]); - line 6494: $this->assertSame('select * from "orders" where ("last_update", "order_number") < (?, ?)', $builder->toSql()); - line 6496: $builder = $this->getBuilder(); - line 6497: $builder->select('*')->from('orders')->where('company_id', 1)->orWhereRowValues(['last_update', 'order_number'], '<', [1, 2]); - line 6498: $this->assertSame('select * from "orders" where "company_id" = ? or ("last_update", "order_number") < (?, ?)', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6506: public function testWhereRowValuesArityMismatch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 6506: public function testWhereRowValuesArityMismatch() - line 6508: $this->expectException(InvalidArgumentException::class); - line 6509: $this->expectExceptionMessage('The number of columns must match the number of values'); - line 6511: $builder = $this->getBuilder(); - line 6512: $builder->select('*')->from('orders')->whereRowValues(['last_update'], '<', [1, 2]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 6506: public function testWhereRowValuesArityMismatch() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 6515: public function testWhereJsonContainsMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 6515: public function testWhereJsonContainsMySql() - line 6517: $builder = $this->getMySqlBuilder(); - line 6518: $builder->select('*')->from('users')->whereJsonContains('options', ['en']); - line 6519: $this->assertSame('select * from `users` where json_contains(`options`, ?)', $builder->toSql()); - line 6520: $this->assertEquals(['["en"]'], $builder->getBindings()); - line 6522: $builder = $this->getMySqlBuilder(); - line 6523: $builder->select('*')->from('users')->whereJsonContains('users.options->languages', ['en']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6533: public function testWhereJsonOverlapsMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 6533: public function testWhereJsonOverlapsMySql() - line 6535: $builder = $this->getMySqlBuilder(); - line 6536: $builder->select('*')->from('users')->whereJsonOverlaps('options', ['en', 'fr']); - line 6537: $this->assertSame('select * from `users` where json_overlaps(`options`, ?)', $builder->toSql()); - line 6538: $this->assertEquals(['["en","fr"]'], $builder->getBindings()); - line 6540: $builder = $this->getMySqlBuilder(); - line 6541: $builder->select('*')->from('users')->whereJsonOverlaps('users.options->languages', ['en', 'fr']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6551: public function testWhereJsonContainsPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 6551: public function testWhereJsonContainsPostgres() - line 6553: $builder = $this->getPostgresBuilder(); - line 6554: $builder->select('*')->from('users')->whereJsonContains('options', ['en']); - line 6555: $this->assertSame('select * from "users" where ("options")::jsonb @> ?', $builder->toSql()); - line 6556: $this->assertEquals(['["en"]'], $builder->getBindings()); - line 6558: $builder = $this->getPostgresBuilder(); - line 6559: $builder->select('*')->from('users')->whereJsonContains('users.options->languages', ['en']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6569: public function testWhereJsonContainsSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 6569: public function testWhereJsonContainsSqlite() - line 6571: $builder = $this->getSQLiteBuilder(); - line 6572: $builder->select('*')->from('users')->whereJsonContains('options', 'en')->toSql(); - line 6573: $this->assertSame('select * from "users" where exists (select 1 from json_each("options") where "json_each"."value" is ?)', $builder->toSql()); - line 6574: $this->assertEquals(['en'], $builder->getBindings()); - line 6576: $builder = $this->getSQLiteBuilder(); - line 6577: $builder->select('*')->from('users')->whereJsonContains('users.options->language', 'en')->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6582: public function testWhereJsonContainsSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 6582: public function testWhereJsonContainsSqlServer() - line 6584: $builder = $this->getSqlServerBuilder(); - line 6585: $builder->select('*')->from('users')->whereJsonContains('options', true); - line 6586: $this->assertSame('select * from [users] where ? in (select [value] from openjson([options]))', $builder->toSql()); - line 6587: $this->assertEquals(['true'], $builder->getBindings()); - line 6589: $builder = $this->getSqlServerBuilder(); - line 6590: $builder->select('*')->from('users')->whereJsonContains('users.options->languages', 'en'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6600: public function testWhereJsonDoesntContainMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 6600: public function testWhereJsonDoesntContainMySql() - line 6602: $builder = $this->getMySqlBuilder(); - line 6603: $builder->select('*')->from('users')->whereJsonDoesntContain('options->languages', ['en']); - line 6604: $this->assertSame('select * from `users` where not json_contains(`options`, ?, \'$."languages"\')', $builder->toSql()); - line 6605: $this->assertEquals(['["en"]'], $builder->getBindings()); - line 6607: $builder = $this->getMySqlBuilder(); - line 6608: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereJsonDoesntContain('options->languages', new Raw("'[\"en\"]'")); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6613: public function testWhereJsonDoesntOverlapMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 6613: public function testWhereJsonDoesntOverlapMySql() - line 6615: $builder = $this->getMySqlBuilder(); - line 6616: $builder->select('*')->from('users')->whereJsonDoesntOverlap('options->languages', ['en', 'fr']); - line 6617: $this->assertSame('select * from `users` where not json_overlaps(`options`, ?, \'$."languages"\')', $builder->toSql()); - line 6618: $this->assertEquals(['["en","fr"]'], $builder->getBindings()); - line 6620: $builder = $this->getMySqlBuilder(); - line 6621: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereJsonDoesntOverlap('options->languages', new Raw("'[\"en\", \"fr\"]'")); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6626: public function testWhereJsonDoesntContainPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 6626: public function testWhereJsonDoesntContainPostgres() - line 6628: $builder = $this->getPostgresBuilder(); - line 6629: $builder->select('*')->from('users')->whereJsonDoesntContain('options->languages', ['en']); - line 6630: $this->assertSame('select * from "users" where not ("options"->\'languages\')::jsonb @> ?', $builder->toSql()); - line 6631: $this->assertEquals(['["en"]'], $builder->getBindings()); - line 6633: $builder = $this->getPostgresBuilder(); - line 6634: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereJsonDoesntContain('options->languages', new Raw("'[\"en\"]'")); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6639: public function testWhereJsonDoesntContainSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 6639: public function testWhereJsonDoesntContainSqlite() - line 6641: $builder = $this->getSQLiteBuilder(); - line 6642: $builder->select('*')->from('users')->whereJsonDoesntContain('options', 'en')->toSql(); - line 6643: $this->assertSame('select * from "users" where not exists (select 1 from json_each("options") where "json_each"."value" is ?)', $builder->toSql()); - line 6644: $this->assertEquals(['en'], $builder->getBindings()); - line 6646: $builder = $this->getSQLiteBuilder(); - line 6647: $builder->select('*')->from('users')->whereJsonDoesntContain('users.options->language', 'en')->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6652: public function testWhereJsonDoesntContainSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 6652: public function testWhereJsonDoesntContainSqlServer() - line 6654: $builder = $this->getSqlServerBuilder(); - line 6655: $builder->select('*')->from('users')->whereJsonDoesntContain('options->languages', 'en'); - line 6656: $this->assertSame('select * from [users] where not ? in (select [value] from openjson([options], \'$."languages"\'))', $builder->toSql()); - line 6657: $this->assertEquals(['en'], $builder->getBindings()); - line 6659: $builder = $this->getSqlServerBuilder(); - line 6660: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereJsonDoesntContain('options->languages', new Raw("'en'")); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6665: public function testWhereJsonContainsKeyMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 6665: public function testWhereJsonContainsKeyMySql() - line 6667: $builder = $this->getMySqlBuilder(); - line 6668: $builder->select('*')->from('users')->whereJsonContainsKey('users.options->languages'); - line 6669: $this->assertSame('select * from `users` where ifnull(json_contains_path(`users`.`options`, \'one\', \'$."languages"\'), 0)', $builder->toSql()); - line 6671: $builder = $this->getMySqlBuilder(); - line 6672: $builder->select('*')->from('users')->whereJsonContainsKey('options->language->primary'); - line 6673: $this->assertSame('select * from `users` where ifnull(json_contains_path(`options`, \'one\', \'$."language"."primary"\'), 0)', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6684: public function testWhereJsonContainsKeyPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 6684: public function testWhereJsonContainsKeyPostgres() - line 6686: $builder = $this->getPostgresBuilder(); - line 6687: $builder->select('*')->from('users')->whereJsonContainsKey('users.options->languages'); - line 6688: $this->assertSame('select * from "users" where coalesce(("users"."options")::jsonb ?? \'languages\', false)', $builder->toSql()); - line 6690: $builder = $this->getPostgresBuilder(); - line 6691: $builder->select('*')->from('users')->whereJsonContainsKey('options->language->primary'); - line 6692: $this->assertSame('select * from "users" where coalesce(("options"->\'language\')::jsonb ?? \'primary\', false)', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6707: public function testWhereJsonContainsKeySqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 6707: public function testWhereJsonContainsKeySqlite() - line 6709: $builder = $this->getSQLiteBuilder(); - line 6710: $builder->select('*')->from('users')->whereJsonContainsKey('users.options->languages'); - line 6711: $this->assertSame('select * from "users" where json_type("users"."options", \'$."languages"\') is not null', $builder->toSql()); - line 6713: $builder = $this->getSQLiteBuilder(); - line 6714: $builder->select('*')->from('users')->whereJsonContainsKey('options->language->primary'); - line 6715: $this->assertSame('select * from "users" where json_type("options", \'$."language"."primary"\') is not null', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6726: public function testWhereJsonContainsKeySqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 6726: public function testWhereJsonContainsKeySqlServer() - line 6728: $builder = $this->getSqlServerBuilder(); - line 6729: $builder->select('*')->from('users')->whereJsonContainsKey('users.options->languages'); - line 6730: $this->assertSame('select * from [users] where \'languages\' in (select [key] from openjson([users].[options]))', $builder->toSql()); - line 6732: $builder = $this->getSqlServerBuilder(); - line 6733: $builder->select('*')->from('users')->whereJsonContainsKey('options->language->primary'); - line 6734: $this->assertSame('select * from [users] where \'primary\' in (select [key] from openjson([options], \'$."language"\'))', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6745: public function testWhereJsonDoesntContainKeyMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 6745: public function testWhereJsonDoesntContainKeyMySql() - line 6747: $builder = $this->getMySqlBuilder(); - line 6748: $builder->select('*')->from('users')->whereJsonDoesntContainKey('options->languages'); - line 6749: $this->assertSame('select * from `users` where not ifnull(json_contains_path(`options`, \'one\', \'$."languages"\'), 0)', $builder->toSql()); - line 6751: $builder = $this->getMySqlBuilder(); - line 6752: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereJsonDoesntContainKey('options->languages'); - line 6753: $this->assertSame('select * from `users` where `id` = ? or not ifnull(json_contains_path(`options`, \'one\', \'$."languages"\'), 0)', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6760: public function testWhereJsonDoesntContainKeyPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 6760: public function testWhereJsonDoesntContainKeyPostgres() - line 6762: $builder = $this->getPostgresBuilder(); - line 6763: $builder->select('*')->from('users')->whereJsonDoesntContainKey('options->languages'); - line 6764: $this->assertSame('select * from "users" where not coalesce(("options")::jsonb ?? \'languages\', false)', $builder->toSql()); - line 6766: $builder = $this->getPostgresBuilder(); - line 6767: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereJsonDoesntContainKey('options->languages'); - line 6768: $this->assertSame('select * from "users" where "id" = ? or not coalesce(("options")::jsonb ?? \'languages\', false)', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6779: public function testWhereJsonDoesntContainKeySqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 6779: public function testWhereJsonDoesntContainKeySqlite() - line 6781: $builder = $this->getSQLiteBuilder(); - line 6782: $builder->select('*')->from('users')->whereJsonDoesntContainKey('options->languages'); - line 6783: $this->assertSame('select * from "users" where not json_type("options", \'$."languages"\') is not null', $builder->toSql()); - line 6785: $builder = $this->getSQLiteBuilder(); - line 6786: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereJsonDoesntContainKey('options->languages'); - line 6787: $this->assertSame('select * from "users" where "id" = ? or not json_type("options", \'$."languages"\') is not null', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6794: public function testWhereJsonDoesntContainKeySqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 6794: public function testWhereJsonDoesntContainKeySqlServer() - line 6796: $builder = $this->getSqlServerBuilder(); - line 6797: $builder->select('*')->from('users')->whereJsonDoesntContainKey('options->languages'); - line 6798: $this->assertSame('select * from [users] where not \'languages\' in (select [key] from openjson([options]))', $builder->toSql()); - line 6800: $builder = $this->getSqlServerBuilder(); - line 6801: $builder->select('*')->from('users')->where('id', '=', 1)->orWhereJsonDoesntContainKey('options->languages'); - line 6802: $this->assertSame('select * from [users] where [id] = ? or not \'languages\' in (select [key] from openjson([options]))', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6809: public function testWhereJsonLengthMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 6809: public function testWhereJsonLengthMySql() - line 6811: $builder = $this->getMySqlBuilder(); - line 6812: $builder->select('*')->from('users')->whereJsonLength('options', 0); - line 6813: $this->assertSame('select * from `users` where json_length(`options`) = ?', $builder->toSql()); - line 6814: $this->assertEquals([0], $builder->getBindings()); - line 6816: $builder = $this->getMySqlBuilder(); - line 6817: $builder->select('*')->from('users')->whereJsonLength('users.options->languages', '>', 0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6832: public function testWhereJsonLengthPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 6832: public function testWhereJsonLengthPostgres() - line 6834: $builder = $this->getPostgresBuilder(); - line 6835: $builder->select('*')->from('users')->whereJsonLength('options', 0); - line 6836: $this->assertSame('select * from "users" where jsonb_array_length(("options")::jsonb) = ?', $builder->toSql()); - line 6837: $this->assertEquals([0], $builder->getBindings()); - line 6839: $builder = $this->getPostgresBuilder(); - line 6840: $builder->select('*')->from('users')->whereJsonLength('users.options->languages', '>', 0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6855: public function testWhereJsonLengthSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 6855: public function testWhereJsonLengthSqlite() - line 6857: $builder = $this->getSQLiteBuilder(); - line 6858: $builder->select('*')->from('users')->whereJsonLength('options', 0); - line 6859: $this->assertSame('select * from "users" where json_array_length("options") = ?', $builder->toSql()); - line 6860: $this->assertEquals([0], $builder->getBindings()); - line 6862: $builder = $this->getSQLiteBuilder(); - line 6863: $builder->select('*')->from('users')->whereJsonLength('users.options->languages', '>', 0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6878: public function testWhereJsonLengthSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 6878: public function testWhereJsonLengthSqlServer() - line 6880: $builder = $this->getSqlServerBuilder(); - line 6881: $builder->select('*')->from('users')->whereJsonLength('options', 0); - line 6882: $this->assertSame('select * from [users] where (select count(*) from openjson([options])) = ?', $builder->toSql()); - line 6883: $this->assertEquals([0], $builder->getBindings()); - line 6885: $builder = $this->getSqlServerBuilder(); - line 6886: $builder->select('*')->from('users')->whereJsonLength('users.options->languages', '>', 0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6901: public function testFrom() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 6901: public function testFrom() - line 6903: $builder = $this->getBuilder(); - line 6904: $builder->from($this->getBuilder()->from('users'), 'u'); - line 6905: $this->assertSame('select * from (select * from "users") as "u"', $builder->toSql()); - line 6907: $builder = $this->getBuilder(); - line 6908: $eloquentBuilder = new EloquentBuilder($this->getBuilder()); - line 6909: $builder->from($eloquentBuilder->from('users'), 'u'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6913: public function testFromSub() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 6913: public function testFromSub() - line 6915: $builder = $this->getBuilder(); - line 6916: $builder->fromSub(function ($query) { - line 6919: $this->assertSame('select * from (select max(last_seen_at) as last_seen_at from "user_sessions" where "foo" = ?) as "sessions" where "bar" < ?', $builder->toSql()); - line 6920: $this->assertEquals(['1', '10'], $builder->getBindings()); - line 6922: $this->expectException(InvalidArgumentException::class); - line 6923: $builder = $this->getBuilder(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6927: public function testFromSubWithPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 6927: public function testFromSubWithPrefix() - line 6929: $builder = $this->getBuilder(prefix: 'prefix_'); - line 6930: $builder->fromSub(function ($query) { - line 6933: $this->assertSame('select * from (select max(last_seen_at) as last_seen_at from "prefix_user_sessions" where "foo" = ?) as "prefix_sessions" where "bar" < ?', $builder->toSql()); - line 6934: $this->assertEquals(['1', '10'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6937: public function testFromSubWithoutBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 6937: public function testFromSubWithoutBindings() - line 6939: $builder = $this->getBuilder(); - line 6940: $builder->fromSub(function ($query) { - line 6943: $this->assertSame('select * from (select max(last_seen_at) as last_seen_at from "user_sessions") as "sessions"', $builder->toSql()); - line 6945: $this->expectException(InvalidArgumentException::class); - line 6946: $builder = $this->getBuilder(); - line 6947: $builder->fromSub(['invalid'], 'sessions'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6950: public function testFromRaw() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 6950: public function testFromRaw() - line 6952: $builder = $this->getBuilder(); - line 6953: $builder->fromRaw(new Raw('(select max(last_seen_at) as last_seen_at from "user_sessions") as "sessions"')); - line 6954: $this->assertSame('select * from (select max(last_seen_at) as last_seen_at from "user_sessions") as "sessions"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6957: public function testFromRawOnSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 6957: public function testFromRawOnSqlServer() - line 6959: $builder = $this->getSqlServerBuilder(); - line 6960: $builder->fromRaw('dbo.[SomeNameWithRoundBrackets (test)]'); - line 6961: $this->assertSame('select * from dbo.[SomeNameWithRoundBrackets (test)]', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6964: public function testFromRawWithWhereOnTheMainQuery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 6964: public function testFromRawWithWhereOnTheMainQuery() - line 6966: $builder = $this->getBuilder(); - line 6967: $builder->fromRaw(new Raw('(select max(last_seen_at) as last_seen_at from "sessions") as "last_seen_at"'))->where('last_seen_at', '>', '1520652582'); - line 6968: $this->assertSame('select * from (select max(last_seen_at) as last_seen_at from "sessions") as "last_seen_at" where "last_seen_at" > ?', $builder->toSql()); - line 6969: $this->assertEquals(['1520652582'], $builder->getBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6972: public function testFromQuestionMarkOperatorOnPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 6972: public function testFromQuestionMarkOperatorOnPostgres() - line 6974: $builder = $this->getPostgresBuilder(); - line 6975: $builder->select('*')->from('users')->where('roles', '?', 'superuser'); - line 6976: $this->assertSame('select * from "users" where "roles" ?? ?', $builder->toSql()); - line 6978: $builder = $this->getPostgresBuilder(); - line 6979: $builder->select('*')->from('users')->where('roles', '?|', 'superuser'); - line 6980: $this->assertSame('select * from "users" where "roles" ??| ?', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6987: public function testUseIndexMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 6987: public function testUseIndexMySql() - line 6989: $builder = $this->getMySqlBuilder(); - line 6990: $builder->select('foo')->from('users')->useIndex('test_index'); - line 6991: $this->assertSame('select `foo` from `users` use index (test_index)', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6994: public function testForceIndexMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 6994: public function testForceIndexMySql() - line 6996: $builder = $this->getMySqlBuilder(); - line 6997: $builder->select('foo')->from('users')->forceIndex('test_index'); - line 6998: $this->assertSame('select `foo` from `users` force index (test_index)', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7001: public function testIgnoreIndexMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 7001: public function testIgnoreIndexMySql() - line 7003: $builder = $this->getMySqlBuilder(); - line 7004: $builder->select('foo')->from('users')->ignoreIndex('test_index'); - line 7005: $this->assertSame('select `foo` from `users` ignore index (test_index)', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7008: public function testUseIndexSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 7008: public function testUseIndexSqlite() - line 7010: $builder = $this->getSQLiteBuilder(); - line 7011: $builder->select('foo')->from('users')->useIndex('test_index'); - line 7012: $this->assertSame('select "foo" from "users"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7015: public function testForceIndexSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 7015: public function testForceIndexSqlite() - line 7017: $builder = $this->getSQLiteBuilder(); - line 7018: $builder->select('foo')->from('users')->forceIndex('test_index'); - line 7019: $this->assertSame('select "foo" from "users" indexed by test_index', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7022: public function testIgnoreIndexSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 7022: public function testIgnoreIndexSqlite() - line 7024: $builder = $this->getSQLiteBuilder(); - line 7025: $builder->select('foo')->from('users')->ignoreIndex('test_index'); - line 7026: $this->assertSame('select "foo" from "users"', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7029: public function testUseIndexSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 7029: public function testUseIndexSqlServer() - line 7031: $builder = $this->getSqlServerBuilder(); - line 7032: $builder->select('foo')->from('users')->useIndex('test_index'); - line 7033: $this->assertSame('select [foo] from [users]', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7036: public function testForceIndexSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 7036: public function testForceIndexSqlServer() - line 7038: $builder = $this->getSqlServerBuilder(); - line 7039: $builder->select('foo')->from('users')->forceIndex('test_index'); - line 7040: $this->assertSame('select [foo] from [users] with (index(test_index))', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7043: public function testIgnoreIndexSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 7043: public function testIgnoreIndexSqlServer() - line 7045: $builder = $this->getSqlServerBuilder(); - line 7046: $builder->select('foo')->from('users')->ignoreIndex('test_index'); - line 7047: $this->assertSame('select [foo] from [users]', $builder->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7050: public function testClone() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 7050: public function testClone() - line 7052: $builder = $this->getBuilder(); - line 7053: $builder->select('*')->from('users'); - line 7054: $clone = $builder->clone()->where('email', 'foo'); - line 7057: $this->assertSame('select * from "users"', $builder->toSql()); - line 7058: $this->assertSame('select * from "users" where "email" = ?', $clone->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7061: public function testCloneWithout() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 7061: public function testCloneWithout() - line 7063: $builder = $this->getBuilder(); - line 7064: $builder->select('*')->from('users')->where('email', 'foo')->orderBy('email'); - line 7065: $clone = $builder->cloneWithout(['orders']); - line 7067: $this->assertSame('select * from "users" where "email" = ? order by "email" asc', $builder->toSql()); - line 7068: $this->assertSame('select * from "users" where "email" = ?', $clone->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7071: public function testCloneWithoutBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 7071: public function testCloneWithoutBindings() - line 7073: $builder = $this->getBuilder(); - line 7074: $builder->select('*')->from('users')->where('email', 'foo')->orderBy('email'); - line 7075: $clone = $builder->cloneWithout(['wheres'])->cloneWithoutBindings(['where']); - line 7077: $this->assertSame('select * from "users" where "email" = ? order by "email" asc', $builder->toSql()); - line 7078: $this->assertEquals([0 => 'foo'], $builder->getBindings()); - line 7080: $this->assertSame('select * from "users" order by "email" asc', $clone->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7084: public function testToRawSql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 7084: public function testToRawSql() - line 7086: $connection = $this->getConnection(); - line 7090: $grammar = m::mock(Grammar::class, [$connection])->makePartial(); - line 7095: $builder->select('*')->from('users')->where('email', 'foo'); - line 7097: $this->assertSame('select * from "users" where "email" = \'foo\'', $builder->toRawSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 7094: $builder = new Builder($connection, $grammar, m::mock(Processor::class)); ❌ tests/Database/DatabaseQueryExceptionTest.php - Test @ line 15: public function testIfItEmbedsBindingsIntoSql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 15: public function testIfItEmbedsBindingsIntoSql() - line 17: $connection = $this->getConnection(); - line 25: $exception = new QueryException($connection->getName(), $sql, $bindings, $pdoException); - line 28: $result = $exception->getRawSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 15: public function testIfItEmbedsBindingsIntoSql() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 33: public function testIfItReturnsSameSqlWhenThereAreNoBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 33: public function testIfItReturnsSameSqlWhenThereAreNoBindings() - line 35: $connection = $this->getConnection(); - line 43: $exception = new QueryException($connection->getName(), $sql, $bindings, $pdoException); - line 46: $result = $exception->getRawSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 33: public function testIfItReturnsSameSqlWhenThereAreNoBindings() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseQueryGrammarTest.php - Test @ line 20: public function testWhereRawReturnsStringWhenExpressionPassed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 20: public function testWhereRawReturnsStringWhenExpressionPassed() - line 22: $builder = m::mock(Builder::class); - line 25: $method = $reflection->getMethod('whereRaw'); - line 28: $rawQuery = $method->invoke($grammar, $builder, $expressionArray); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 22: $builder = m::mock(Builder::class); - line 23: $grammar = new Grammar(m::mock(Connection::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 20: public function testWhereRawReturnsStringWhenExpressionPassed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 33: public function testWhereRawReturnsStringWhenStringPassed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 33: public function testWhereRawReturnsStringWhenStringPassed() - line 35: $builder = m::mock(Builder::class); - line 38: $method = $reflection->getMethod('whereRaw'); - line 41: $rawQuery = $method->invoke($grammar, $builder, $stringArray); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 35: $builder = m::mock(Builder::class); - line 36: $grammar = new Grammar(m::mock(Connection::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 33: public function testWhereRawReturnsStringWhenStringPassed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 46: public function testCompileOrdersAcceptsExpression() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 46: public function testCompileOrdersAcceptsExpression() - line 48: $builder = m::mock(Builder::class); - line 59: $method = $ref->getMethod('compileOrders'); // protected - line 60: $sql = $method->invoke($grammar, $builder, $orders); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 48: $builder = m::mock(Builder::class); - line 49: $grammar = new Grammar(m::mock(Connection::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 46: public function testCompileOrdersAcceptsExpression() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 65: public function testCompileOrdersAcceptsExpressionWithPlaceholders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 65: public function testCompileOrdersAcceptsExpressionWithPlaceholders() - line 67: $builder = m::mock(Builder::class); - line 76: $method = $ref->getMethod('compileOrders'); - line 77: $sql = $method->invoke($grammar, $builder, $orders); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 67: $builder = m::mock(Builder::class); - line 68: $grammar = new Grammar(m::mock(Connection::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 65: public function testCompileOrdersAcceptsExpressionWithPlaceholders() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseSchemaBlueprintTest.php - Test @ line 22: public function testToSqlRunsCommandsFromBlueprint() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 22: public function testToSqlRunsCommandsFromBlueprint() - line 24: $conn = $this->getConnection(); - line 27: $blueprint = $this->getMockBuilder(Blueprint::class)->onlyMethods(['toSql'])->setConstructorArgs([$conn, 'users'])->getMock(); - line 28: $blueprint->expects($this->once())->method('toSql')->willReturn(['foo', 'bar']); - line 30: $blueprint->build(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 22: public function testToSqlRunsCommandsFromBlueprint() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 33: public function testIndexDefaultNames() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 33: public function testIndexDefaultNames() - line 35: $blueprint = $this->getBlueprint(table: 'users'); - line 36: $blueprint->unique(['foo', 'bar']); - line 37: $commands = $blueprint->getCommands(); - line 40: $blueprint = $this->getBlueprint(table: 'users'); - line 41: $blueprint->index('foo'); - line 42: $commands = $blueprint->getCommands(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 33: public function testIndexDefaultNames() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 51: public function testIndexDefaultNamesWhenPrefixSupplied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 51: public function testIndexDefaultNamesWhenPrefixSupplied() - line 53: $blueprint = $this->getBlueprint(table: 'users', prefix: 'prefix_'); - line 54: $blueprint->unique(['foo', 'bar']); - line 55: $commands = $blueprint->getCommands(); - line 58: $blueprint = $this->getBlueprint(table: 'users', prefix: 'prefix_'); - line 59: $blueprint->index('foo'); - line 60: $commands = $blueprint->getCommands(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 51: public function testIndexDefaultNamesWhenPrefixSupplied() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 69: public function testDropIndexDefaultNames() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 69: public function testDropIndexDefaultNames() - line 71: $blueprint = $this->getBlueprint(table: 'users'); - line 72: $blueprint->dropUnique(['foo', 'bar']); - line 73: $commands = $blueprint->getCommands(); - line 76: $blueprint = $this->getBlueprint(table: 'users'); - line 77: $blueprint->dropIndex(['foo']); - line 78: $commands = $blueprint->getCommands(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 69: public function testDropIndexDefaultNames() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 87: public function testDropIndexDefaultNamesWhenPrefixSupplied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 87: public function testDropIndexDefaultNamesWhenPrefixSupplied() - line 89: $blueprint = $this->getBlueprint(table: 'users', prefix: 'prefix_'); - line 90: $blueprint->dropUnique(['foo', 'bar']); - line 91: $commands = $blueprint->getCommands(); - line 94: $blueprint = $this->getBlueprint(table: 'users', prefix: 'prefix_'); - line 95: $blueprint->dropIndex(['foo']); - line 96: $commands = $blueprint->getCommands(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 87: public function testDropIndexDefaultNamesWhenPrefixSupplied() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 105: public function testDefaultCurrentDate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 105: public function testDefaultCurrentDate() - line 109: $connection = $this->getConnection($grammar); - line 114: $table->date('created')->useCurrent(); - line 117: return $this->getBlueprint($grammar, 'users', function ($table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 158: public function testDefaultCurrentYear() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 158: public function testDefaultCurrentYear() - line 162: $connection = $this->getConnection($grammar); - line 167: $table->year('birth_year')->useCurrent(); - line 170: return $this->getBlueprint($grammar, 'users', function ($table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 196: public function testRenameColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 196: public function testRenameColumn() - line 199: $connection = $this->getConnection($grammar); - line 204: $table->renameColumn('foo', 'bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 214: public function testNativeRenameColumnOnMysql57() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 214: public function testNativeRenameColumnOnMysql57() - line 216: $connection = $this->getConnection('MySql'); - line 219: $connection->getSchemaBuilder()->shouldReceive('getColumns')->andReturn([ - line 226: $table->renameColumn('name', 'title'); - line 235: ], $blueprint->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 238: public function testNativeRenameColumnOnLegacyMariaDB() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 238: public function testNativeRenameColumnOnLegacyMariaDB() - line 240: $connection = $this->getConnection('MariaDb'); - line 243: $connection->getSchemaBuilder()->shouldReceive('getColumns')->andReturn([ - line 251: $table->renameColumn('name', 'title'); - line 262: ], $blueprint->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 279: public function testNativeColumnModifyingOnMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 279: public function testNativeColumnModifyingOnMySql() - line 281: $blueprint = $this->getBlueprint('MySql', 'users', function ($table) { - line 298: ], $blueprint->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 301: public function testMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 301: public function testMacroable() - line 304: return $this->addCommand('foo'); - line 311: $blueprint = $this->getBlueprint('MySql', 'users', function ($table) { - line 315: $this->assertEquals(['bar'], $blueprint->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 348: public function testDefaultUsingUuidMorph() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 348: public function testDefaultUsingUuidMorph() - line 350: Builder::defaultMorphKeyType('uuid'); - line 353: return $this->getBlueprint($grammar, 'comments', function ($table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 365: public function testDefaultUsingNullableUuidMorph() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 365: public function testDefaultUsingNullableUuidMorph() - line 367: Builder::defaultMorphKeyType('uuid'); - line 370: return $this->getBlueprint($grammar, 'comments', function ($table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 382: public function testDefaultUsingUlidMorph() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 382: public function testDefaultUsingUlidMorph() - line 384: Builder::defaultMorphKeyType('ulid'); - line 387: return $this->getBlueprint($grammar, 'comments', function ($table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 399: public function testDefaultUsingNullableUlidMorph() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 399: public function testDefaultUsingNullableUlidMorph() - line 401: Builder::defaultMorphKeyType('ulid'); - line 404: return $this->getBlueprint($grammar, 'comments', function ($table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 619: public function testColumnDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 619: public function testColumnDefault() - line 623: return $this->getBlueprint($grammar, 'posts', function ($table) { - line 632: return $this->getBlueprint($grammar, 'posts', function ($table) { - line 641: return $this->getBlueprint($grammar, 'posts', function ($table) { - line 650: return $this->getBlueprint($grammar, 'posts', function ($table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseSchemaBuilderIntegrationTest.php - Test @ line 42: public function testHasColumnWithTablePrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 42: public function testHasColumnWithTablePrefix() - line 44: $this->db->connection()->setTablePrefix('test_'); - line 46: $this->db->connection()->getSchemaBuilder()->create('table1', function (Blueprint $table) { - line 51: $this->assertTrue($this->db->connection()->getSchemaBuilder()->hasColumn('table1', 'name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 54: public function testHasColumnAndIndexWithPrefixIndexDisabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 54: public function testHasColumnAndIndexWithPrefixIndexDisabled() - line 56: $this->db->addConnection([ - line 63: $this->schemaBuilder()->create('table1', function (Blueprint $table) { - line 68: $this->assertTrue($this->schemaBuilder()->hasIndex('table1', 'table1_name_index')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 71: public function testHasColumnAndIndexWithPrefixIndexEnabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 71: public function testHasColumnAndIndexWithPrefixIndexEnabled() - line 73: $this->db->addConnection([ - line 80: $this->schemaBuilder()->create('table1', function (Blueprint $table) { - line 85: $this->assertTrue($this->schemaBuilder()->hasIndex('table1', 'example_table1_name_index')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 88: public function testDropColumnWithTablePrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 88: public function testDropColumnWithTablePrefix() - line 90: $this->db->connection()->setTablePrefix('test_'); - line 92: $this->schemaBuilder()->create('pandemic_table', function (Blueprint $table) { - line 100: $this->assertTrue($this->schemaBuilder()->hasColumn('pandemic_table', 'stay_home')); - line 101: $this->schemaBuilder()->dropColumns('pandemic_table', 'stay_home'); - line 102: $this->assertFalse($this->schemaBuilder()->hasColumn('pandemic_table', 'stay_home')); - line 105: $this->assertTrue($this->schemaBuilder()->hasColumn('pandemic_table', 'covid19')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseSchemaBuilderTest.php - Test @ line 20: public function testCreateDatabase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 20: public function testCreateDatabase() - line 22: $connection = m::mock(Connection::class); - line 26: $connection->shouldReceive('statement')->with('sql')->andReturnTrue(); - line 29: $this->assertTrue($builder->createDatabase('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 22: $connection = m::mock(Connection::class); - line 23: $grammar = m::mock(stdClass::class); - Test @ line 32: public function testDropDatabaseIfExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 32: public function testDropDatabaseIfExists() - line 34: $connection = m::mock(Connection::class); - line 38: $connection->shouldReceive('statement')->with('sql')->andReturnTrue(); - line 41: $this->assertTrue($builder->dropDatabaseIfExists('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 34: $connection = m::mock(Connection::class); - line 35: $grammar = m::mock(stdClass::class); - Test @ line 44: public function testHasTableCorrectlyCallsGrammar() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 44: public function testHasTableCorrectlyCallsGrammar() - line 46: $connection = m::mock(Connection::class); - line 58: $this->assertTrue($builder->hasTable('table')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 46: $connection = m::mock(Connection::class); - line 47: $grammar = m::mock(Grammar::class); - line 48: $processor = m::mock(Processor::class); - Test @ line 61: public function testTableHasColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 61: public function testTableHasColumns() - line 63: $connection = m::mock(Connection::class); - line 69: $this->assertTrue($builder->hasColumns('users', ['id', 'firstname'])); - line 70: $this->assertFalse($builder->hasColumns('users', ['id', 'address'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 63: $connection = m::mock(Connection::class); - line 64: $grammar = m::mock(stdClass::class); - Test @ line 73: public function testGetColumnTypeAddsPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 73: public function testGetColumnTypeAddsPrefix() - line 75: $connection = m::mock(Connection::class); - line 86: $this->assertSame('integer', $builder->getColumnType('users', 'id')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 75: $connection = m::mock(Connection::class); - line 76: $grammar = m::mock(Grammar::class); - line 77: $processor = m::mock(Processor::class); ❌ tests/Database/DatabaseSeederTest.php - Test @ line 36: public function testCallResolveTheClassAndCallsRun() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 36: public function testCallResolveTheClassAndCallsRun() - line 39: $seeder->setContainer($container = m::mock(Container::class)); - line 44: $seeder->setCommand($command); - line 50: $seeder->call('ClassName'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 39: $seeder->setContainer($container = m::mock(Container::class)); - line 40: $output = m::mock(OutputInterface::class); - line 42: $command = m::mock(Command::class); - line 45: $container->shouldReceive('make')->once()->with('ClassName')->andReturn($child = m::mock(Seeder::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 36: public function testCallResolveTheClassAndCallsRun() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 53: public function testSetContainer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 53: public function testSetContainer() - line 56: $container = m::mock(Container::class); - line 57: $this->assertEquals($seeder->setContainer($container), $seeder); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 56: $container = m::mock(Container::class); - Test @ line 60: public function testSetCommand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 60: public function testSetCommand() - line 63: $command = m::mock(Command::class); - line 64: $this->assertEquals($seeder->setCommand($command), $seeder); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 63: $command = m::mock(Command::class); - Test @ line 67: public function testInjectDependenciesOnRunMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 67: public function testInjectDependenciesOnRunMethod() - line 69: $container = m::mock(Container::class); - line 73: $seeder->setContainer($container); - line 75: $seeder->__invoke(); - line 77: $container->shouldHaveReceived('call')->once()->with([$seeder, 'run'], []); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 69: $container = m::mock(Container::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 67: public function testInjectDependenciesOnRunMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 80: public function testSendParamsOnCallMethodWithDeps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 80: public function testSendParamsOnCallMethodWithDeps() - line 82: $container = m::mock(Container::class); - line 86: $seeder->setContainer($container); - line 88: $seeder->__invoke(['test1', 'test2']); - line 90: $container->shouldHaveReceived('call')->once()->with([$seeder, 'run'], ['test1', 'test2']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 82: $container = m::mock(Container::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 80: public function testSendParamsOnCallMethodWithDeps() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseSoftDeletingScopeTest.php - Test @ line 23: public function testApplyingScopeToABuilder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 23: public function testApplyingScopeToABuilder() - line 25: $scope = m::mock(SoftDeletingScope::class.'[extend]'); - line 31: $scope->apply($builder, $model); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 26: $builder = m::mock(EloquentBuilder::class); - line 27: $model = m::mock(Model::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testApplyingScopeToABuilder() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 34: public function testRestoreExtension() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 34: public function testRestoreExtension() - line 37: m::mock(ConnectionInterface::class), - line 42: $scope->extend($builder); - line 43: $callback = $builder->getMacro('restore'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 37: m::mock(ConnectionInterface::class), - line 38: m::mock(Grammar::class), - line 39: m::mock(Processor::class) - line 44: $givenBuilder = m::mock(EloquentBuilder::class); - line 46: $givenBuilder->shouldReceive('getModel')->once()->andReturn($model = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function testRestoreExtension() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 53: public function testRestoreOrCreateExtension() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 53: public function testRestoreOrCreateExtension() - line 56: m::mock(ConnectionInterface::class), - line 62: $scope->extend($builder); - line 63: $callback = $builder->getMacro('restoreOrCreate'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 56: m::mock(ConnectionInterface::class), - line 57: m::mock(Grammar::class), - line 58: m::mock(Processor::class) - line 64: $givenBuilder = m::mock(EloquentBuilder::class); - line 68: $givenBuilder->shouldReceive('firstOrCreate')->once()->with($attributes, $values)->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 53: public function testRestoreOrCreateExtension() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 75: public function testCreateOrRestoreExtension() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 75: public function testCreateOrRestoreExtension() - line 78: m::mock(ConnectionInterface::class), - line 84: $scope->extend($builder); - line 85: $callback = $builder->getMacro('createOrRestore'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 78: m::mock(ConnectionInterface::class), - line 79: m::mock(Grammar::class), - line 80: m::mock(Processor::class) - line 86: $givenBuilder = m::mock(EloquentBuilder::class); - line 90: $givenBuilder->shouldReceive('createOrFirst')->once()->with($attributes, $values)->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 75: public function testCreateOrRestoreExtension() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 97: public function testWithTrashedExtension() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 97: public function testWithTrashedExtension() - line 100: m::mock(ConnectionInterface::class), - line 105: $scope->extend($builder); - line 106: $callback = $builder->getMacro('withTrashed'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 100: m::mock(ConnectionInterface::class), - line 101: m::mock(Grammar::class), - line 102: m::mock(Processor::class) - line 107: $givenBuilder = m::mock(EloquentBuilder::class); - line 108: $givenBuilder->shouldReceive('getModel')->andReturn($model = m::mock(Model::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 97: public function testWithTrashedExtension() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 115: public function testOnlyTrashedExtension() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 115: public function testOnlyTrashedExtension() - line 118: m::mock(ConnectionInterface::class), - line 123: $model->makePartial(); - line 125: $scope->extend($builder); - line 126: $callback = $builder->getMacro('onlyTrashed'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 118: m::mock(ConnectionInterface::class), - line 119: m::mock(Grammar::class), - line 120: m::mock(Processor::class) - line 122: $model = m::mock(Model::class); - line 127: $givenBuilder = m::mock(EloquentBuilder::class); - line 128: $givenBuilder->shouldReceive('getQuery')->andReturn($query = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 115: public function testOnlyTrashedExtension() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 138: public function testWithoutTrashedExtension() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 138: public function testWithoutTrashedExtension() - line 141: m::mock(ConnectionInterface::class), - line 146: $model->makePartial(); - line 148: $scope->extend($builder); - line 149: $callback = $builder->getMacro('withoutTrashed'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 141: m::mock(ConnectionInterface::class), - line 142: m::mock(Grammar::class), - line 143: m::mock(Processor::class) - line 145: $model = m::mock(Model::class); - line 150: $givenBuilder = m::mock(EloquentBuilder::class); - line 151: $givenBuilder->shouldReceive('getQuery')->andReturn($query = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 138: public function testWithoutTrashedExtension() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseSoftDeletingTest.php - Test @ line 12: public function testDeletedAtIsAddedToCastsAsDefaultType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 12: public function testDeletedAtIsAddedToCastsAsDefaultType() - line 16: $this->assertArrayHasKey('deleted_at', $model->getCasts()); - line 17: $this->assertSame('datetime', $model->getCasts()['deleted_at']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 20: public function testDeletedAtIsCastToCarbonInstance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 20: public function testDeletedAtIsCastToCarbonInstance() - line 23: $model = new SoftDeletingModel(['deleted_at' => $expected->format('Y-m-d H:i:s')]); - line 26: $this->assertTrue($expected->eq($model->deleted_at)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 29: public function testExistingCastOverridesAddedDateCast() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 29: public function testExistingCastOverridesAddedDateCast() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 29: public function testExistingCastOverridesAddedDateCast() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 39: public function testExistingMutatorOverridesAddedDateCast() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 39: public function testExistingMutatorOverridesAddedDateCast() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 39: public function testExistingMutatorOverridesAddedDateCast() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 52: public function testCastingToStringOverridesAutomaticDateCastingToRetainPreviousBehaviour() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 52: public function testCastingToStringOverridesAutomaticDateCastingToRetainPreviousBehaviour() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 52: public function testCastingToStringOverridesAutomaticDateCastingToRetainPreviousBehaviour() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseSoftDeletingTraitTest.php - Test @ line 18: public function testDeleteSetsSoftDeletedColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 18: public function testDeleteSetsSoftDeletedColumn() - line 20: $model = m::mock(DatabaseSoftDeletingTraitStub::class); - line 21: $model->makePartial(); - line 33: $model->delete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 20: $model = m::mock(DatabaseSoftDeletingTraitStub::class); - line 22: $model->shouldReceive('newModelQuery')->andReturn($query = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 18: public function testDeleteSetsSoftDeletedColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 38: public function testRestore() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 38: public function testRestore() - line 40: $model = m::mock(DatabaseSoftDeletingTraitStub::class); - line 41: $model->makePartial(); - line 46: $model->restore(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 40: $model = m::mock(DatabaseSoftDeletingTraitStub::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 38: public function testRestore() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 51: public function testRestoreCancel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 51: public function testRestoreCancel() - line 53: $model = m::mock(DatabaseSoftDeletingTraitStub::class); - line 54: $model->makePartial(); - line 56: $model->shouldReceive('save')->never(); - line 58: $this->assertFalse($model->restore()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 53: $model = m::mock(DatabaseSoftDeletingTraitStub::class); ❌ tests/Database/DatabaseSQLiteBuilderTest.php - Test @ line 34: public function testCreateDatabase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 34: public function testCreateDatabase() - line 36: $connection = m::mock(Connection::class); - line 46: $this->assertTrue($builder->createDatabase('my_temporary_database_a')); - line 53: $this->assertFalse($builder->createDatabase('my_temporary_database_b')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 36: $connection = m::mock(Connection::class); - Test @ line 56: public function testDropDatabaseIfExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 56: public function testDropDatabaseIfExists() - line 58: $connection = m::mock(Connection::class); - line 72: $this->assertTrue($builder->dropDatabaseIfExists('my_temporary_database_b')); - line 78: $this->assertTrue($builder->dropDatabaseIfExists('my_temporary_database_c')); - line 89: $this->assertFalse($builder->dropDatabaseIfExists('my_temporary_database_c')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 58: $connection = m::mock(Connection::class); ❌ tests/Database/DatabaseSQLiteProcessorTest.php - Test @ line 10: public function testProcessColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 10: public function testProcessColumns() - line 27: $this->assertEquals($expected, $processor->processColumns($listing)); - line 34: $this->assertEquals($expected, $processor->processColumns($listing)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseSQLiteQueryGrammarTest.php - Test @ line 17: public function testToRawSql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 17: public function testToRawSql() - line 19: $connection = m::mock(Connection::class); - line 23: $query = $grammar->substituteBindingsIntoRawSql( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 19: $connection = m::mock(Connection::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 17: public function testToRawSql() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseSQLiteSchemaGrammarTest.php - Test @ line 25: public function testBasicCreateTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 25: public function testBasicCreateTable() - line 27: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 28: $blueprint->create(); - line 29: $blueprint->increments('id'); - line 30: $blueprint->string('email'); - line 31: $statements = $blueprint->toSql(); - line 36: $blueprint = new Blueprint($this->getConnection(), 'users'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 25: public function testBasicCreateTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 49: public function testCreateTemporaryTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 49: public function testCreateTemporaryTable() - line 51: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 52: $blueprint->create(); - line 53: $blueprint->temporary(); - line 54: $blueprint->increments('id'); - line 55: $blueprint->string('email'); - line 56: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testCreateTemporaryTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 62: public function testDropTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 62: public function testDropTable() - line 64: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 65: $blueprint->drop(); - line 66: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 62: public function testDropTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 72: public function testDropTableIfExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 72: public function testDropTableIfExists() - line 74: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 75: $blueprint->dropIfExists(); - line 76: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 72: public function testDropTableIfExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 82: public function testDropUnique() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 82: public function testDropUnique() - line 84: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 85: $blueprint->dropUnique('foo'); - line 86: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 82: public function testDropUnique() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 92: public function testDropIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 92: public function testDropIndex() - line 94: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 95: $blueprint->dropIndex('foo'); - line 96: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 92: public function testDropIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 102: public function testDropIndexWithSchema() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 102: public function testDropIndexWithSchema() - line 104: $blueprint = new Blueprint($this->getConnection(), 'my_schema.users'); - line 105: $blueprint->dropIndex('foo'); - line 106: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 102: public function testDropIndexWithSchema() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 112: public function testDropColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 112: public function testDropColumn() - line 116: $db->addConnection([ - line 122: $schema = $db->getConnection()->getSchemaBuilder(); - line 124: $schema->create('users', function (Blueprint $table) { - line 129: $this->assertTrue($schema->hasTable('users')); - line 130: $this->assertTrue($schema->hasColumn('users', 'name')); - line 132: $schema->table('users', function (Blueprint $table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 139: public function testDropSpatialIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 139: public function testDropSpatialIndex() - line 141: $this->expectException(RuntimeException::class); - line 142: $this->expectExceptionMessage('The database driver in use does not support spatial indexes.'); - line 144: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 145: $blueprint->dropSpatialIndex(['coordinates']); - line 146: $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 139: public function testDropSpatialIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 149: public function testRenameTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 149: public function testRenameTable() - line 151: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 152: $blueprint->rename('foo'); - line 153: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 149: public function testRenameTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 159: public function testRenameIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 159: public function testRenameIndex() - line 163: $db->addConnection([ - line 169: $schema = $db->getConnection()->getSchemaBuilder(); - line 171: $schema->create('users', function (Blueprint $table) { - line 176: $schema->table('users', function (Blueprint $table) { - line 180: $indexes = $schema->getIndexListing('users'); - line 185: $schema->table('users', function (Blueprint $table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 195: public function testAddingPrimaryKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 195: public function testAddingPrimaryKey() - line 197: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 198: $blueprint->create(); - line 199: $blueprint->string('foo')->primary(); - line 200: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 195: public function testAddingPrimaryKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 206: public function testAddingForeignKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 206: public function testAddingForeignKey() - line 208: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 209: $blueprint->create(); - line 210: $blueprint->string('foo')->primary(); - line 211: $blueprint->string('order_id'); - line 212: $blueprint->foreign('order_id')->references('id')->on('orders'); - line 213: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 206: public function testAddingForeignKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 219: public function testAddingUniqueKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 219: public function testAddingUniqueKey() - line 221: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 222: $blueprint->unique('foo', 'bar'); - line 223: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 219: public function testAddingUniqueKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 229: public function testAddingIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 229: public function testAddingIndex() - line 231: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 232: $blueprint->index(['foo', 'bar'], 'baz'); - line 233: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 229: public function testAddingIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 239: public function testAddingUniqueKeyWithSchema() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 239: public function testAddingUniqueKeyWithSchema() - line 241: $blueprint = new Blueprint($this->getConnection(), 'foo.users'); - line 242: $blueprint->unique('foo', 'bar'); - line 244: $this->assertSame(['create unique index "foo"."bar" on "users" ("foo")'], $blueprint->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 247: public function testAddingIndexWithSchema() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 247: public function testAddingIndexWithSchema() - line 249: $blueprint = new Blueprint($this->getConnection(), 'foo.users'); - line 250: $blueprint->index(['foo', 'bar'], 'baz'); - line 252: $this->assertSame(['create index "foo"."baz" on "users" ("foo", "bar")'], $blueprint->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 255: public function testAddingSpatialIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 255: public function testAddingSpatialIndex() - line 257: $this->expectException(RuntimeException::class); - line 258: $this->expectExceptionMessage('The database driver in use does not support spatial indexes.'); - line 260: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 261: $blueprint->spatialIndex('coordinates'); - line 262: $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 255: public function testAddingSpatialIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 265: public function testAddingFluentSpatialIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 265: public function testAddingFluentSpatialIndex() - line 267: $this->expectException(RuntimeException::class); - line 268: $this->expectExceptionMessage('The database driver in use does not support spatial indexes.'); - line 270: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 271: $blueprint->geometry('coordinates')->spatialIndex(); - line 272: $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 265: public function testAddingFluentSpatialIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 275: public function testAddingRawIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 275: public function testAddingRawIndex() - line 277: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 278: $blueprint->rawIndex('(function(column))', 'raw_index'); - line 279: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 275: public function testAddingRawIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 285: public function testAddingIncrementingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 285: public function testAddingIncrementingID() - line 287: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 288: $blueprint->increments('id'); - line 289: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 285: public function testAddingIncrementingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 295: public function testAddingSmallIncrementingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 295: public function testAddingSmallIncrementingID() - line 297: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 298: $blueprint->smallIncrements('id'); - line 299: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 295: public function testAddingSmallIncrementingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 305: public function testAddingMediumIncrementingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 305: public function testAddingMediumIncrementingID() - line 307: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 308: $blueprint->mediumIncrements('id'); - line 309: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 305: public function testAddingMediumIncrementingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 315: public function testAddingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 315: public function testAddingID() - line 317: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 318: $blueprint->id(); - line 319: $statements = $blueprint->toSql(); - line 324: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 325: $blueprint->id('foo'); - line 326: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 315: public function testAddingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 332: public function testAddingForeignID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 332: public function testAddingForeignID() - line 334: $connection = $this->getConnection(); - line 341: $foreignId = $blueprint->foreignId('foo'); - line 342: $blueprint->foreignId('company_id')->constrained(); - line 343: $blueprint->foreignId('laravel_idea_id')->constrained(); - line 344: $blueprint->foreignId('team_id')->references('id')->on('teams'); - line 345: $blueprint->foreignId('team_column_id')->constrained('teams'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 332: public function testAddingForeignID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 375: public function testAddingForeignIdSpecifyingIndexNameInConstraint() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 375: public function testAddingForeignIdSpecifyingIndexNameInConstraint() - line 377: $connection = $this->getConnection(); - line 384: $blueprint->foreignId('company_id')->constrained(indexName: 'my_index'); - line 386: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 375: public function testAddingForeignIdSpecifyingIndexNameInConstraint() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 397: public function testAddingBigIncrementingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 397: public function testAddingBigIncrementingID() - line 399: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 400: $blueprint->bigIncrements('id'); - line 401: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 397: public function testAddingBigIncrementingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 407: public function testAddingString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 407: public function testAddingString() - line 409: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 410: $blueprint->string('foo'); - line 411: $statements = $blueprint->toSql(); - line 416: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 417: $blueprint->string('foo', 100); - line 418: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 407: public function testAddingString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 431: public function testAddingText() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 431: public function testAddingText() - line 433: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 434: $blueprint->text('foo'); - line 435: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 431: public function testAddingText() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 441: public function testAddingBigInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 441: public function testAddingBigInteger() - line 443: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 444: $blueprint->bigInteger('foo'); - line 445: $statements = $blueprint->toSql(); - line 450: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 451: $blueprint->bigInteger('foo', true); - line 452: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 441: public function testAddingBigInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 458: public function testAddingInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 458: public function testAddingInteger() - line 460: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 461: $blueprint->integer('foo'); - line 462: $statements = $blueprint->toSql(); - line 467: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 468: $blueprint->integer('foo', true); - line 469: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 458: public function testAddingInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 475: public function testAddingMediumInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 475: public function testAddingMediumInteger() - line 477: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 478: $blueprint->mediumInteger('foo'); - line 479: $statements = $blueprint->toSql(); - line 484: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 485: $blueprint->mediumInteger('foo', true); - line 486: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 475: public function testAddingMediumInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 492: public function testAddingTinyInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 492: public function testAddingTinyInteger() - line 494: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 495: $blueprint->tinyInteger('foo'); - line 496: $statements = $blueprint->toSql(); - line 501: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 502: $blueprint->tinyInteger('foo', true); - line 503: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 492: public function testAddingTinyInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 509: public function testAddingSmallInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 509: public function testAddingSmallInteger() - line 511: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 512: $blueprint->smallInteger('foo'); - line 513: $statements = $blueprint->toSql(); - line 518: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 519: $blueprint->smallInteger('foo', true); - line 520: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 509: public function testAddingSmallInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 526: public function testAddingFloat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 526: public function testAddingFloat() - line 528: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 529: $blueprint->float('foo', 5); - line 530: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 526: public function testAddingFloat() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 536: public function testAddingDouble() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 536: public function testAddingDouble() - line 538: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 539: $blueprint->double('foo'); - line 540: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 536: public function testAddingDouble() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 546: public function testAddingDecimal() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 546: public function testAddingDecimal() - line 548: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 549: $blueprint->decimal('foo', 5, 2); - line 550: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 546: public function testAddingDecimal() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 556: public function testAddingBoolean() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 556: public function testAddingBoolean() - line 558: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 559: $blueprint->boolean('foo'); - line 560: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 556: public function testAddingBoolean() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 566: public function testAddingEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 566: public function testAddingEnum() - line 568: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 569: $blueprint->enum('role', ['member', 'admin']); - line 570: $blueprint->enum('status', Foo::cases()); - line 571: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 566: public function testAddingEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 578: public function testAddingJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 578: public function testAddingJson() - line 580: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 581: $blueprint->json('foo'); - line 582: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 578: public function testAddingJson() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 588: public function testAddingNativeJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 588: public function testAddingNativeJson() - line 590: $connection = m::mock(Connection::class); - line 594: ->shouldReceive('getSchemaGrammar')->andReturn($this->getGrammar($connection)) - line 600: $blueprint->json('foo'); - line 601: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 590: $connection = m::mock(Connection::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 588: public function testAddingNativeJson() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 607: public function testAddingJsonb() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 607: public function testAddingJsonb() - line 609: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 610: $blueprint->jsonb('foo'); - line 611: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 607: public function testAddingJsonb() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 617: public function testAddingNativeJsonb() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 617: public function testAddingNativeJsonb() - line 619: $connection = m::mock(Connection::class); - line 623: ->shouldReceive('getSchemaGrammar')->andReturn($this->getGrammar($connection)) - line 629: $blueprint->jsonb('foo'); - line 630: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 619: $connection = m::mock(Connection::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 617: public function testAddingNativeJsonb() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 636: public function testAddingDate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 636: public function testAddingDate() - line 638: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 639: $blueprint->date('foo'); - line 640: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 636: public function testAddingDate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 646: public function testAddingDateWithDefaultCurrent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 646: public function testAddingDateWithDefaultCurrent() - line 648: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 649: $blueprint->date('foo')->useCurrent(); - line 650: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 646: public function testAddingDateWithDefaultCurrent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 656: public function testAddingYear() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 656: public function testAddingYear() - line 658: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 659: $blueprint->year('birth_year'); - line 660: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 656: public function testAddingYear() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 665: public function testAddingYearWithDefaultCurrent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 665: public function testAddingYearWithDefaultCurrent() - line 667: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 668: $blueprint->year('birth_year')->useCurrent(); - line 669: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 665: public function testAddingYearWithDefaultCurrent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 674: public function testAddingDateTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 674: public function testAddingDateTime() - line 676: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 677: $blueprint->dateTime('created_at'); - line 678: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 674: public function testAddingDateTime() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 683: public function testAddingDateTimeWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 683: public function testAddingDateTimeWithPrecision() - line 685: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 686: $blueprint->dateTime('created_at', 1); - line 687: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 683: public function testAddingDateTimeWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 692: public function testAddingDateTimeTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 692: public function testAddingDateTimeTz() - line 694: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 695: $blueprint->dateTimeTz('created_at'); - line 696: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 692: public function testAddingDateTimeTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 701: public function testAddingDateTimeTzWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 701: public function testAddingDateTimeTzWithPrecision() - line 703: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 704: $blueprint->dateTimeTz('created_at', 1); - line 705: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 701: public function testAddingDateTimeTzWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 710: public function testAddingTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 710: public function testAddingTime() - line 712: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 713: $blueprint->time('created_at'); - line 714: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 710: public function testAddingTime() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 719: public function testAddingTimeWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 719: public function testAddingTimeWithPrecision() - line 721: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 722: $blueprint->time('created_at', 1); - line 723: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 719: public function testAddingTimeWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 728: public function testAddingTimeTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 728: public function testAddingTimeTz() - line 730: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 731: $blueprint->timeTz('created_at'); - line 732: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 728: public function testAddingTimeTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 737: public function testAddingTimeTzWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 737: public function testAddingTimeTzWithPrecision() - line 739: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 740: $blueprint->timeTz('created_at', 1); - line 741: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 737: public function testAddingTimeTzWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 746: public function testAddingTimestamp() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 746: public function testAddingTimestamp() - line 748: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 749: $blueprint->timestamp('created_at'); - line 750: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 746: public function testAddingTimestamp() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 755: public function testAddingTimestampWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 755: public function testAddingTimestampWithPrecision() - line 757: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 758: $blueprint->timestamp('created_at', 1); - line 759: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 755: public function testAddingTimestampWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 764: public function testAddingTimestampTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 764: public function testAddingTimestampTz() - line 766: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 767: $blueprint->timestampTz('created_at'); - line 768: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 764: public function testAddingTimestampTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 773: public function testAddingTimestampTzWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 773: public function testAddingTimestampTzWithPrecision() - line 775: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 776: $blueprint->timestampTz('created_at', 1); - line 777: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 773: public function testAddingTimestampTzWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 782: public function testAddingTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 782: public function testAddingTimestamps() - line 784: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 785: $blueprint->timestamps(); - line 786: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 782: public function testAddingTimestamps() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 794: public function testAddingTimestampsTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 794: public function testAddingTimestampsTz() - line 796: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 797: $blueprint->timestampsTz(); - line 798: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 794: public function testAddingTimestampsTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 806: public function testAddingRememberToken() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 806: public function testAddingRememberToken() - line 808: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 809: $blueprint->rememberToken(); - line 810: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 806: public function testAddingRememberToken() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 816: public function testAddingBinary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 816: public function testAddingBinary() - line 818: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 819: $blueprint->binary('foo'); - line 820: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 816: public function testAddingBinary() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 826: public function testAddingUuid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 826: public function testAddingUuid() - line 828: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 829: $blueprint->uuid('foo'); - line 830: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 826: public function testAddingUuid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 836: public function testAddingUuidDefaultsColumnName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 836: public function testAddingUuidDefaultsColumnName() - line 838: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 839: $blueprint->uuid(); - line 840: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 836: public function testAddingUuidDefaultsColumnName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 846: public function testAddingForeignUuid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 846: public function testAddingForeignUuid() - line 848: $connection = $this->getConnection(); - line 855: $foreignUuid = $blueprint->foreignUuid('foo'); - line 856: $blueprint->foreignUuid('company_id')->constrained(); - line 857: $blueprint->foreignUuid('laravel_idea_id')->constrained(); - line 858: $blueprint->foreignUuid('team_id')->references('id')->on('teams'); - line 859: $blueprint->foreignUuid('team_column_id')->constrained('teams'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 846: public function testAddingForeignUuid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 889: public function testAddingIpAddress() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 889: public function testAddingIpAddress() - line 891: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 892: $blueprint->ipAddress('foo'); - line 893: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 889: public function testAddingIpAddress() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 899: public function testAddingIpAddressDefaultsColumnName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 899: public function testAddingIpAddressDefaultsColumnName() - line 901: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 902: $blueprint->ipAddress(); - line 903: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 899: public function testAddingIpAddressDefaultsColumnName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 909: public function testAddingMacAddress() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 909: public function testAddingMacAddress() - line 911: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 912: $blueprint->macAddress('foo'); - line 913: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 909: public function testAddingMacAddress() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 919: public function testAddingMacAddressDefaultsColumnName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 919: public function testAddingMacAddressDefaultsColumnName() - line 921: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 922: $blueprint->macAddress(); - line 923: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 919: public function testAddingMacAddressDefaultsColumnName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 929: public function testAddingGeometry() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 929: public function testAddingGeometry() - line 931: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 932: $blueprint->geometry('coordinates'); - line 933: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 929: public function testAddingGeometry() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 939: public function testAddingGeneratedColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 939: public function testAddingGeneratedColumn() - line 941: $blueprint = new Blueprint($this->getConnection(), 'products'); - line 942: $blueprint->create(); - line 943: $blueprint->integer('price'); - line 944: $blueprint->integer('discounted_virtual')->virtualAs('"price" - 5'); - line 945: $blueprint->integer('discounted_stored')->storedAs('"price" - 5'); - line 946: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 939: public function testAddingGeneratedColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 966: public function testAddingGeneratedColumnByExpression() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 966: public function testAddingGeneratedColumnByExpression() - line 968: $blueprint = new Blueprint($this->getConnection(), 'products'); - line 969: $blueprint->create(); - line 970: $blueprint->integer('price'); - line 971: $blueprint->integer('discounted_virtual')->virtualAs(new Expression('"price" - 5')); - line 972: $blueprint->integer('discounted_stored')->storedAs(new Expression('"price" - 5')); - line 973: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 966: public function testAddingGeneratedColumnByExpression() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 979: public function testGrammarsAreMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 979: public function testGrammarsAreMacroable() - line 982: $this->getGrammar()::macro('compileReplace', function () { - line 986: $c = $this->getGrammar()::compileReplace(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 991: public function testCreateTableWithVirtualAsColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 991: public function testCreateTableWithVirtualAsColumn() - line 993: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 994: $blueprint->create(); - line 995: $blueprint->string('my_column'); - line 996: $blueprint->string('my_other_column')->virtualAs('my_column'); - line 998: $statements = $blueprint->toSql(); - line 1003: $blueprint = new Blueprint($this->getConnection(), 'users'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 991: public function testCreateTableWithVirtualAsColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1024: public function testCreateTableWithVirtualAsColumnWhenJsonColumnHasArrayKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1024: public function testCreateTableWithVirtualAsColumnWhenJsonColumnHasArrayKey() - line 1026: $conn = $this->getConnection(); - line 1030: $blueprint->create(); - line 1031: $blueprint->string('my_json_column')->virtualAsJson('my_json_column->foo[0][1]'); - line 1033: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1024: public function testCreateTableWithVirtualAsColumnWhenJsonColumnHasArrayKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1039: public function testCreateTableWithStoredAsColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 1039: public function testCreateTableWithStoredAsColumn() - line 1041: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 1042: $blueprint->create(); - line 1043: $blueprint->string('my_column'); - line 1044: $blueprint->string('my_other_column')->storedAs('my_column'); - line 1046: $statements = $blueprint->toSql(); - line 1051: $blueprint = new Blueprint($this->getConnection(), 'users'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1039: public function testCreateTableWithStoredAsColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1072: public function testDroppingColumnsWorks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1072: public function testDroppingColumnsWorks() - line 1074: $blueprint = new Blueprint($this->getConnection(), 'users', function ($table) { - line 1078: $this->assertEquals(['alter table "users" drop column "name"'], $blueprint->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1081: public function testRenamingAndChangingColumnsWork() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1081: public function testRenamingAndChangingColumnsWork() - line 1084: ->makePartial() - line 1093: $connection = $this->getConnection(builder: $builder); - line 1097: $blueprint->renameColumn('name', 'first_name'); - line 1098: $blueprint->integer('age')->change(); - line 1106: ], $blueprint->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1083: $builder = mock(SQLiteBuilder::class) - Test @ line 1109: public function testRenamingAndChangingColumnsWorkWithSchema() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1109: public function testRenamingAndChangingColumnsWorkWithSchema() - line 1112: ->makePartial() - line 1121: $connection = $this->getConnection(builder: $builder); - line 1125: $blueprint->renameColumn('name', 'first_name'); - line 1126: $blueprint->integer('age')->change(); - line 1134: ], $blueprint->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1111: $builder = mock(SQLiteBuilder::class) ❌ tests/Database/DatabaseSqlServerQueryGrammarTest.php - Test @ line 17: public function testToRawSql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 17: public function testToRawSql() - line 19: $connection = m::mock(Connection::class); - line 23: $query = $grammar->substituteBindingsIntoRawSql( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 19: $connection = m::mock(Connection::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 17: public function testToRawSql() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/DatabaseSqlServerSchemaGrammarTest.php - Test @ line 22: public function testBasicCreateTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 22: public function testBasicCreateTable() - line 24: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 25: $blueprint->create(); - line 26: $blueprint->increments('id'); - line 27: $blueprint->string('email'); - line 28: $statements = $blueprint->toSql(); - line 33: $blueprint = new Blueprint($this->getConnection(), 'users'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 22: public function testBasicCreateTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 55: public function testCreateTemporaryTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 55: public function testCreateTemporaryTable() - line 57: $connection = $this->getConnection(); - line 60: $blueprint->create(); - line 61: $blueprint->temporary(); - line 62: $blueprint->increments('id'); - line 63: $blueprint->string('email'); - line 64: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 55: public function testCreateTemporaryTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 70: public function testCreateTemporaryTableWithPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 70: public function testCreateTemporaryTableWithPrefix() - line 72: $connection = $this->getConnection(prefix: 'prefix_'); - line 74: $blueprint->create(); - line 75: $blueprint->temporary(); - line 76: $blueprint->increments('id'); - line 77: $blueprint->string('email'); - line 78: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 70: public function testCreateTemporaryTableWithPrefix() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 84: public function testDropTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 84: public function testDropTable() - line 86: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 87: $blueprint->drop(); - line 88: $statements = $blueprint->toSql(); - line 93: $conn = $this->getConnection(prefix: 'prefix_'); - line 95: $blueprint->drop(); - line 96: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 84: public function testDropTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 102: public function testDropTableIfExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 102: public function testDropTableIfExists() - line 104: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 105: $blueprint->dropIfExists(); - line 106: $statements = $blueprint->toSql(); - line 111: $conn = $this->getConnection(prefix: 'prefix_'); - line 113: $blueprint->dropIfExists(); - line 114: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 102: public function testDropTableIfExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 120: public function testDropColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 120: public function testDropColumn() - line 122: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 123: $blueprint->dropColumn('foo'); - line 124: $statements = $blueprint->toSql(); - line 129: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 130: $blueprint->dropColumn(['foo', 'bar']); - line 131: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 120: public function testDropColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 144: public function testDropColumnDropsCreatesSqlToDropDefaultConstraints() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 144: public function testDropColumnDropsCreatesSqlToDropDefaultConstraints() - line 146: $blueprint = new Blueprint($this->getConnection(), 'foo'); - line 147: $blueprint->dropColumn('bar'); - line 148: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 144: public function testDropColumnDropsCreatesSqlToDropDefaultConstraints() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 154: public function testDropPrimary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 154: public function testDropPrimary() - line 156: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 157: $blueprint->dropPrimary('foo'); - line 158: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 154: public function testDropPrimary() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 164: public function testDropUnique() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 164: public function testDropUnique() - line 166: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 167: $blueprint->dropUnique('foo'); - line 168: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 164: public function testDropUnique() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 174: public function testDropIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 174: public function testDropIndex() - line 176: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 177: $blueprint->dropIndex('foo'); - line 178: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 174: public function testDropIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 184: public function testDropSpatialIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 184: public function testDropSpatialIndex() - line 186: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 187: $blueprint->dropSpatialIndex(['coordinates']); - line 188: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 184: public function testDropSpatialIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 194: public function testDropForeign() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 194: public function testDropForeign() - line 196: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 197: $blueprint->dropForeign('foo'); - line 198: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 194: public function testDropForeign() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 204: public function testDropConstrainedForeignId() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 204: public function testDropConstrainedForeignId() - line 206: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 207: $blueprint->dropConstrainedForeignId('foo'); - line 208: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 204: public function testDropConstrainedForeignId() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 215: public function testDropTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 215: public function testDropTimestamps() - line 217: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 218: $blueprint->dropTimestamps(); - line 219: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 215: public function testDropTimestamps() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 225: public function testDropTimestampsTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 225: public function testDropTimestampsTz() - line 227: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 228: $blueprint->dropTimestampsTz(); - line 229: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 225: public function testDropTimestampsTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 235: public function testDropMorphs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 235: public function testDropMorphs() - line 237: $blueprint = new Blueprint($this->getConnection(), 'photos'); - line 238: $blueprint->dropMorphs('imageable'); - line 239: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 235: public function testDropMorphs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 246: public function testRenameTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 246: public function testRenameTable() - line 248: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 249: $blueprint->rename('foo'); - line 250: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 246: public function testRenameTable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 256: public function testRenameIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 256: public function testRenameIndex() - line 258: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 259: $blueprint->renameIndex('foo', 'bar'); - line 260: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 256: public function testRenameIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 266: public function testAddingPrimaryKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 266: public function testAddingPrimaryKey() - line 268: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 269: $blueprint->primary('foo', 'bar'); - line 270: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 266: public function testAddingPrimaryKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 276: public function testAddingUniqueKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 276: public function testAddingUniqueKey() - line 278: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 279: $blueprint->unique('foo', 'bar'); - line 280: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 276: public function testAddingUniqueKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 286: public function testAddingUniqueKeyOnline() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 286: public function testAddingUniqueKeyOnline() - line 288: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 289: $blueprint->unique('foo', 'bar')->online(); - line 290: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 286: public function testAddingUniqueKeyOnline() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 296: public function testAddingIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 296: public function testAddingIndex() - line 298: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 299: $blueprint->index(['foo', 'bar'], 'baz'); - line 300: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 296: public function testAddingIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 306: public function testAddingIndexOnline() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 306: public function testAddingIndexOnline() - line 308: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 309: $blueprint->index(['foo', 'bar'], 'baz')->online(); - line 310: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 306: public function testAddingIndexOnline() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 316: public function testAddingSpatialIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 316: public function testAddingSpatialIndex() - line 318: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 319: $blueprint->spatialIndex('coordinates'); - line 320: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 316: public function testAddingSpatialIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 326: public function testAddingFluentSpatialIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 326: public function testAddingFluentSpatialIndex() - line 328: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 329: $blueprint->geometry('coordinates', 'point')->spatialIndex(); - line 330: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 326: public function testAddingFluentSpatialIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 336: public function testAddingRawIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 336: public function testAddingRawIndex() - line 338: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 339: $blueprint->rawIndex('(function(column))', 'raw_index'); - line 340: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 336: public function testAddingRawIndex() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 346: public function testAddingIncrementingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 346: public function testAddingIncrementingID() - line 348: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 349: $blueprint->increments('id'); - line 350: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 346: public function testAddingIncrementingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 356: public function testAddingSmallIncrementingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 356: public function testAddingSmallIncrementingID() - line 358: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 359: $blueprint->smallIncrements('id'); - line 360: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 356: public function testAddingSmallIncrementingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 366: public function testAddingMediumIncrementingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 366: public function testAddingMediumIncrementingID() - line 368: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 369: $blueprint->mediumIncrements('id'); - line 370: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 366: public function testAddingMediumIncrementingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 376: public function testAddingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 376: public function testAddingID() - line 378: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 379: $blueprint->id(); - line 380: $statements = $blueprint->toSql(); - line 385: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 386: $blueprint->id('foo'); - line 387: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 376: public function testAddingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 393: public function testAddingForeignID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 393: public function testAddingForeignID() - line 395: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 396: $foreignId = $blueprint->foreignId('foo'); - line 397: $blueprint->foreignId('company_id')->constrained(); - line 398: $blueprint->foreignId('laravel_idea_id')->constrained(); - line 399: $blueprint->foreignId('team_id')->references('id')->on('teams'); - line 400: $blueprint->foreignId('team_column_id')->constrained('teams'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 393: public function testAddingForeignID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 418: public function testAddingForeignIdSpecifyingIndexNameInConstraint() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 418: public function testAddingForeignIdSpecifyingIndexNameInConstraint() - line 420: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 421: $blueprint->foreignId('company_id')->constrained(indexName: 'my_index'); - line 422: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 418: public function testAddingForeignIdSpecifyingIndexNameInConstraint() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 429: public function testAddingBigIncrementingID() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 429: public function testAddingBigIncrementingID() - line 431: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 432: $blueprint->bigIncrements('id'); - line 433: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 429: public function testAddingBigIncrementingID() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 439: public function testAddingString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 439: public function testAddingString() - line 441: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 442: $blueprint->string('foo'); - line 443: $statements = $blueprint->toSql(); - line 448: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 449: $blueprint->string('foo', 100); - line 450: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 439: public function testAddingString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 463: public function testAddingText() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 463: public function testAddingText() - line 465: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 466: $blueprint->text('foo'); - line 467: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 463: public function testAddingText() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 473: public function testAddingBigInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 473: public function testAddingBigInteger() - line 475: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 476: $blueprint->bigInteger('foo'); - line 477: $statements = $blueprint->toSql(); - line 482: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 483: $blueprint->bigInteger('foo', true); - line 484: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 473: public function testAddingBigInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 490: public function testAddingInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 490: public function testAddingInteger() - line 492: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 493: $blueprint->integer('foo'); - line 494: $statements = $blueprint->toSql(); - line 499: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 500: $blueprint->integer('foo', true); - line 501: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 490: public function testAddingInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 507: public function testAddingMediumInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 507: public function testAddingMediumInteger() - line 509: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 510: $blueprint->mediumInteger('foo'); - line 511: $statements = $blueprint->toSql(); - line 516: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 517: $blueprint->mediumInteger('foo', true); - line 518: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 507: public function testAddingMediumInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 524: public function testAddingTinyInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 524: public function testAddingTinyInteger() - line 526: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 527: $blueprint->tinyInteger('foo'); - line 528: $statements = $blueprint->toSql(); - line 533: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 534: $blueprint->tinyInteger('foo', true); - line 535: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 524: public function testAddingTinyInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 541: public function testAddingSmallInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 541: public function testAddingSmallInteger() - line 543: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 544: $blueprint->smallInteger('foo'); - line 545: $statements = $blueprint->toSql(); - line 550: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 551: $blueprint->smallInteger('foo', true); - line 552: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 541: public function testAddingSmallInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 558: public function testAddingFloat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 558: public function testAddingFloat() - line 560: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 561: $blueprint->float('foo', 5); - line 562: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 558: public function testAddingFloat() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 568: public function testAddingDouble() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 568: public function testAddingDouble() - line 570: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 571: $blueprint->double('foo'); - line 572: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 568: public function testAddingDouble() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 578: public function testAddingDecimal() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 578: public function testAddingDecimal() - line 580: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 581: $blueprint->decimal('foo', 5, 2); - line 582: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 578: public function testAddingDecimal() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 588: public function testAddingBoolean() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 588: public function testAddingBoolean() - line 590: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 591: $blueprint->boolean('foo'); - line 592: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 588: public function testAddingBoolean() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 598: public function testAddingEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 598: public function testAddingEnum() - line 600: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 601: $blueprint->enum('role', ['member', 'admin']); - line 602: $blueprint->enum('status', Foo::cases()); - line 603: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 598: public function testAddingEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 610: public function testAddingJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 610: public function testAddingJson() - line 612: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 613: $blueprint->json('foo'); - line 614: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 610: public function testAddingJson() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 620: public function testAddingJsonb() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 620: public function testAddingJsonb() - line 622: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 623: $blueprint->jsonb('foo'); - line 624: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 620: public function testAddingJsonb() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 630: public function testAddingDate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 630: public function testAddingDate() - line 632: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 633: $blueprint->date('foo'); - line 634: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 630: public function testAddingDate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 640: public function testAddingDateWithDefaultCurrent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 640: public function testAddingDateWithDefaultCurrent() - line 642: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 643: $blueprint->date('foo')->useCurrent(); - line 644: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 640: public function testAddingDateWithDefaultCurrent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 650: public function testAddingYear() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 650: public function testAddingYear() - line 652: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 653: $blueprint->year('birth_year'); - line 654: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 650: public function testAddingYear() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 659: public function testAddingYearWithDefaultCurrent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 659: public function testAddingYearWithDefaultCurrent() - line 661: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 662: $blueprint->year('birth_year')->useCurrent(); - line 663: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 659: public function testAddingYearWithDefaultCurrent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 668: public function testAddingDateTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 668: public function testAddingDateTime() - line 670: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 671: $blueprint->dateTime('created_at'); - line 672: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 668: public function testAddingDateTime() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 677: public function testAddingDateTimeWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 677: public function testAddingDateTimeWithPrecision() - line 679: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 680: $blueprint->dateTime('created_at', 1); - line 681: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 677: public function testAddingDateTimeWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 686: public function testAddingDateTimeTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 686: public function testAddingDateTimeTz() - line 688: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 689: $blueprint->dateTimeTz('foo'); - line 690: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 686: public function testAddingDateTimeTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 695: public function testAddingDateTimeTzWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 695: public function testAddingDateTimeTzWithPrecision() - line 697: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 698: $blueprint->dateTimeTz('foo', 1); - line 699: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 695: public function testAddingDateTimeTzWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 704: public function testAddingTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 704: public function testAddingTime() - line 706: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 707: $blueprint->time('created_at'); - line 708: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 704: public function testAddingTime() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 713: public function testAddingTimeWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 713: public function testAddingTimeWithPrecision() - line 715: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 716: $blueprint->time('created_at', 1); - line 717: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 713: public function testAddingTimeWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 722: public function testAddingTimeTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 722: public function testAddingTimeTz() - line 724: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 725: $blueprint->timeTz('created_at'); - line 726: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 722: public function testAddingTimeTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 731: public function testAddingTimeTzWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 731: public function testAddingTimeTzWithPrecision() - line 733: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 734: $blueprint->timeTz('created_at', 1); - line 735: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 731: public function testAddingTimeTzWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 740: public function testAddingTimestamp() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 740: public function testAddingTimestamp() - line 742: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 743: $blueprint->timestamp('created_at'); - line 744: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 740: public function testAddingTimestamp() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 749: public function testAddingTimestampWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 749: public function testAddingTimestampWithPrecision() - line 751: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 752: $blueprint->timestamp('created_at', 1); - line 753: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 749: public function testAddingTimestampWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 758: public function testAddingTimestampTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 758: public function testAddingTimestampTz() - line 760: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 761: $blueprint->timestampTz('created_at'); - line 762: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 758: public function testAddingTimestampTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 767: public function testAddingTimestampTzWithPrecision() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 767: public function testAddingTimestampTzWithPrecision() - line 769: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 770: $blueprint->timestampTz('created_at', 1); - line 771: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 767: public function testAddingTimestampTzWithPrecision() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 776: public function testAddingTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 776: public function testAddingTimestamps() - line 778: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 779: $blueprint->timestamps(); - line 780: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 776: public function testAddingTimestamps() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 788: public function testAddingTimestampsTz() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 788: public function testAddingTimestampsTz() - line 790: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 791: $blueprint->timestampsTz(); - line 792: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 788: public function testAddingTimestampsTz() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 800: public function testAddingRememberToken() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 800: public function testAddingRememberToken() - line 802: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 803: $blueprint->rememberToken(); - line 804: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 800: public function testAddingRememberToken() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 810: public function testAddingBinary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 810: public function testAddingBinary() - line 812: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 813: $blueprint->binary('foo'); - line 814: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 810: public function testAddingBinary() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 820: public function testAddingUuid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 820: public function testAddingUuid() - line 822: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 823: $blueprint->uuid('foo'); - line 824: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 820: public function testAddingUuid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 830: public function testAddingUuidDefaultsColumnName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 830: public function testAddingUuidDefaultsColumnName() - line 832: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 833: $blueprint->uuid(); - line 834: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 830: public function testAddingUuidDefaultsColumnName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 840: public function testAddingForeignUuid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 840: public function testAddingForeignUuid() - line 842: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 843: $foreignId = $blueprint->foreignUuid('foo'); - line 844: $blueprint->foreignUuid('company_id')->constrained(); - line 845: $blueprint->foreignUuid('laravel_idea_id')->constrained(); - line 846: $blueprint->foreignUuid('team_id')->references('id')->on('teams'); - line 847: $blueprint->foreignUuid('team_column_id')->constrained('teams'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 840: public function testAddingForeignUuid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 865: public function testAddingIpAddress() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 865: public function testAddingIpAddress() - line 867: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 868: $blueprint->ipAddress('foo'); - line 869: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 865: public function testAddingIpAddress() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 875: public function testAddingIpAddressDefaultsColumnName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 875: public function testAddingIpAddressDefaultsColumnName() - line 877: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 878: $blueprint->ipAddress(); - line 879: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 875: public function testAddingIpAddressDefaultsColumnName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 885: public function testAddingMacAddress() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 885: public function testAddingMacAddress() - line 887: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 888: $blueprint->macAddress('foo'); - line 889: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 885: public function testAddingMacAddress() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 895: public function testAddingMacAddressDefaultsColumnName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 895: public function testAddingMacAddressDefaultsColumnName() - line 897: $blueprint = new Blueprint($this->getConnection(), 'users'); - line 898: $blueprint->macAddress(); - line 899: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 895: public function testAddingMacAddressDefaultsColumnName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 905: public function testAddingGeometry() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 905: public function testAddingGeometry() - line 907: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 908: $blueprint->geometry('coordinates'); - line 909: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 905: public function testAddingGeometry() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 915: public function testAddingGeography() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 915: public function testAddingGeography() - line 917: $blueprint = new Blueprint($this->getConnection(), 'geo'); - line 918: $blueprint->geography('coordinates'); - line 919: $statements = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 915: public function testAddingGeography() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 925: public function testAddingGeneratedColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 925: public function testAddingGeneratedColumn() - line 927: $blueprint = new Blueprint($this->getConnection(), 'products'); - line 928: $blueprint->integer('price'); - line 929: $blueprint->computed('discounted_virtual', 'price - 5'); - line 930: $blueprint->computed('discounted_stored', 'price - 5')->persisted(); - line 931: $statements = $blueprint->toSql(); - line 939: $blueprint = new Blueprint($this->getConnection(), 'products'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 925: public function testAddingGeneratedColumn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 952: public function testGrammarsAreMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 952: public function testGrammarsAreMacroable() - line 955: $this->getGrammar()::macro('compileReplace', function () { - line 959: $c = $this->getGrammar()::compileReplace(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 974: public function testCreateDatabase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 974: public function testCreateDatabase() - line 976: $statement = $this->getGrammar()->compileCreateDatabase('my_database_a'); - line 983: $statement = $this->getGrammar()->compileCreateDatabase('my_database_b'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 991: public function testDropDatabaseIfExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 991: public function testDropDatabaseIfExists() - line 993: $statement = $this->getGrammar()->compileDropDatabaseIfExists('my_database_a'); - line 1000: $statement = $this->getGrammar()->compileDropDatabaseIfExists('my_database_b'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseTransactionsManagerTest.php - Test @ line 10: public function testBeginningTransactions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 10: public function testBeginningTransactions() - line 14: $manager->begin('default', 1); - line 15: $manager->begin('default', 2); - line 16: $manager->begin('admin', 1); - line 18: $this->assertCount(3, $manager->getPendingTransactions()); - line 19: $this->assertSame('default', $manager->getPendingTransactions()[0]->connection); - line 20: $this->assertEquals(1, $manager->getPendingTransactions()[0]->level); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 27: public function testRollingBackTransactions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 27: public function testRollingBackTransactions() - line 31: $manager->begin('default', 1); - line 32: $manager->begin('default', 2); - line 33: $manager->begin('admin', 1); - line 35: $manager->rollback('default', 1); - line 37: $this->assertCount(2, $manager->getPendingTransactions()); - line 39: $this->assertSame('default', $manager->getPendingTransactions()[0]->connection); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 46: public function testRollingBackTransactionsAllTheWay() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 46: public function testRollingBackTransactionsAllTheWay() - line 50: $manager->begin('default', 1); - line 51: $manager->begin('default', 2); - line 52: $manager->begin('admin', 1); - line 54: $manager->rollback('default', 0); - line 56: $this->assertCount(1, $manager->getPendingTransactions()); - line 58: $this->assertSame('admin', $manager->getPendingTransactions()[0]->connection); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 62: public function testCommittingTransactions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 62: public function testCommittingTransactions() - line 66: $manager->begin('default', 1); - line 67: $manager->begin('default', 2); - line 68: $manager->begin('admin', 1); - line 69: $manager->begin('admin', 2); - line 71: $manager->commit('default', 2, 1); - line 72: $executedTransactions = $manager->commit('default', 1, 0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 89: public function testCallbacksAreAddedToTheCurrentTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 89: public function testCallbacksAreAddedToTheCurrentTransaction() - line 95: $manager->begin('default', 1); - line 97: $manager->addCallback(function () use (&$callbacks) { - line 100: $manager->begin('default', 2); - line 102: $manager->begin('admin', 1); - line 104: $manager->addCallback(function () use (&$callbacks) { - line 107: $this->assertCount(1, $manager->getPendingTransactions()[0]->getCallbacks()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 112: public function testCallbacksRunInFifoOrder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 112: public function testCallbacksRunInFifoOrder() - line 118: $manager->begin('default', 1); - line 120: $manager->addCallback(function () use (&$order) { - line 124: $manager->addCallback(function () use (&$order) { - line 128: $manager->addCallback(function () use (&$order) { - line 132: $manager->commit('default', 1, 0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 112: public function testCallbacksRunInFifoOrder() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 137: public function testCommittingTransactionsExecutesCallbacks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 137: public function testCommittingTransactionsExecutesCallbacks() - line 143: $manager->begin('default', 1); - line 145: $manager->addCallback(function () use (&$callbacks) { - line 149: $manager->begin('default', 2); - line 151: $manager->addCallback(function () use (&$callbacks) { - line 155: $manager->begin('admin', 1); - line 157: $manager->commit('default', 2, 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 137: public function testCommittingTransactionsExecutesCallbacks() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 165: public function testCommittingExecutesOnlyCallbacksOfTheConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 165: public function testCommittingExecutesOnlyCallbacksOfTheConnection() - line 171: $manager->begin('default', 1); - line 173: $manager->addCallback(function () use (&$callbacks) { - line 177: $manager->begin('default', 2); - line 178: $manager->begin('admin', 1); - line 180: $manager->addCallback(function () use (&$callbacks) { - line 184: $manager->commit('default', 2, 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 165: public function testCommittingExecutesOnlyCallbacksOfTheConnection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 191: public function testCallbackIsExecutedIfNoTransactions() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 191: public function testCallbackIsExecutedIfNoTransactions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 205: public function testCallbacksForRollbackAreAddedToTheCurrentTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 205: public function testCallbacksForRollbackAreAddedToTheCurrentTransaction() - line 211: $manager->begin('default', 1); - line 213: $manager->addCallbackForRollback(function () use (&$callbacks) { - line 216: $manager->begin('default', 2); - line 218: $manager->begin('admin', 1); - line 220: $manager->addCallbackForRollback(function () use (&$callbacks) { - line 223: $this->assertCount(1, $manager->getPendingTransactions()[0]->getCallbacksForRollback()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 228: public function testRollbackTransactionsExecutesCallbacks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 228: public function testRollbackTransactionsExecutesCallbacks() - line 234: $manager->begin('default', 1); - line 236: $manager->addCallbackForRollback(function () use (&$callbacks) { - line 240: $manager->begin('default', 2); - line 242: $manager->addCallbackForRollback(function () use (&$callbacks) { - line 246: $manager->begin('admin', 1); - line 248: $manager->rollback('default', 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 228: public function testRollbackTransactionsExecutesCallbacks() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 256: public function testRollbackExecutesOnlyCallbacksOfTheConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 256: public function testRollbackExecutesOnlyCallbacksOfTheConnection() - line 262: $manager->begin('default', 1); - line 264: $manager->addCallbackForRollback(function () use (&$callbacks) { - line 268: $manager->begin('default', 2); - line 269: $manager->begin('admin', 1); - line 271: $manager->addCallbackForRollback(function () use (&$callbacks) { - line 275: $manager->rollback('default', 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 256: public function testRollbackExecutesOnlyCallbacksOfTheConnection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 282: public function testCallbackForRollbackIsNotExecutedIfNoTransactions() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 282: public function testCallbackForRollbackIsNotExecutedIfNoTransactions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 295: public function testStageTransactions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 295: public function testStageTransactions() - line 299: $manager->begin('default', 1); - line 300: $manager->begin('admin', 1); - line 302: $this->assertCount(2, $manager->getPendingTransactions()); - line 304: $pendingTransactions = $manager->getPendingTransactions(); - line 311: $manager->stageTransactions('default', 1); - line 313: $this->assertCount(1, $manager->getPendingTransactions()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 324: public function testStageTransactionsOnlyStagesTheTransactionsAtOrAboveTheGivenLevel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 324: public function testStageTransactionsOnlyStagesTheTransactionsAtOrAboveTheGivenLevel() - line 328: $manager->begin('default', 1); - line 329: $manager->begin('default', 2); - line 330: $manager->begin('default', 3); - line 331: $manager->stageTransactions('default', 2); - line 333: $this->assertCount(1, $manager->getPendingTransactions()); - line 334: $this->assertCount(2, $manager->getCommittedTransactions()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/DatabaseTransactionsTest.php - Test @ line 63: public function testTransactionIsRecordedAndCommitted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 63: public function testTransactionIsRecordedAndCommitted() - line 65: $transactionManager = m::mock(new DatabaseTransactionsManager); - line 69: $this->connection()->setTransactionManager($transactionManager); - line 71: $this->connection()->table('users')->insert([ - line 75: $this->connection()->transaction(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 63: public function testTransactionIsRecordedAndCommitted() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 82: public function testTransactionIsRecordedAndCommittedUsingTheSeparateMethods() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 82: public function testTransactionIsRecordedAndCommittedUsingTheSeparateMethods() - line 84: $transactionManager = m::mock(new DatabaseTransactionsManager); - line 88: $this->connection()->setTransactionManager($transactionManager); - line 90: $this->connection()->table('users')->insert([ - line 94: $this->connection()->beginTransaction(); - line 95: $this->connection()->table('users')->where(['name' => 'zain'])->update([ - line 98: $this->connection()->commit(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 82: public function testTransactionIsRecordedAndCommittedUsingTheSeparateMethods() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 101: public function testNestedTransactionIsRecordedAndCommitted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 101: public function testNestedTransactionIsRecordedAndCommitted() - line 103: $transactionManager = m::mock(new DatabaseTransactionsManager); - line 109: $this->connection()->setTransactionManager($transactionManager); - line 111: $this->connection()->table('users')->insert([ - line 115: $this->connection()->transaction(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 101: public function testNestedTransactionIsRecordedAndCommitted() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 128: public function testNestedTransactionIsRecordeForDifferentConnectionsdAndCommitted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 128: public function testNestedTransactionIsRecordeForDifferentConnectionsdAndCommitted() - line 130: $transactionManager = m::mock(new DatabaseTransactionsManager); - line 138: $this->connection()->setTransactionManager($transactionManager); - line 139: $this->connection('second_connection')->setTransactionManager($transactionManager); - line 141: $this->connection()->table('users')->insert([ - line 145: $this->connection()->transaction(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 128: public function testNestedTransactionIsRecordeForDifferentConnectionsdAndCommitted() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 164: public function testTransactionIsRolledBack() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 164: public function testTransactionIsRolledBack() - line 166: $transactionManager = m::mock(new DatabaseTransactionsManager); - line 169: $transactionManager->shouldNotReceive('commit'); - line 171: $this->connection()->setTransactionManager($transactionManager); - line 173: $this->connection()->table('users')->insert([ - line 178: $this->connection()->transaction(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 164: public function testTransactionIsRolledBack() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 189: public function testTransactionIsRolledBackUsingSeparateMethods() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 189: public function testTransactionIsRolledBackUsingSeparateMethods() - line 191: $transactionManager = m::mock(new DatabaseTransactionsManager); - line 194: $transactionManager->shouldNotReceive('commit', 1, 0); - line 196: $this->connection()->setTransactionManager($transactionManager); - line 198: $this->connection()->table('users')->insert([ - line 202: $this->connection()->beginTransaction(); - line 204: $this->connection()->table('users')->where(['name' => 'zain'])->update([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 189: public function testTransactionIsRolledBackUsingSeparateMethods() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 211: public function testNestedTransactionsAreRolledBack() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 211: public function testNestedTransactionsAreRolledBack() - line 213: $transactionManager = m::mock(new DatabaseTransactionsManager); - line 218: $transactionManager->shouldNotReceive('commit'); - line 220: $this->connection()->setTransactionManager($transactionManager); - line 222: $this->connection()->table('users')->insert([ - line 227: $this->connection()->transaction(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 211: public function testNestedTransactionsAreRolledBack() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/EloquentModelCustomCastingTest.php - Test @ line 84: public function testSavingCastedAttributesToDatabase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 84: public function testSavingCastedAttributesToDatabase() - line 87: $model = CustomCasts::create([ - line 93: $this->assertSame('address_line_one_value', $model->getOriginal('address_line_one')); - line 94: $this->assertSame('address_line_one_value', $model->getAttribute('address_line_one')); - line 96: $this->assertSame('address_line_two_value', $model->getOriginal('address_line_two')); - line 97: $this->assertSame('address_line_two_value', $model->getAttribute('address_line_two')); - line 99: $this->assertSame('1000', $model->getRawOriginal('amount')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 121: public function testInvalidArgumentExceptionOnInvalidValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 121: public function testInvalidArgumentExceptionOnInvalidValue() - line 124: $model = CustomCasts::create([ - line 130: $this->expectException(InvalidArgumentException::class); - line 131: $this->expectExceptionMessage('The given value is not an Address instance.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 140: public function testInvalidArgumentExceptionOnNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 140: public function testInvalidArgumentExceptionOnNull() - line 143: $model = CustomCasts::create([ - line 149: $this->expectException(InvalidArgumentException::class); - line 150: $this->expectExceptionMessage('The given value is not an Address instance.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 159: public function testModelsWithCustomCastsCanBeConvertedToArrays() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 159: public function testModelsWithCustomCastsCanBeConvertedToArrays() - line 162: $model = CustomCasts::create([ - line 174: 'updated_at' => $model->updated_at->toJSON(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 180: public function testModelWithCustomCastsWorkWithCustomIncrementDecrement() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 180: public function testModelWithCustomCastsWorkWithCustomIncrementDecrement() - line 184: $model->save(); - line 189: $model->increment('amount', new Euro('1')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 180: public function testModelWithCustomCastsWorkWithCustomIncrementDecrement() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 193: public function testModelWithCustomCastsCompareFunction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 193: public function testModelWithCustomCastsCompareFunction() - line 198: $model->setRawAttributes(['document' => '{"content": "content", "title": "hello world"}']); - line 199: $model->save(); - line 207: $this->assertFalse($model->isDirty('document')); - line 209: $this->assertTrue($model->isDirty('document')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 221: public function testModelWithCustomCastsCanBeGuardedAgainstMassAssigned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 221: public function testModelWithCustomCastsCanBeGuardedAgainstMassAssigned() - line 223: Person::preventSilentlyDiscardingAttributes(); - line 224: $this->expectException(MassAssignmentException::class); - line 227: $model->guard(['address']); - line 228: $model->create(['id' => 1, 'address' => new AddressDto('123 Main St.', 'Anytown, USA')]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 221: public function testModelWithCustomCastsCanBeGuardedAgainstMassAssigned() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/PruneCommandTest.php - Test @ line 53: public function testPrunableModelWithPrunableRecords() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 53: public function testPrunableModelWithPrunableRecords() - line 54: { - line 57: $output = $output->fetch(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 80: public function testPrunableTestModelWithoutPrunableRecords() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 80: public function testPrunableTestModelWithoutPrunableRecords() - line 81: { - line 86: $output->fetch() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 90: public function testPrunableSoftDeletedModelWithPrunableRecords() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 90: public function testPrunableSoftDeletedModelWithPrunableRecords() - line 93: $db->addConnection([ - line 97: $db->bootEloquent(); - line 98: $db->setAsGlobal(); - line 99: DB::connection('default')->getSchemaBuilder()->create('prunables', function ($table) { - line 103: DB::connection('default')->table('prunables')->insert([ - line 108: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 127: public function testNonPrunableTest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 127: public function testNonPrunableTest() - line 128: { - line 133: $output->fetch(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 137: public function testNonPrunableTestWithATrait() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 137: public function testNonPrunableTestWithATrait() - line 138: { - line 143: $output->fetch(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 147: public function testNonModelFilesAreIgnoredTest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 147: public function testNonModelFilesAreIgnoredTest() - line 148: { - line 151: $output = $output->fetch(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 169: public function testTheCommandMayBePretended() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 169: public function testTheCommandMayBePretended() - line 172: $db->addConnection([ - line 176: $db->bootEloquent(); - line 177: $db->setAsGlobal(); - line 178: DB::connection('default')->getSchemaBuilder()->create('prunables', function ($table) { - line 182: DB::connection('default')->table('prunables')->insert([ - line 188: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 203: public function testTheCommandMayBePretendedOnSoftDeletedModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 203: public function testTheCommandMayBePretendedOnSoftDeletedModel() - line 206: $db->addConnection([ - line 210: $db->bootEloquent(); - line 211: $db->setAsGlobal(); - line 212: DB::connection('default')->getSchemaBuilder()->create('prunables', function ($table) { - line 216: DB::connection('default')->table('prunables')->insert([ - line 221: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 236: public function testTheCommandDispatchesEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 236: public function testTheCommandDispatchesEvents() - line 238: $dispatcher = m::mock(DispatcherContract::class); - line 240: $dispatcher->shouldReceive('dispatch')->once()->withArgs(function ($event) { - line 246: $dispatcher->shouldReceive('dispatch')->once()->withArgs(function ($event) { - line 252: Application::getInstance()->instance(DispatcherContract::class, $dispatcher); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 238: $dispatcher = m::mock(DispatcherContract::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 236: public function testTheCommandDispatchesEvents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/QueryDurationThresholdTest.php - Test @ line 27: public function testItCanHandleReachingADurationThresholdInTheDb() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 27: public function testItCanHandleReachingADurationThresholdInTheDb() - line 30: $connection->setEventDispatcher(new Dispatcher()); - line 32: $connection->whenQueryingForLongerThan(CarbonInterval::milliseconds(1.1), function () use (&$called) { - line 36: $connection->logQuery('xxxx', [], 1.0); - line 37: $connection->logQuery('xxxx', [], 0.1); - line 40: $connection->logQuery('xxxx', [], 0.1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 27: public function testItCanHandleReachingADurationThresholdInTheDb() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 44: public function testItIsOnlyCalledOnce() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 44: public function testItIsOnlyCalledOnce() - line 47: $connection->setEventDispatcher(new Dispatcher()); - line 49: $connection->whenQueryingForLongerThan(CarbonInterval::milliseconds(1), function () use (&$called) { - line 53: $connection->logQuery('xxxx', [], 1); - line 54: $connection->logQuery('xxxx', [], 1); - line 55: $connection->logQuery('xxxx', [], 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 44: public function testItIsOnlyCalledOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 60: public function testItIsOnlyCalledOnceWhenGivenDateTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 60: public function testItIsOnlyCalledOnceWhenGivenDateTime() - line 65: $connection->setEventDispatcher(new Dispatcher()); - line 67: $connection->whenQueryingForLongerThan($this->now->addMilliseconds(1), function () use (&$called) { - line 71: $connection->logQuery('xxxx', [], 1); - line 72: $connection->logQuery('xxxx', [], 1); - line 73: $connection->logQuery('xxxx', [], 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 60: public function testItIsOnlyCalledOnceWhenGivenDateTime() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 78: public function testItCanSpecifyMultipleHandlersWithTheSameIntervals() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 78: public function testItCanSpecifyMultipleHandlersWithTheSameIntervals() - line 81: $connection->setEventDispatcher(new Dispatcher()); - line 83: $connection->whenQueryingForLongerThan(CarbonInterval::milliseconds(1), function () use (&$called) { - line 86: $connection->whenQueryingForLongerThan(CarbonInterval::milliseconds(1), function () use (&$called) { - line 90: $connection->logQuery('xxxx', [], 1); - line 91: $connection->logQuery('xxxx', [], 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 78: public function testItCanSpecifyMultipleHandlersWithTheSameIntervals() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 99: public function testItCanSpecifyMultipleHandlersWithDifferentIntervals() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 99: public function testItCanSpecifyMultipleHandlersWithDifferentIntervals() - line 102: $connection->setEventDispatcher(new Dispatcher()); - line 104: $connection->whenQueryingForLongerThan(CarbonInterval::milliseconds(1), function () use (&$called) { - line 107: $connection->whenQueryingForLongerThan(CarbonInterval::milliseconds(2), function () use (&$called) { - line 111: $connection->logQuery('xxxx', [], 1); - line 112: $connection->logQuery('xxxx', [], 1); - line 117: $connection->logQuery('xxxx', [], 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 99: public function testItCanSpecifyMultipleHandlersWithDifferentIntervals() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 124: public function testItHasAccessToConnectionInHandler() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 124: public function testItHasAccessToConnectionInHandler() - line 127: $connection->setEventDispatcher(new Dispatcher()); - line 129: $connection->whenQueryingForLongerThan(CarbonInterval::milliseconds(1), function ($connection) use (&$name) { - line 133: $connection->logQuery('xxxx', [], 1); - line 134: $connection->logQuery('xxxx', [], 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 139: public function testItHasSpecifyThresholdWithFloat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 139: public function testItHasSpecifyThresholdWithFloat() - line 142: $connection->setEventDispatcher(new Dispatcher()); - line 144: $connection->whenQueryingForLongerThan(1.1, function () use (&$called) { - line 148: $connection->logQuery('xxxx', [], 1.1); - line 151: $connection->logQuery('xxxx', [], 0.1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 139: public function testItHasSpecifyThresholdWithFloat() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 155: public function testItHasSpecifyThresholdWithInt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 155: public function testItHasSpecifyThresholdWithInt() - line 158: $connection->setEventDispatcher(new Dispatcher()); - line 160: $connection->whenQueryingForLongerThan(2, function () use (&$called) { - line 164: $connection->logQuery('xxxx', [], 1.1); - line 167: $connection->logQuery('xxxx', [], 1.0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 155: public function testItHasSpecifyThresholdWithInt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 171: public function testItCanResetTotalQueryDuration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 171: public function testItCanResetTotalQueryDuration() - line 174: $connection->setEventDispatcher(new Dispatcher()); - line 176: $connection->logQuery('xxxx', [], 1.1); - line 177: $this->assertSame(1.1, $connection->totalQueryDuration()); - line 178: $connection->logQuery('xxxx', [], 1.1); - line 179: $this->assertSame(2.2, $connection->totalQueryDuration()); - line 181: $connection->resetTotalQueryDuration(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 185: public function testItCanRestoreAlreadyRunHandlers() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 185: public function testItCanRestoreAlreadyRunHandlers() - line 188: $connection->setEventDispatcher(new Dispatcher()); - line 190: $connection->whenQueryingForLongerThan(CarbonInterval::milliseconds(1), function () use (&$called) { - line 194: $connection->logQuery('xxxx', [], 1); - line 195: $connection->logQuery('xxxx', [], 1); - line 196: $connection->logQuery('xxxx', [], 1); - line 199: $connection->allowQueryDurationHandlersToRunAgain(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 185: public function testItCanRestoreAlreadyRunHandlers() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 212: public function testItCanAccessAllQueriesWhenQueryLoggingIsActive() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 212: public function testItCanAccessAllQueriesWhenQueryLoggingIsActive() - line 215: $connection->setEventDispatcher(new Dispatcher()); - line 216: $connection->enableQueryLog(); - line 218: $connection->whenQueryingForLongerThan(CarbonInterval::milliseconds(2), function ($connection, $event) use (&$queries) { - line 223: $connection->logQuery('foo', [], 1); - line 224: $connection->logQuery('bar', [], 1); - line 225: $connection->logQuery('baz', [], 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Database/SeedCommandTest.php - Test @ line 24: public function testHandle() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 24: public function testHandle() - line 30: $seeder = m::mock(Seeder::class); - line 31: $seeder->shouldReceive('setContainer')->once()->andReturnSelf(); - line 32: $seeder->shouldReceive('setCommand')->once()->andReturnSelf(); - line 52: $command->setLaravel($container); - line 55: $command->run($input, $output); - line 58: $container->shouldHaveReceived('call')->with([$command, 'handle']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 30: $seeder = m::mock(Seeder::class); - line 35: $resolver = m::mock(ConnectionResolverInterface::class); - line 39: $container = m::mock(Container::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 24: public function testHandle() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 61: public function testWithoutModelEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 61: public function testWithoutModelEvents() - line 73: $seeder = m::mock($instance); - line 74: $seeder->shouldReceive('setContainer')->once()->andReturnSelf(); - line 75: $seeder->shouldReceive('setCommand')->once()->andReturnSelf(); - line 94: $command->setLaravel($container); - line 99: $command->run($input, $output); - line 104: $container->shouldHaveReceived('call')->with([$command, 'handle']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 77: $resolver = m::mock(ConnectionResolverInterface::class); - line 81: $container = m::mock(Container::class); - line 96: Model::setEventDispatcher($dispatcher = m::mock(Dispatcher::class)); - Test @ line 107: public function testProhibitable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 107: public function testProhibitable() - line 113: $resolver = m::mock(ConnectionResolverInterface::class); - line 126: $command->setLaravel($container); - line 129: $command->run($input, $output); - line 131: SeedCommand::prohibit(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 113: $resolver = m::mock(ConnectionResolverInterface::class); - line 115: $container = m::mock(Container::class); ❌ tests/Database/SqlServerBuilderTest.php - Test @ line 18: public function testCreateDatabase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 18: public function testCreateDatabase() - line 20: $connection = m::mock(Connection::class); - line 29: $builder->createDatabase('my_temporary_database_a'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 20: $connection = m::mock(Connection::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 18: public function testCreateDatabase() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 32: public function testDropDatabaseIfExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 32: public function testDropDatabaseIfExists() - line 34: $connection = m::mock(Connection::class); - line 44: $builder->dropDatabaseIfExists('my_temporary_database_b'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 34: $connection = m::mock(Connection::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 32: public function testDropDatabaseIfExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Database/TableGuesserTest.php - Test @ line 10: public function testMigrationIsProperlyParsed() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 10: public function testMigrationIsProperlyParsed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 33: public function testMigrationIsProperlyParsedWithoutTableSuffix() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 33: public function testMigrationIsProperlyParsedWithoutTableSuffix() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Encryption/EncrypterTest.php - Test @ line 33: public function testRawStringEncryption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 33: public function testRawStringEncryption() - line 36: $encrypted = $e->encryptString('foo'); - line 38: $this->assertSame('foo', $e->decryptString($encrypted)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 41: public function testRawStringEncryptionWithPreviousKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 41: public function testRawStringEncryptionWithPreviousKeys() - line 44: $previousValue = $previous->encryptString('foo'); - line 47: $new->previousKeys([str_repeat('b', 16)]); - line 49: $decrypted = $new->decryptString($previousValue); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 41: public function testRawStringEncryptionWithPreviousKeys() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 53: public function testItValidatesMacOnPerKeyBasis() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 53: public function testItValidatesMacOnPerKeyBasis() - line 61: $new->previousKeys([str_repeat('b', 16)]); - line 62: $this->assertSame('foo', $new->decryptString($encrypted)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 65: public function testEncryptionUsingBase64EncodedKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 65: public function testEncryptionUsingBase64EncodedKey() - line 68: $encrypted = $e->encrypt('foo'); - line 70: $this->assertSame('foo', $e->decrypt($encrypted)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 73: public function testEncryptedLengthIsFixed() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 73: public function testEncryptedLengthIsFixed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 83: public function testWithCustomCipher() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 83: public function testWithCustomCipher() - line 86: $encrypted = $e->encrypt('bar'); - line 88: $this->assertSame('bar', $e->decrypt($encrypted)); - line 91: $encrypted = $e->encrypt('foo'); - line 93: $this->assertSame('foo', $e->decrypt($encrypted)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 96: public function testCipherNamesCanBeMixedCase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 96: public function testCipherNamesCanBeMixedCase() - line 99: $encrypted = $upper->encrypt('bar'); - line 103: $this->assertSame('bar', $lower->decrypt($encrypted)); - line 106: $this->assertSame('bar', $mixed->decrypt($encrypted)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 109: public function testThatAnAeadCipherIncludesTag() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 109: public function testThatAnAeadCipherIncludesTag() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 119: public function testThatAnAeadTagMustBeProvidedInFullLength() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 119: public function testThatAnAeadTagMustBeProvidedInFullLength() - line 122: $encrypted = $e->encrypt('foo'); - line 125: $this->expectException(DecryptException::class); - line 126: $this->expectExceptionMessage('Could not decrypt the data.'); - line 130: $e->decrypt($encrypted); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 119: public function testThatAnAeadTagMustBeProvidedInFullLength() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 133: public function testThatAnAeadTagCantBeModified() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 133: public function testThatAnAeadTagCantBeModified() - line 136: $encrypted = $e->encrypt('foo'); - line 139: $this->expectException(DecryptException::class); - line 140: $this->expectExceptionMessage('Could not decrypt the data.'); - line 144: $e->decrypt($encrypted); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 133: public function testThatAnAeadTagCantBeModified() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 147: public function testThatANonAeadCipherIncludesMac() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 147: public function testThatANonAeadCipherIncludesMac() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 157: public function testDoNoAllowLongerKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 157: public function testDoNoAllowLongerKey() - line 159: $this->expectException(RuntimeException::class); - line 160: $this->expectExceptionMessage('Unsupported cipher or incorrect key length. Supported ciphers are: aes-128-cbc, aes-256-cbc, aes-128-gcm, aes-256-gcm.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 157: public function testDoNoAllowLongerKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 165: public function testWithBadKeyLength() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 165: public function testWithBadKeyLength() - line 167: $this->expectException(RuntimeException::class); - line 168: $this->expectExceptionMessage('Unsupported cipher or incorrect key length. Supported ciphers are: aes-128-cbc, aes-256-cbc, aes-128-gcm, aes-256-gcm.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 165: public function testWithBadKeyLength() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 173: public function testWithBadKeyLengthAlternativeCipher() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 173: public function testWithBadKeyLengthAlternativeCipher() - line 175: $this->expectException(RuntimeException::class); - line 176: $this->expectExceptionMessage('Unsupported cipher or incorrect key length. Supported ciphers are: aes-128-cbc, aes-256-cbc, aes-128-gcm, aes-256-gcm.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 173: public function testWithBadKeyLengthAlternativeCipher() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 181: public function testWithUnsupportedCipher() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 181: public function testWithUnsupportedCipher() - line 183: $this->expectException(RuntimeException::class); - line 184: $this->expectExceptionMessage('Unsupported cipher or incorrect key length. Supported ciphers are: aes-128-cbc, aes-256-cbc, aes-128-gcm, aes-256-gcm.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 181: public function testWithUnsupportedCipher() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 189: public function testExceptionThrownWhenPayloadIsInvalid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 189: public function testExceptionThrownWhenPayloadIsInvalid() - line 191: $this->expectException(DecryptException::class); - line 192: $this->expectExceptionMessage('The payload is invalid.'); - line 195: $payload = $e->encrypt('foo'); - line 197: $e->decrypt($payload); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 189: public function testExceptionThrownWhenPayloadIsInvalid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 200: public function testDecryptionExceptionIsThrownWhenUnexpectedTagIsAdded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 200: public function testDecryptionExceptionIsThrownWhenUnexpectedTagIsAdded() - line 202: $this->expectException(DecryptException::class); - line 203: $this->expectExceptionMessage('Unable to use tag because the cipher algorithm does not support AEAD.'); - line 206: $payload = $e->encrypt('foo'); - line 209: $e->decrypt(base64_encode(json_encode($decodedPayload))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 200: public function testDecryptionExceptionIsThrownWhenUnexpectedTagIsAdded() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 212: public function testExceptionThrownWithDifferentKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 212: public function testExceptionThrownWithDifferentKey() - line 214: $this->expectException(DecryptException::class); - line 215: $this->expectExceptionMessage('The MAC is invalid.'); - line 219: $b->decrypt($a->encrypt('baz')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 212: public function testExceptionThrownWithDifferentKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 222: public function testExceptionThrownWhenIvIsTooLong() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 222: public function testExceptionThrownWhenIvIsTooLong() - line 224: $this->expectException(DecryptException::class); - line 225: $this->expectExceptionMessage('The payload is invalid.'); - line 228: $payload = $e->encrypt('foo'); - line 233: $e->decrypt($modified_payload); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 222: public function testExceptionThrownWhenIvIsTooLong() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 264: public function testTamperedPayloadWillGetRejected($payload) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 264: public function testTamperedPayloadWillGetRejected($payload) - line 266: $this->expectException(DecryptException::class); - line 267: $this->expectExceptionMessage('The payload is invalid.'); - line 270: $enc->decrypt(base64_encode(json_encode($payload))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 264: public function testTamperedPayloadWillGetRejected($payload) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Events/BroadcastedEventsTest.php - Test @ line 19: public function testShouldBroadcastSuccess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 19: public function testShouldBroadcastSuccess() - line 21: $d = m::mock(Dispatcher::class); - line 23: $d->makePartial()->shouldAllowMockingProtectedMethods(); - line 27: $this->assertTrue($d->shouldBroadcast([$event])); - line 31: $this->assertTrue($d->shouldBroadcast([$event])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 21: $d = m::mock(Dispatcher::class); - Test @ line 34: public function testShouldBroadcastAsQueuedAndCallNormalListeners() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 34: public function testShouldBroadcastAsQueuedAndCallNormalListeners() - line 37: $d = new Dispatcher($container = m::mock(Container::class)); - line 42: $d->listen(AlwaysBroadcastEvent::class, function ($payload) { - line 44: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 43: $_SERVER['__event.test'] = $payload; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 36: unset($_SERVER['__event.test']); - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 37: $d = new Dispatcher($container = m::mock(Container::class)); - line 38: $broadcast = m::mock(BroadcastFactory::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function testShouldBroadcastAsQueuedAndCallNormalListeners() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 51: public function testShouldBroadcastFail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 51: public function testShouldBroadcastFail() - line 53: $d = m::mock(Dispatcher::class); - line 55: $d->makePartial()->shouldAllowMockingProtectedMethods(); - line 59: $this->assertFalse($d->shouldBroadcast([$event])); - line 63: $this->assertFalse($d->shouldBroadcast([$event])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 53: $d = m::mock(Dispatcher::class); - Test @ line 66: public function testBroadcastWithMultipleChannels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 66: public function testBroadcastWithMultipleChannels() - line 68: $d = new Dispatcher($container = m::mock(Container::class)); - line 79: }; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 68: $d = new Dispatcher($container = m::mock(Container::class)); - line 69: $broadcast = m::mock(BroadcastFactory::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 66: public function testBroadcastWithMultipleChannels() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 84: public function testBroadcastWithCustomConnectionName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 84: public function testBroadcastWithCustomConnectionName() - line 86: $d = new Dispatcher($container = m::mock(Container::class)); - line 99: }; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 86: $d = new Dispatcher($container = m::mock(Container::class)); - line 87: $broadcast = m::mock(BroadcastFactory::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 84: public function testBroadcastWithCustomConnectionName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 104: public function testBroadcastWithCustomEventName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 104: public function testBroadcastWithCustomEventName() - line 106: $d = new Dispatcher($container = m::mock(Container::class)); - line 122: }; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 106: $d = new Dispatcher($container = m::mock(Container::class)); - line 107: $broadcast = m::mock(BroadcastFactory::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 104: public function testBroadcastWithCustomEventName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 127: public function testBroadcastWithCustomPayload() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 127: public function testBroadcastWithCustomPayload() - line 129: $d = new Dispatcher($container = m::mock(Container::class)); - line 147: }; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 129: $d = new Dispatcher($container = m::mock(Container::class)); - line 130: $broadcast = m::mock(BroadcastFactory::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 127: public function testBroadcastWithCustomPayload() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Events/EventsDispatcherTest.php - Test @ line 19: public function testBasicEventExecution() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 19: public function testBasicEventExecution() - line 23: $d->listen('foo', function ($foo) { - line 25: }); - line 32: $d->listen('foo', function ($foo) { - line 34: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 24: $_SERVER['__event.test'] = $foo; - line 33: $_SERVER['__event.test'] .= $foo; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 21: unset($_SERVER['__event.test']); - Test @ line 40: public function testDeferEventExecution() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 40: public function testDeferEventExecution() - line 44: $d->listen('foo', function ($foo) { - line 46: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 45: $_SERVER['__event.test'] = $foo; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 42: unset($_SERVER['__event.test']); - Test @ line 59: public function testDeferMultipleEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 59: public function testDeferMultipleEvents() - line 63: $d->listen('foo', function ($value) { - line 66: $d->listen('bar', function ($value) { - line 68: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 61: $_SERVER['__event.test'] = []; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 59: public function testDeferMultipleEvents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 78: public function testDeferNestedEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 78: public function testDeferNestedEvents() - line 82: $d->listen('foo', function ($foo) { - line 84: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 80: $_SERVER['__event.test'] = []; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 78: public function testDeferNestedEvents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 101: public function testDeferSpecificEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 101: public function testDeferSpecificEvents() - line 106: $d->listen('foo', function ($foo) { - line 110: $d->listen('bar', function ($bar) { - line 112: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 103: $_SERVER['__event.test'] = []; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 101: public function testDeferSpecificEvents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 124: public function testDeferSpecificNestedEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 124: public function testDeferSpecificNestedEvents() - line 129: $d->listen('foo', function ($foo) { - line 133: $d->listen('bar', function ($bar) { - line 135: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 126: $_SERVER['__event.test'] = []; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 124: public function testDeferSpecificNestedEvents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 156: public function testDeferSpecificObjectEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 156: public function testDeferSpecificObjectEvents() - line 161: $d->listen(DeferTestEvent::class, function () { - line 165: $d->listen(ImmediateTestEvent::class, function () { - line 167: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 158: $_SERVER['__event.test'] = []; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 156: public function testDeferSpecificObjectEvents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 179: public function testHaltingEventExecution() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 179: public function testHaltingEventExecution() - line 183: $d->listen('foo', function ($foo) { - line 188: $d->listen('foo', function ($foo) { - line 190: }); - line 195: $response = $d->until('foo', ['bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 181: unset($_SERVER['__event.test']); - Test @ line 199: public function testResponseWhenNoListenersAreSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 199: public function testResponseWhenNoListenersAreSet() - line 201: $d = new Dispatcher; - line 204: $this->assertEquals([], $response); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 210: public function testReturningFalseStopsPropagation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 210: public function testReturningFalseStopsPropagation() - line 214: $d->listen('foo', function ($foo) { - line 218: $d->listen('foo', function ($foo) { - line 224: $d->listen('foo', function ($foo) { - line 226: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 219: $_SERVER['__event.test'] = $foo; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 212: unset($_SERVER['__event.test']); - Test @ line 234: public function testReturningFalsyValuesContinuesPropagation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 234: public function testReturningFalsyValuesContinuesPropagation() - line 238: $d->listen('foo', function () { - line 241: $d->listen('foo', function () { - line 244: $d->listen('foo', function () { - line 247: $d->listen('foo', function () { - line 248: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 236: unset($_SERVER['__event.test']); - Test @ line 255: public function testContainerResolutionOfEventHandlers() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 255: public function testContainerResolutionOfEventHandlers() - line 257: $d = new Dispatcher($container = m::mock(Container::class)); - line 259: $d->listen('foo', TestEventListener::class.'@onFooEvent'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 257: $d = new Dispatcher($container = m::mock(Container::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 255: public function testContainerResolutionOfEventHandlers() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 265: public function testContainerResolutionOfEventHandlersWithDefaultMethods() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 265: public function testContainerResolutionOfEventHandlersWithDefaultMethods() - line 268: $d->listen('foo', TestEventListener::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 273: public function testQueuedEventsAreFired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 273: public function testQueuedEventsAreFired() - line 277: $d->listen('update', function ($name) { - line 280: $d->push('update', ['name' => 'taylor']); - line 281: $d->listen('update', function ($name) { - line 286: $d->flush('update'); - line 287: $d->listen('update', function ($name) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 278: $_SERVER['__event.test'] = $name; - line 282: $_SERVER['__event.test'] .= '_'.$name; - line 288: $_SERVER['__event.test'] .= $name; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 275: unset($_SERVER['__event.test']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 273: public function testQueuedEventsAreFired() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 293: public function testQueuedEventsCanBeForgotten() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 293: public function testQueuedEventsCanBeForgotten() - line 297: $d->push('update', ['name' => 'taylor']); - line 298: $d->listen('update', function ($name) { - line 302: $d->forgetPushed(); - line 303: $d->flush('update'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 295: $_SERVER['__event.test'] = 'unset'; - line 299: $_SERVER['__event.test'] = $name; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 293: public function testQueuedEventsCanBeForgotten() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 307: public function testMultiplePushedEventsWillGetFlushed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 307: public function testMultiplePushedEventsWillGetFlushed() - line 311: $d->push('update', ['name' => 'taylor ']); - line 312: $d->push('update', ['name' => 'otwell']); - line 313: $d->listen('update', function ($name) { - line 317: $d->flush('update'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 309: $_SERVER['__event.test'] = ''; - line 314: $_SERVER['__event.test'] .= $name; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 307: public function testMultiplePushedEventsWillGetFlushed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 321: public function testPushMethodCanAcceptObjectAsPayload() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 321: public function testPushMethodCanAcceptObjectAsPayload() - line 325: $d->push(ExampleEvent::class, $e = new ExampleEvent); - line 326: $d->listen(ExampleEvent::class, function ($payload) { - line 330: $d->flush(ExampleEvent::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 327: $_SERVER['__event.test'] = $payload; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 323: unset($_SERVER['__event.test']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 321: public function testPushMethodCanAcceptObjectAsPayload() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 335: public function testWildcardListeners() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 335: public function testWildcardListeners() - line 339: $d->listen('foo.bar', function () { - line 342: $d->listen('foo.*', function () { - line 345: $d->listen('bar.*', function () { - line 347: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 340: $_SERVER['__event.test'] = 'regular'; - line 343: $_SERVER['__event.test'] = 'wildcard'; - line 346: $_SERVER['__event.test'] = 'nope'; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 337: unset($_SERVER['__event.test']); - Test @ line 355: public function testWildcardListenersWithResponses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 355: public function testWildcardListenersWithResponses() - line 359: $d->listen('foo.bar', function () { - line 362: $d->listen('foo.*', function () { - line 365: $d->listen('bar.*', function () { - line 367: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 357: unset($_SERVER['__event.test']); - Test @ line 374: public function testWildcardListenersCacheFlushing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 374: public function testWildcardListenersCacheFlushing() - line 378: $d->listen('foo.*', function () { - line 380: }); - line 384: $d->listen('foo.*', function () { - line 386: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 379: $_SERVER['__event.test'] = 'cached_wildcard'; - line 385: $_SERVER['__event.test'] = 'new_wildcard'; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 376: unset($_SERVER['__event.test']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 374: public function testWildcardListenersCacheFlushing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 391: public function testListenersCanBeRemoved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 391: public function testListenersCanBeRemoved() - line 395: $d->listen('foo', function () { - line 398: $d->forget('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 396: $_SERVER['__event.test'] = 'foo'; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 393: unset($_SERVER['__event.test']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 391: public function testListenersCanBeRemoved() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 404: public function testWildcardListenersCanBeRemoved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 404: public function testWildcardListenersCanBeRemoved() - line 408: $d->listen('foo.*', function () { - line 411: $d->forget('foo.*'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 409: $_SERVER['__event.test'] = 'foo'; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 406: unset($_SERVER['__event.test']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 404: public function testWildcardListenersCanBeRemoved() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 417: public function testWildcardCacheIsClearedWhenListenersAreRemoved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 417: public function testWildcardCacheIsClearedWhenListenersAreRemoved() - line 422: $d->listen('foo*', function () { - line 424: }); - line 431: $d->forget('foo*'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 423: $_SERVER['__event.test'] = 'foo'; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 419: unset($_SERVER['__event.test']); - line 429: unset($_SERVER['__event.test']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 417: public function testWildcardCacheIsClearedWhenListenersAreRemoved() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 437: public function testHasWildcardListeners() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 437: public function testHasWildcardListeners() - line 440: $d->listen('foo', 'listener1'); - line 441: $this->assertFalse($d->hasWildcardListeners('foo')); - line 443: $d->listen('foo*', 'listener1'); - line 444: $this->assertTrue($d->hasWildcardListeners('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 447: public function testListenersCanBeFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 447: public function testListenersCanBeFound() - line 450: $this->assertFalse($d->hasListeners('foo')); - line 452: $d->listen('foo', function () { - line 455: $this->assertTrue($d->hasListeners('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 458: public function testWildcardListenersCanBeFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 458: public function testWildcardListenersCanBeFound() - line 461: $this->assertFalse($d->hasListeners('foo.*')); - line 463: $d->listen('foo.*', function () { - line 466: $this->assertTrue($d->hasListeners('foo.*')); - line 467: $this->assertTrue($d->hasListeners('foo.bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 470: public function testEventPassedFirstToWildcards() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 470: public function testEventPassedFirstToWildcards() - line 473: $d->listen('foo.*', function ($event, $data) { - line 476: }); - line 480: $d->listen('foo.bar', function ($first, $second) { - line 483: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 470: public function testEventPassedFirstToWildcards() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 487: public function testClassesWork() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 487: public function testClassesWork() - line 491: $d->listen(ExampleEvent::class, function () { - line 493: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 492: $_SERVER['__event.test'] = 'baz'; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 489: unset($_SERVER['__event.test']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 487: public function testClassesWork() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 499: public function testClassesWorkWithAnonymousListeners() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 499: public function testClassesWorkWithAnonymousListeners() - line 503: $d->listen(function (ExampleEvent $event) { - line 505: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 504: $_SERVER['__event.test'] = 'qux'; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 501: unset($_SERVER['__event.test']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 499: public function testClassesWorkWithAnonymousListeners() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 511: public function testEventClassesArePayload() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 511: public function testEventClassesArePayload() - line 515: $d->listen(ExampleEvent::class, function ($payload) { - line 517: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 516: $_SERVER['__event.test'] = $payload; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 513: unset($_SERVER['__event.test']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 511: public function testEventClassesArePayload() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 523: public function testInterfacesWork() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 523: public function testInterfacesWork() - line 527: $d->listen(SomeEventInterface::class, function () { - line 529: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 528: $_SERVER['__event.test'] = 'bar'; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 525: unset($_SERVER['__event.test']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 523: public function testInterfacesWork() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 535: public function testBothClassesAndInterfacesWork() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 535: public function testBothClassesAndInterfacesWork() - line 540: $d->listen(AnotherEvent::class, function ($p) { - line 544: $d->listen(SomeEventInterface::class, function ($p) { - line 547: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 538: $_SERVER['__event.test'] = []; - line 542: $_SERVER['__event.test1'] = 'fooo'; - line 546: $_SERVER['__event.test2'] = 'baar'; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 537: unset($_SERVER['__event.test']); - line 555: unset($_SERVER['__event.test1'], $_SERVER['__event.test2']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 535: public function testBothClassesAndInterfacesWork() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 558: public function testNestedEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 558: public function testNestedEvent() - line 563: $d->listen('event', function () use ($d) { - line 570: }); - line 573: $this->assertSame([], $_SERVER['__event.test']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 560: $_SERVER['__event.test'] = []; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 558: public function testNestedEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 578: public function testDuplicateListenersWillFire() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 578: public function testDuplicateListenersWillFire() - line 581: $d->listen('event', TestListener::class); - line 582: $d->listen('event', TestListener::class); - line 583: $d->listen('event', TestListener::class.'@handle'); - line 584: $d->listen('event', TestListener::class.'@handle'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 578: public function testDuplicateListenersWillFire() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 591: public function testGetListeners() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 591: public function testGetListeners() - line 594: $d->listen(ExampleEvent::class, 'Listener1'); - line 595: $d->listen(ExampleEvent::class, 'Listener2'); - line 596: $listeners = $d->getListeners(ExampleEvent::class); - line 599: $d->listen(ExampleEvent::class, 'Listener3'); - line 600: $listeners = $d->getListeners(ExampleEvent::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 604: public function testListenersObjectsCreationOrder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 604: public function testListenersObjectsCreationOrder() - line 608: $d->listen(TestEvent::class, TestListener1::class); - line 609: $d->listen(TestEvent::class, TestListener2::class); - line 610: $d->listen(TestEvent::class, TestListener3::class); - line 613: $this->assertEquals([], $_SERVER['__event.test']); - line 625: ], $_SERVER['__event.test']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 606: $_SERVER['__event.test'] = []; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 645: unset($_SERVER['__event.test']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 604: public function testListenersObjectsCreationOrder() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 648: public function test_Listener_object_creation_is_lazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 648: public function test_Listener_object_creation_is_lazy() - line 651: $d->listen(TestEvent::class, TestListener1::class); - line 652: $d->listen(TestEvent::class, TestListener2Falser::class); - line 653: $d->listen(TestEvent::class, TestListener3::class); - line 654: $d->listen(ExampleEvent::class, TestListener2::class); - line 656: $_SERVER['__event.test'] = []; - line 662: $_SERVER['__event.test'] = []; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 656: $_SERVER['__event.test'] = []; - line 662: $_SERVER['__event.test'] = []; - line 679: $_SERVER['__event.test'] = []; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 672: unset($_SERVER['__event.test']); - line 687: unset($_SERVER['__event.test']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 648: public function test_Listener_object_creation_is_lazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 690: public function testInvokeIsCalled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 690: public function testInvokeIsCalled() - line 695: $d->listen('myEvent', TestListenerInvokeyHandler::class); - line 702: $d->listen('myEvent', TestListenerInvokey::class); - line 703: $d->listen('myEvent', TestListenerInvokeyHandler::class); - line 710: $d->listen('myEvent', [TestListenerInvokey::class, 'someAbsentMethod']); - line 716: $d->listen('myEvent', TestListenerLean::class); - line 718: $this->expectException(Error::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 693: $_SERVER['__event.test'] = []; - line 700: $_SERVER['__event.test'] = []; - line 708: $_SERVER['__event.test'] = []; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 723: unset($_SERVER['__event.test']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 690: public function testInvokeIsCalled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Events/EventsSubscriberTest.php - Test @ line 17: public function testEventSubscribers() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 17: public function testEventSubscribers() - line 19: $this->expectNotToPerformAssertions(); - line 26: $d->subscribe(ExampleSubscriber::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 21: $d = new Dispatcher($container = m::mock(Container::class)); - line 22: $subs = m::mock(ExampleSubscriber::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 17: public function testEventSubscribers() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 29: public function testEventSubscribeCanAcceptObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 29: public function testEventSubscribeCanAcceptObject() - line 31: $this->expectNotToPerformAssertions(); - line 37: $d->subscribe($subs); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 34: $subs = m::mock(ExampleSubscriber::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 29: public function testEventSubscribeCanAcceptObject() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 40: public function testEventSubscribeCanReturnMappings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 40: public function testEventSubscribeCanReturnMappings() - line 43: $d->subscribe(DeclarativeSubscriber::class); - line 46: $this->assertSame('L1_L2_', DeclarativeSubscriber::$string); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 40: public function testEventSubscribeCanReturnMappings() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Events/QueuedEventsTest.php - Test @ line 23: public function testQueuedEventHandlersAreQueued() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 23: public function testQueuedEventHandlersAreQueued() - line 26: $queue = m::mock(Queue::class); - line 28: $queue->shouldReceive('connection')->once()->with(null)->andReturnSelf(); - line 32: $d->setQueueResolver(function () use ($queue) { - line 36: $d->listen('some.event', TestDispatcherQueuedHandler::class.'@someMethod'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 26: $queue = m::mock(Queue::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testQueuedEventHandlersAreQueued() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 40: public function testCustomizedQueuedEventHandlersAreQueued() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 40: public function testCustomizedQueuedEventHandlersAreQueued() - line 46: $d->setQueueResolver(function () use ($fakeQueue) { - line 50: $d->listen('some.event', TestDispatcherConnectionQueuedHandler::class.'@handle'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 40: public function testCustomizedQueuedEventHandlersAreQueued() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 56: public function testQueueIsSetByGetQueue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 56: public function testQueueIsSetByGetQueue() - line 62: $d->setQueueResolver(function () use ($fakeQueue) { - line 66: $d->listen('some.event', TestDispatcherGetQueue::class.'@handle'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 56: public function testQueueIsSetByGetQueue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 72: public function testQueueIsSetByGetConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 72: public function testQueueIsSetByGetConnection() - line 75: $queue = m::mock(Queue::class); - line 77: $queue->shouldReceive('connection')->once()->with('some_other_connection')->andReturnSelf(); - line 81: $d->setQueueResolver(function () use ($queue) { - line 85: $d->listen('some.event', TestDispatcherGetConnection::class.'@handle'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 75: $queue = m::mock(Queue::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 72: public function testQueueIsSetByGetConnection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 89: public function testDelayIsSetByWithDelay() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 89: public function testDelayIsSetByWithDelay() - line 92: $queue = m::mock(Queue::class); - line 94: $queue->shouldReceive('connection')->once()->with(null)->andReturnSelf(); - line 98: $d->setQueueResolver(function () use ($queue) { - line 102: $d->listen('some.event', TestDispatcherGetDelay::class.'@handle'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 92: $queue = m::mock(Queue::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 89: public function testDelayIsSetByWithDelay() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 106: public function testQueueIsSetByGetQueueDynamically() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 106: public function testQueueIsSetByGetQueueDynamically() - line 112: $d->setQueueResolver(function () use ($fakeQueue) { - line 116: $d->listen('some.event', TestDispatcherGetQueueDynamically::class.'@handle'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 106: public function testQueueIsSetByGetQueueDynamically() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 122: public function testQueueIsSetByGetConnectionDynamically() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 122: public function testQueueIsSetByGetConnectionDynamically() - line 125: $queueManager = $this->createMock(QueueManager::class); - line 126: $queue = $this->createMock(Queue::class); - line 129: ->method('connection') - line 134: ->method('pushOn') - line 137: $d->setQueueResolver(function () use ($queueManager) { - line 141: $d->listen('some.event', TestDispatcherGetConnectionDynamically::class.'@handle'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 125: $queueManager = $this->createMock(QueueManager::class); - line 126: $queue = $this->createMock(Queue::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 122: public function testQueueIsSetByGetConnectionDynamically() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 148: public function testDelayIsSetByWithDelayDynamically() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 148: public function testDelayIsSetByWithDelayDynamically() - line 151: $queue = m::mock(Queue::class); - line 153: $queue->shouldReceive('connection')->once()->with(null)->andReturnSelf(); - line 157: $d->setQueueResolver(function () use ($queue) { - line 161: $d->listen('some.event', TestDispatcherGetDelayDynamically::class.'@handle'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 151: $queue = m::mock(Queue::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 148: public function testDelayIsSetByWithDelayDynamically() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 165: public function testQueuePropagateRetryUntilAndMaxExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 165: public function testQueuePropagateRetryUntilAndMaxExceptions() - line 171: $d->setQueueResolver(function () use ($fakeQueue) { - line 175: $d->listen('some.event', TestDispatcherOptions::class.'@handle'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 165: public function testQueuePropagateRetryUntilAndMaxExceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 183: public function testQueuePropagateTries() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 183: public function testQueuePropagateTries() - line 189: $d->setQueueResolver(function () use ($fakeQueue) { - line 193: $d->listen('some.event', TestDispatcherOptions::class.'@handle'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 183: public function testQueuePropagateTries() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 201: public function testQueuePropagateMessageGroupProperty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 201: public function testQueuePropagateMessageGroupProperty() - line 207: $d->setQueueResolver(function () use ($fakeQueue) { - line 211: $d->listen('some.event', TestDispatcherWithMessageGroupProperty::class.'@handle'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 201: public function testQueuePropagateMessageGroupProperty() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 219: public function testQueuePropagateMessageGroupMethodOverProperty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 219: public function testQueuePropagateMessageGroupMethodOverProperty() - line 225: $d->setQueueResolver(function () use ($fakeQueue) { - line 229: $d->listen('some.event', TestDispatcherWithMessageGroupMethod::class.'@handle'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 219: public function testQueuePropagateMessageGroupMethodOverProperty() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 237: public function testQueuePropagateDeduplicationIdMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 237: public function testQueuePropagateDeduplicationIdMethod() - line 243: $d->setQueueResolver(function () use ($fakeQueue) { - line 247: $d->listen('some.event', TestDispatcherWithDeduplicationIdMethod::class.'@handle'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 237: public function testQueuePropagateDeduplicationIdMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 257: public function testQueuePropagateDeduplicatorMethodOverDeduplicationIdMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 257: public function testQueuePropagateDeduplicatorMethodOverDeduplicationIdMethod() - line 263: $d->setQueueResolver(function () use ($fakeQueue) { - line 267: $d->listen('some.event', TestDispatcherWithDeduplicatorMethod::class.'@handle'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 257: public function testQueuePropagateDeduplicatorMethodOverDeduplicationIdMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 277: public function testQueuePropagateMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 277: public function testQueuePropagateMiddleware() - line 283: $d->setQueueResolver(function () use ($fakeQueue) { - line 287: $d->listen('some.event', TestDispatcherMiddleware::class.'@handle'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 277: public function testQueuePropagateMiddleware() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 298: public function testDispatchesOnQueueDefinedWithEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 298: public function testDispatchesOnQueueDefinedWithEnum() - line 301: $queue = m::mock(Queue::class); - line 305: $d->setQueueResolver(function () use ($fakeQueue) { - line 309: $d->listen('some.event', TestDispatcherViaQueueSupportsEnum::class.'@handle'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 301: $queue = m::mock(Queue::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 298: public function testDispatchesOnQueueDefinedWithEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Filesystem/FilesystemAdapterTest.php - Test @ line 51: public function testResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 51: public function testResponse() - line 53: $this->filesystem->write('file.txt', 'Hello World'); - line 55: $response = $files->response('file.txt'); - line 58: $response->sendContent(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 66: public function testMimeTypeIsNotCalledAlreadyProvidedToResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 66: public function testMimeTypeIsNotCalledAlreadyProvidedToResponse() - line 68: $this->filesystem->write('file.txt', 'Hello World'); - line 70: $files = m::mock(FilesystemAdapter::class, [$this->filesystem, $this->adapter])->makePartial(); - line 71: $files->shouldReceive('mimeType')->never(); - line 73: $files->response('file.txt', null, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 66: public function testMimeTypeIsNotCalledAlreadyProvidedToResponse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 78: public function testSizeIsNotCalledAlreadyProvidedToResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 78: public function testSizeIsNotCalledAlreadyProvidedToResponse() - line 80: $this->filesystem->write('file.txt', 'Hello World'); - line 82: $files = m::mock(FilesystemAdapter::class, [$this->filesystem, $this->adapter])->makePartial(); - line 83: $files->shouldReceive('size')->never(); - line 85: $files->response('file.txt', null, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 78: public function testSizeIsNotCalledAlreadyProvidedToResponse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 90: public function testFallbackNameCalledAlreadyProvidedToResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 90: public function testFallbackNameCalledAlreadyProvidedToResponse() - line 92: $this->filesystem->write('file.txt', 'Hello World'); - line 95: ->shouldAllowMockingProtectedMethods() - line 97: $files->shouldReceive('fallbackName')->never(); - line 99: $files->response('file.txt', null, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 90: public function testFallbackNameCalledAlreadyProvidedToResponse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 104: public function testDownload() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 104: public function testDownload() - line 106: $this->filesystem->write('file.txt', 'Hello World'); - line 108: $response = $files->download('file.txt', 'hello.txt'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 113: public function testDownloadNonAsciiFilename() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 113: public function testDownloadNonAsciiFilename() - line 115: $this->filesystem->write('file.txt', 'Hello World'); - line 117: $response = $files->download('file.txt', 'привет.txt'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 122: public function testDownloadNonAsciiEmptyFilename() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 122: public function testDownloadNonAsciiEmptyFilename() - line 124: $this->filesystem->write('привет.txt', 'Hello World'); - line 126: $response = $files->download('привет.txt'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 131: public function testDownloadPercentInFilename() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 131: public function testDownloadPercentInFilename() - line 133: $this->filesystem->write('Hello%World.txt', 'Hello World'); - line 135: $response = $files->download('Hello%World.txt', 'Hello%World.txt'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 140: public function testExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 140: public function testExists() - line 142: $this->filesystem->write('file.txt', 'Hello World'); - line 144: $this->assertTrue($filesystemAdapter->exists('file.txt')); - line 145: $this->assertTrue($filesystemAdapter->fileExists('file.txt')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 148: public function testMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 148: public function testMissing() - line 151: $this->assertTrue($filesystemAdapter->missing('file.txt')); - line 152: $this->assertTrue($filesystemAdapter->fileMissing('file.txt')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 155: public function testDirectoryExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 155: public function testDirectoryExists() - line 157: $this->filesystem->write('/foo/bar/file.txt', 'Hello World'); - line 159: $this->assertTrue($filesystemAdapter->directoryExists('/foo/bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 168: public function testPath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 168: public function testPath() - line 170: $this->filesystem->write('file.txt', 'Hello World'); - line 174: $this->assertEquals($this->tempDir.DIRECTORY_SEPARATOR.'file.txt', $filesystemAdapter->path('file.txt')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 184: public function testGetFileNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 184: public function testGetFileNotFound() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 184: public function testGetFileNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 190: public function testJsonReturnsDecodedJsonData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 190: public function testJsonReturnsDecodedJsonData() - line 192: $this->filesystem->write('file.json', '{"foo": "bar"}'); - line 194: $this->assertSame(['foo' => 'bar'], $filesystemAdapter->json('file.json')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 197: public function testJsonReturnsNullIfJsonDataIsInvalid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 197: public function testJsonReturnsNullIfJsonDataIsInvalid() - line 199: $this->filesystem->write('file.json', '{"foo":'); - line 201: $this->assertNull($filesystemAdapter->json('file.json')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 197: public function testJsonReturnsNullIfJsonDataIsInvalid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 204: public function testMimeTypeNotDetected() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 204: public function testMimeTypeNotDetected() - line 206: $this->filesystem->write('unknown.mime-type', ''); - line 208: $this->assertFalse($filesystemAdapter->mimeType('unknown.mime-type')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 211: public function testPut() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 211: public function testPut() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 218: public function testPrepend() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 218: public function testPrepend() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 226: public function testAppend() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 226: public function testAppend() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 248: public function testCopy() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 248: public function testCopy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 264: public function testMove() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 264: public function testMove() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 279: public function testStream() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 279: public function testStream() - line 281: $this->filesystem->write('file.txt', $original_content = 'Hello World'); - line 283: $readStream = $filesystemAdapter->readStream('file.txt'); - line 284: $filesystemAdapter->writeStream('copy.txt', $readStream); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 288: public function testStreamBetweenFilesystems() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 288: public function testStreamBetweenFilesystems() - line 291: $this->filesystem->write('file.txt', $original_content = 'Hello World'); - line 294: $readStream = $filesystemAdapter->readStream('file.txt'); - line 295: $secondFilesystemAdapter->writeStream('copy.txt', $readStream); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 299: public function testStreamToExistingFileOverwrites() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 299: public function testStreamToExistingFileOverwrites() - line 301: $this->filesystem->write('file.txt', 'Hello World'); - line 302: $this->filesystem->write('existing.txt', 'Dear Kate'); - line 304: $readStream = $filesystemAdapter->readStream('file.txt'); - line 305: $filesystemAdapter->writeStream('existing.txt', $readStream); - line 306: $this->assertSame('Hello World', $filesystemAdapter->read('existing.txt')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 309: public function testReadStreamNonExistentFileReturnsNull() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 309: public function testReadStreamNonExistentFileReturnsNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 315: public function testStreamInvalidResourceThrows() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 315: public function testStreamInvalidResourceThrows() - line 317: $this->expectException(InvalidArgumentException::class); - line 319: $filesystemAdapter->writeStream('file.txt', 'foo bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 315: public function testStreamInvalidResourceThrows() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 335: public function testPutFileAs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 335: public function testPutFileAs() - line 343: $storagePath = $filesystemAdapter->putFileAs('/', $uploadedFile, 'new.txt'); - line 351: $this->assertSame('uploaded file content', $filesystemAdapter->read($storagePath)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 359: public function testPutFileAsWithAbsoluteFilePath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 359: public function testPutFileAsWithAbsoluteFilePath() - line 365: $storagePath = $filesystemAdapter->putFileAs('/', $filePath, 'new.txt'); - line 367: $this->assertSame('normal file content', $filesystemAdapter->read($storagePath)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 370: public function testPutFileAsWithoutPath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 370: public function testPutFileAsWithoutPath() - line 376: $storagePath = $filesystemAdapter->putFileAs($filePath, 'new.txt'); - line 378: $this->assertSame('normal file content', $filesystemAdapter->read($storagePath)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 421: public function testPutFileWithoutPath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 421: public function testPutFileWithoutPath() - line 427: $storagePath = $filesystemAdapter->putFile($filePath); - line 429: $this->assertSame('normal file content', $filesystemAdapter->read($storagePath)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 433: public function testCreateFtpDriver() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 433: public function testCreateFtpDriver() - line 437: $driver = $filesystem->createFtpDriver([ - line 444: $this->assertInstanceOf(FtpAdapter::class, $driver->getAdapter()); - line 446: $config = $driver->getConfig(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 433: public function testCreateFtpDriver() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 452: public function testMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 452: public function testMacroable() - line 454: $this->filesystem->write('foo.txt', 'Hello World'); - line 456: $filesystemAdapter = new FilesystemAdapter($this->filesystem, $this->adapter); - line 461: $this->assertSame('Hello World', $filesystemAdapter->getFoo()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 464: public function testTemporaryUrlWithCustomCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 464: public function testTemporaryUrlWithCustomCallback() - line 468: $filesystemAdapter->buildTemporaryUrlsUsing(function ($path, Carbon $expiration, $options) { - line 477: $path.$expiration->toString().implode('', $options), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 482: public function testThrowExceptionsForGet() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 482: public function testThrowExceptionsForGet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 497: public function testThrowExceptionsForReadStream() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 497: public function testThrowExceptionsForReadStream() - line 502: $adapter->readStream('/foo.txt'); - line 509: $this->fail('Exception was not thrown.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 497: public function testThrowExceptionsForReadStream() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 512: public function testThrowExceptionsForPut() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 512: public function testThrowExceptionsForPut() - line 514: $this->filesystem->write('foo.txt', 'Hello World'); - line 521: $adapter->put('/foo.txt', 'Hello World!'); - line 530: $this->fail('Exception was not thrown.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 512: public function testThrowExceptionsForPut() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 533: public function testThrowExceptionsForMimeType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 533: public function testThrowExceptionsForMimeType() - line 535: $this->filesystem->write('unknown.mime-type', ''); - line 540: $adapter->mimeType('unknown.mime-type'); - line 547: $this->fail('Exception was not thrown.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 533: public function testThrowExceptionsForMimeType() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 550: public function testReportExceptionsForGet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 550: public function testReportExceptionsForGet() - line 552: $container = Container::getInstance(); - line 558: ->andReturnUsing(function (UnableToReadFile $e) { - line 565: $container->bind(ExceptionHandler::class, function () use ($exceptionHandler) { - line 574: $this->fail('Exception was thrown.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 554: $exceptionHandler = m::mock(ExceptionHandler::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 550: public function testReportExceptionsForGet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 578: public function testReportExceptionsForReadStream() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 578: public function testReportExceptionsForReadStream() - line 580: $container = Container::getInstance(); - line 586: ->andReturnUsing(function (UnableToReadFile $e) { - line 593: $container->bind(ExceptionHandler::class, function () use ($exceptionHandler) { - line 600: $adapter->readStream('/foo.txt'); - line 602: $this->fail('Exception was thrown.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 582: $exceptionHandler = m::mock(ExceptionHandler::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 578: public function testReportExceptionsForReadStream() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 606: public function testReportExceptionsForPut() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 606: public function testReportExceptionsForPut() - line 608: $container = Container::getInstance(); - line 614: ->andReturnUsing(function (UnableToWriteFile $e) { - line 621: $container->bind(ExceptionHandler::class, function () use ($exceptionHandler) { - line 625: $this->filesystem->write('foo.txt', 'Hello World'); - line 632: $adapter->put('/foo.txt', 'Hello World!'); - line 634: $this->fail('Exception was thrown.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 610: $exceptionHandler = m::mock(ExceptionHandler::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 606: public function testReportExceptionsForPut() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 640: public function testReportExceptionsForMimeType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 640: public function testReportExceptionsForMimeType() - line 642: $container = Container::getInstance(); - line 648: ->andReturnUsing(function (UnableToRetrieveMetadata $e) { - line 655: $container->bind(ExceptionHandler::class, function () use ($exceptionHandler) { - line 659: $this->filesystem->write('unknown.mime-type', ''); - line 664: $adapter->mimeType('unknown.mime-type'); - line 666: $this->fail('Exception was thrown.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 644: $exceptionHandler = m::mock(ExceptionHandler::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 640: public function testReportExceptionsForMimeType() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 670: public function testGetAllFiles() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 670: public function testGetAllFiles() - line 672: $this->filesystem->write('body.txt', 'Hello World'); - line 673: $this->filesystem->write('file1.txt', 'Hello World'); - line 674: $this->filesystem->write('file.txt', 'Hello World'); - line 675: $this->filesystem->write('existing.txt', 'Dear Kate'); - line 679: $this->assertSame($filesystemAdapter->files(), ['body.txt', 'existing.txt', 'file.txt', 'file1.txt']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 682: public function testProvidesTemporaryUrls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 682: public function testProvidesTemporaryUrls() - line 688: return $path.$expiration->toString().implode('', $options); - line 693: $this->assertTrue($filesystemAdapter->providesTemporaryUrls()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 696: public function testProvidesTemporaryUrlsWithCustomCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 696: public function testProvidesTemporaryUrlsWithCustomCallback() - line 700: $filesystemAdapter->buildTemporaryUrlsUsing(function ($path, Carbon $expiration, $options) { - line 704: $this->assertTrue($filesystemAdapter->providesTemporaryUrls()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 707: public function testProvidesTemporaryUrlsForS3Adapter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 707: public function testProvidesTemporaryUrlsForS3Adapter() - line 710: $filesystemAdapter = $filesystem->createS3Driver([ - line 715: $this->assertTrue($filesystemAdapter->providesTemporaryUrls()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 718: public function testUsesRightSeperatorForS3Adapter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 718: public function testUsesRightSeperatorForS3Adapter() - line 721: $filesystemAdapter = $filesystem->createS3Driver([ - line 728: $path = $filesystemAdapter->path('different'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 718: public function testUsesRightSeperatorForS3Adapter() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 747: public function testGetChecksum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 747: public function testGetChecksum() - line 750: $filesystemAdapter->write('path.txt', 'contents of file'); - line 752: $this->assertEquals('730bed78bccf58c2cfe44c29b71e5e6b', $filesystemAdapter->checksum('path.txt')); - line 753: $this->assertEquals('a5c3556d', $filesystemAdapter->checksum('path.txt', ['checksum_algo' => 'crc32'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 756: public function testUsesRightSeperatorForS3AdapterWithoutDoublePrefixing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 756: public function testUsesRightSeperatorForS3AdapterWithoutDoublePrefixing() - line 759: $filesystemAdapter = $filesystem->createS3Driver([ - line 767: $path = $filesystemAdapter->path('different'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 756: public function testUsesRightSeperatorForS3AdapterWithoutDoublePrefixing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Filesystem/FilesystemManagerTest.php - Test @ line 16: public function testExceptionThrownOnUnsupportedDriver() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 16: public function testExceptionThrownOnUnsupportedDriver() - line 18: $this->expectException(InvalidArgumentException::class); - line 19: $this->expectExceptionMessage('Disk [local] does not have a configured driver.'); - line 25: $filesystem->disk('local'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 16: public function testExceptionThrownOnUnsupportedDriver() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 28: public function testCanBuildOnDemandDisk() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 28: public function testCanBuildOnDemandDisk() - line 32: $this->assertInstanceOf(Filesystem::class, $filesystem->build('my-custom-path')); - line 34: $this->assertInstanceOf(Filesystem::class, $filesystem->build([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 28: public function testCanBuildOnDemandDisk() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 44: public function testCanBuildReadOnlyDisks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 44: public function testCanBuildReadOnlyDisks() - line 48: $disk = $filesystem->build([ - line 60: $this->assertEquals(['path.txt'], $disk->files()); - line 63: $this->assertFalse($disk->put('path.txt', 'contents')); - line 64: $this->assertFalse($disk->delete('path.txt')); - line 65: $this->assertFalse($disk->deleteDirectory('directory')); - line 66: $this->assertFalse($disk->prepend('path.txt', 'data')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 73: unlink(__DIR__.'/../../my-custom-path/path.txt'); - Test @ line 77: public function testCanBuildScopedDisks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 77: public function testCanBuildScopedDisks() - line 89: $local = $filesystem->disk('local'); - line 90: $scoped = $filesystem->build([ - line 96: $scoped->put('dirname/filename.txt', 'file content'); - line 98: $local->deleteDirectory('path-prefix'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 104: public function testCanBuildScopedDiskFromScopedDisk() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 104: public function testCanBuildScopedDiskFromScopedDisk() - line 121: $root = $filesystem->disk('local'); - line 122: $nestedScoped = $filesystem->build([ - line 128: $nestedScoped->put('dirname/filename.txt', 'file content'); - line 130: $root->deleteDirectory('scoped-from-root-prefix'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 137: public function testCanBuildScopedDisksWithVisibility() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 137: public function testCanBuildScopedDisksWithVisibility() - line 150: $scoped = $filesystem->build([ - line 157: $scoped->put('dirname/filename.txt', 'file content'); - line 159: $this->assertEquals('private', $scoped->getVisibility('dirname/filename.txt')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 161: unlink(__DIR__.'/../../to-be-scoped/path-prefix/dirname/filename.txt'); - Test @ line 168: public function testCanBuildScopedDisksWithThrow() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 168: public function testCanBuildScopedDisksWithThrow() - line 181: $scoped = $filesystem->build([ - line 188: $this->expectException(UnableToReadFile::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 168: public function testCanBuildScopedDisksWithThrow() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 195: public function testCanBuildInlineScopedDisks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 195: public function testCanBuildInlineScopedDisks() - line 200: $scoped = $filesystem->build([ - line 209: $scoped->put('dirname/filename.txt', 'file content'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 213: unlink(__DIR__.'/../../to-be-scoped/path-prefix/dirname/filename.txt'); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 195: public function testCanBuildInlineScopedDisks() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Filesystem/FilesystemTest.php - Test @ line 46: public function testGetRetrievesFiles() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 46: public function testGetRetrievesFiles() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 53: public function testPutStoresFiles() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 53: public function testPutStoresFiles() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 60: public function testLines() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 60: public function testLines() - line 68: $this->assertInstanceOf(LazyCollection::class, $files->lines($path)); - line 72: $files->lines($path)->all() - line 77: $this->assertSame([''], $files->lines($path)->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 80: public function testLinesThrowsExceptionNonexisitingFile() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 80: public function testLinesThrowsExceptionNonexisitingFile() - line 82: $this->expectException(FileNotFoundException::class); - line 83: $this->expectExceptionMessage('File does not exist at path '.__DIR__.'/unknown-file.txt.'); - line 85: (new Filesystem)->lines(__DIR__.'/unknown-file.txt'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 80: public function testLinesThrowsExceptionNonexisitingFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 88: public function testReplaceCreatesFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 88: public function testReplaceCreatesFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 98: public function testReplaceInFileCorrectlyReplaces() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 98: public function testReplaceInFileCorrectlyReplaces() - line 104: $filesystem->put($tempFile, 'Hello World'); - line 105: $filesystem->replaceInFile('Hello World', 'Hello Taylor', $tempFile); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 98: public function testReplaceInFileCorrectlyReplaces() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 110: public function testReplaceWhenUnixSymlinkExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 110: public function testReplaceWhenUnixSymlinkExists() - line 129: $filesystem->replace($tempFile, 'Hello World'); - line 131: $this->assertEquals($umask, 0777 - $this->getFilePermissions($tempFile)); - line 134: $filesystem->replace($tempFile, 'Something Else'); - line 136: $this->assertEquals($umask, 0777 - $this->getFilePermissions($tempFile)); - line 139: $filesystem->replace($symlink, 'Yet Something Else Again'); - line 141: $this->assertEquals($umask, 0777 - $this->getFilePermissions($tempFile)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 149: public function testSetChmod() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 149: public function testSetChmod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 170: public function testDeleteRemovesFiles() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 170: public function testDeleteRemovesFiles() - line 177: $files->delete(self::$tempDir.'/file1.txt'); - line 180: $files->delete([self::$tempDir.'/file2.txt', self::$tempDir.'/file3.txt']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 170: public function testDeleteRemovesFiles() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 185: public function testPrependExistingFiles() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 185: public function testPrependExistingFiles() - line 188: $files->put(self::$tempDir.'/file.txt', 'World'); - line 189: $files->prepend(self::$tempDir.'/file.txt', 'Hello '); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 185: public function testPrependExistingFiles() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 193: public function testPrependNewFiles() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 193: public function testPrependNewFiles() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 206: public function testDeleteDirectory() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 206: public function testDeleteDirectory() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 224: public function testCleanDirectory() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 224: public function testCleanDirectory() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 234: public function testMacro() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 234: public function testMacro() - line 239: $files->macro('getFoo', function () use ($files, $tempDir) { - line 242: $this->assertSame('Hello World', $files->getFoo()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 245: public function testFilesMethod() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 245: public function testFilesMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 264: public function testCopyDirectoryMovesEntireDirectory() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 264: public function testCopyDirectoryMovesEntireDirectory() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 281: public function testMoveDirectoryMovesEntireDirectory() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 281: public function testMoveDirectoryMovesEntireDirectory() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 299: public function testMoveDirectoryMovesEntireDirectoryAndOverwrites() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 299: public function testMoveDirectoryMovesEntireDirectoryAndOverwrites() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 322: public function testMoveDirectoryReturnsFalseWhileOverwritingAndUnableToDeleteDestinationDirectory() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 322: public function testMoveDirectoryReturnsFalseWhileOverwritingAndUnableToDeleteDestinationDirectory() - line 328: $files = m::mock(Filesystem::class)->makePartial(); - line 330: $this->assertFalse($files->moveDirectory(self::$tempDir.'/tmp6', self::$tempDir.'/tmp7', true)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 328: $files = m::mock(Filesystem::class)->makePartial(); - Test @ line 333: public function testGetThrowsExceptionNonexisitingFile() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 333: public function testGetThrowsExceptionNonexisitingFile() - line 335: $this->expectException(FileNotFoundException::class); - line 336: $this->expectExceptionMessage('File does not exist at path '.self::$tempDir.'/unknown-file.txt.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 333: public function testGetThrowsExceptionNonexisitingFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 348: public function testGetRequireThrowsExceptionNonExistingFile() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 348: public function testGetRequireThrowsExceptionNonExistingFile() - line 350: $this->expectException(FileNotFoundException::class); - line 351: $this->expectExceptionMessage('File does not exist at path '.self::$tempDir.'/unknown-file.txt.'); - line 353: (new Filesystem)->getRequire(self::$tempDir.'/unknown-file.txt'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 348: public function testGetRequireThrowsExceptionNonExistingFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 363: public function testJsonReturnsNullIfJsonDataIsInvalid() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 363: public function testJsonReturnsNullIfJsonDataIsInvalid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 370: public function testAppendAddsDataToFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 370: public function testAppendAddsDataToFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 380: public function testMoveMovesFiles() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 380: public function testMoveMovesFiles() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 446: public function testIsWritable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 446: public function testIsWritable() - line 451: $this->assertFalse($files->isWritable(self::$tempDir.'/foo.txt')); - line 453: $this->assertTrue($files->isWritable(self::$tempDir.'/foo.txt')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 456: public function testIsReadable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 456: public function testIsReadable() - line 462: $this->assertTrue($files->isReadable(self::$tempDir.'/foo.txt')); - line 465: $this->assertFalse($files->isReadable(self::$tempDir.'/foo.txt')); - line 467: $this->assertTrue($files->isReadable(self::$tempDir.'/foo.txt')); - line 469: $this->assertFalse($files->isReadable(self::$tempDir.'/doesnotexist.txt')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 472: public function testIsDirEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 472: public function testIsDirEmpty() - line 485: $this->assertTrue($files->isEmptyDirectory(self::$tempDir.'/foo-dir', true)); - line 486: $this->assertFalse($files->isEmptyDirectory(self::$tempDir.'/foo-dir')); - line 487: $this->assertFalse($files->isEmptyDirectory(self::$tempDir.'/bar-dir', true)); - line 488: $this->assertFalse($files->isEmptyDirectory(self::$tempDir.'/bar-dir')); - line 489: $this->assertTrue($files->isEmptyDirectory(self::$tempDir.'/baz-dir', true)); - line 490: $this->assertFalse($files->isEmptyDirectory(self::$tempDir.'/baz-dir')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 505: public function testAllFilesFindsFiles() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 505: public function testAllFilesFindsFiles() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 552: public function testSharedGet() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 552: public function testSharedGet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 579: public function testRequireOnceRequiresFileProperly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 579: public function testRequireOnceRequiresFileProperly() - line 584: $filesystem->requireOnce(self::$tempDir.'/scripts/foo.php'); - line 586: $filesystem->requireOnce(self::$tempDir.'/scripts/foo.php'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 579: public function testRequireOnceRequiresFileProperly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 591: public function testRequireOnceThrowsExceptionNonexisitingFile() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 591: public function testRequireOnceThrowsExceptionNonexisitingFile() - line 593: $this->expectException(FileNotFoundException::class); - line 594: $this->expectExceptionMessage('File does not exist at path '.__DIR__.'/unknown-file.txt.'); - line 596: (new Filesystem)->requireOnce(__DIR__.'/unknown-file.txt'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 591: public function testRequireOnceThrowsExceptionNonexisitingFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 599: public function testCopyCopiesFileProperly() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 599: public function testCopyCopiesFileProperly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 610: public function testHasSameHashChecksFileHashes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 610: public function testHasSameHashChecksFileHashes() - line 619: $this->assertTrue($filesystem->hasSameHash(self::$tempDir.'/text/foo.txt', self::$tempDir.'/text/foo2.txt')); - line 620: $this->assertFalse($filesystem->hasSameHash(self::$tempDir.'/text/foo.txt', self::$tempDir.'/text/foo3.txt')); - line 621: $this->assertFalse($filesystem->hasSameHash(self::$tempDir.'/text/foo4.txt', self::$tempDir.'/text/foo.txt')); - line 622: $this->assertFalse($filesystem->hasSameHash(self::$tempDir.'/text/foo.txt', self::$tempDir.'/text/foo4.txt')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 625: public function testIsFileChecksFilesProperly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 625: public function testIsFileChecksFilesProperly() - line 630: $this->assertTrue($filesystem->isFile(self::$tempDir.'/help/foo.txt')); - line 631: $this->assertFalse($filesystem->isFile(self::$tempDir.'./help')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 634: public function testFilesMethodReturnsFileInfoObjects() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 634: public function testFilesMethodReturnsFileInfoObjects() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 645: public function testAllFilesReturnsFileInfoObjects() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 645: public function testAllFilesReturnsFileInfoObjects() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 660: public function testHash() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 660: public function testHash() - line 664: $this->assertSame('0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33', $filesystem->hash(self::$tempDir.'/foo.txt', 'sha1')); - line 665: $this->assertSame('76d3bc41c9f588f7fcd0d5bf4718f8f84b1c41b20882703100b9eb9413807c01', $filesystem->hash(self::$tempDir.'/foo.txt', 'sha3-256')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 668: public function testLastModifiedReturnsTimestamp() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 668: public function testLastModifiedReturnsTimestamp() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 693: public function testFileCreationAndContentVerification() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 693: public function testFileCreationAndContentVerification() - line 700: $files->put($filePath, $testContent); - line 702: $this->assertTrue($files->exists($filePath)); - line 704: $this->assertEquals(strlen($testContent), $files->size($filePath)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 707: public function testDirectoryOperationsWithSubdirectories() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 707: public function testDirectoryOperationsWithSubdirectories() - line 714: $this->assertTrue($files->makeDirectory($dirPath)); - line 715: $this->assertTrue($files->isDirectory($dirPath)); - line 717: $this->assertTrue($files->makeDirectory($subDirPath)); - line 718: $this->assertTrue($files->isDirectory($subDirPath)); - line 721: $files->put($filePath, 'test content'); - line 723: $this->assertTrue($files->exists($filePath)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Filesystem/JoinPathsHelperTest.php - Test @ line 15: public function testItCanMergePathsForUnix(string $expected, string $given) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 15: public function testItCanMergePathsForUnix(string $expected, string $given) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 15: public function testItCanMergePathsForUnix(string $expected, string $given) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 47: public function testItCanMergePathsForWindows(string $expected, string $given) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 47: public function testItCanMergePathsForWindows(string $expected, string $given) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 47: public function testItCanMergePathsForWindows(string $expected, string $given) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/Bootstrap/HandleExceptionsTest.php - Test @ line 44: public function testPhpDeprecations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 44: public function testPhpDeprecations() - line 46: $logger = m::mock(LogManager::class); - line 47: $this->app->instance(LogManager::class, $logger); - line 51: $logger->expects('channel')->with('deprecations')->andReturnSelf(); - line 58: $this->handleExceptions()->handleError( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 46: $logger = m::mock(LogManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 44: public function testPhpDeprecations() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 66: public function testPhpDeprecationsWithStackTraces() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 66: public function testPhpDeprecationsWithStackTraces() - line 68: $logger = m::mock(LogManager::class); - line 69: $this->app->instance(LogManager::class, $logger); - line 78: $logger->expects('channel')->with('deprecations')->andReturnSelf(); - line 94: $this->handleExceptions()->handleError( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 68: $logger = m::mock(LogManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 66: public function testPhpDeprecationsWithStackTraces() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 102: public function testNullValueAsChannelUsesNullDriver() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 102: public function testNullValueAsChannelUsesNullDriver() - line 104: $logger = m::mock(LogManager::class); - line 105: $this->app->instance(LogManager::class, $logger); - line 114: $logger->expects('channel')->with('deprecations')->andReturnSelf(); - line 121: $this->handleExceptions()->handleError( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 104: $logger = m::mock(LogManager::class); - Test @ line 134: public function testUserDeprecations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 134: public function testUserDeprecations() - line 136: $logger = m::mock(LogManager::class); - line 137: $this->app->instance(LogManager::class, $logger); - line 141: $logger->expects('channel')->with('deprecations')->andReturnSelf(); - line 148: $this->handleExceptions()->handleError( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 136: $logger = m::mock(LogManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 134: public function testUserDeprecations() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 156: public function testUserDeprecationsWithStackTraces() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 156: public function testUserDeprecationsWithStackTraces() - line 158: $logger = m::mock(LogManager::class); - line 159: $this->app->instance(LogManager::class, $logger); - line 168: $logger->expects('channel')->with('deprecations')->andReturnSelf(); - line 184: $this->handleExceptions()->handleError( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 158: $logger = m::mock(LogManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 156: public function testUserDeprecationsWithStackTraces() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 192: public function testErrors() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 192: public function testErrors() - line 194: $logger = m::mock(LogManager::class); - line 195: $this->app->instance(LogManager::class, $logger); - line 197: $logger->shouldNotReceive('channel'); - line 198: $logger->shouldNotReceive('warning'); - line 200: $this->expectException(ErrorException::class); - line 201: $this->expectExceptionMessage('Something went wrong'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 194: $logger = m::mock(LogManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 192: public function testErrors() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 211: public function testEnsuresDeprecationsDriver() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 211: public function testEnsuresDeprecationsDriver() - line 213: $logger = m::mock(LogManager::class); - line 214: $this->app->instance(LogManager::class, $logger); - line 218: $logger->expects('channel')->andReturnSelf(); - line 228: $this->handleExceptions()->handleError( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 213: $logger = m::mock(LogManager::class); - Test @ line 245: public function testEnsuresNullDeprecationsDriver() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 245: public function testEnsuresNullDeprecationsDriver() - line 247: $logger = m::mock(LogManager::class); - line 248: $this->app->instance(LogManager::class, $logger); - line 252: $logger->expects('channel')->andReturnSelf(); - line 255: $this->handleExceptions()->handleError( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 247: $logger = m::mock(LogManager::class); - Test @ line 268: public function testEnsuresNullLogDriver() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 268: public function testEnsuresNullLogDriver() - line 270: $logger = m::mock(LogManager::class); - line 271: $this->app->instance(LogManager::class, $logger); - line 275: $logger->expects('channel')->andReturnSelf(); - line 278: $this->handleExceptions()->handleError( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 270: $logger = m::mock(LogManager::class); - Test @ line 291: public function testDoNotOverrideExistingNullLogDriver() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 291: public function testDoNotOverrideExistingNullLogDriver() - line 293: $logger = m::mock(LogManager::class); - line 294: $this->app->instance(LogManager::class, $logger); - line 298: $logger->expects('channel')->andReturnSelf(); - line 306: $this->handleExceptions()->handleError( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 293: $logger = m::mock(LogManager::class); - Test @ line 319: public function testNoDeprecationsDriverIfNoDeprecationsHereSend() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 319: public function testNoDeprecationsDriverIfNoDeprecationsHereSend() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 325: public function testIgnoreDeprecationIfLoggerUnresolvable() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 325: public function testIgnoreDeprecationIfLoggerUnresolvable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 338: public function testItIgnoreDeprecationLoggingWhenRunningUnitTests() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 338: public function testItIgnoreDeprecationLoggingWhenRunningUnitTests() - line 341: $this->app->bind(LogManager::class, function () use (&$resolved) { - line 349: $this->handleExceptions()->handleError( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 338: public function testItIgnoreDeprecationLoggingWhenRunningUnitTests() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 359: public function testItCanForceViaConfigDeprecationLoggingWhenRunningUnitTests() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 359: public function testItCanForceViaConfigDeprecationLoggingWhenRunningUnitTests() - line 361: $logger = m::mock(LogManager::class); - line 362: $logger->expects('channel')->andReturnSelf(); - line 364: $this->app->instance(LogManager::class, $logger); - line 370: $this->handleExceptions()->handleError( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 361: $logger = m::mock(LogManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 359: public function testItCanForceViaConfigDeprecationLoggingWhenRunningUnitTests() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 378: public function testForgetApp() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 378: public function testForgetApp() - line 380: $instance = $this->handleExceptions(); - line 382: $appResolver = fn () => (new ReflectionClass($instance))->getProperty('app')->getValue($instance); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 378: public function testForgetApp() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 391: public function testHandlerForgetsPreviousApp() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 391: public function testHandlerForgetsPreviousApp() - line 393: $instance = $this->handleExceptions(); - line 395: $appResolver = fn () => (new ReflectionClass($instance))->getProperty('app')->getValue($instance); - line 399: $instance->bootstrap($newApp = tap(m::mock(Application::class), function ($app) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 399: $instance->bootstrap($newApp = tap(m::mock(Application::class), function ($app) { - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 391: public function testHandlerForgetsPreviousApp() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/Bootstrap/LoadConfigurationTest.php - Test @ line 14: public function testLoadsBaseConfiguration() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 14: public function testLoadsBaseConfiguration() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 23: public function testSetsEnvironmentResolver() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 23: public function testSetsEnvironmentResolver() - line 26: $this->assertNull((new ReflectionClass($app))->getProperty('environmentResolver')->getValue($app)); - line 28: (new LoadConfiguration)->bootstrap($app); - line 32: (new ReflectionClass($app))->getProperty('environmentResolver')->getValue($app) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testSetsEnvironmentResolver() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 36: public function testDontLoadBaseConfiguration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 36: public function testDontLoadBaseConfiguration() - line 39: $app->dontMergeFrameworkConfiguration(); - line 41: (new LoadConfiguration)->bootstrap($app); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 36: public function testDontLoadBaseConfiguration() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 46: public function testLoadsConfigurationInIsolation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 46: public function testLoadsConfigurationInIsolation() - line 49: $app->useConfigPath(__DIR__.'/../fixtures/config'); - line 51: (new LoadConfiguration)->bootstrap($app); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 46: public function testLoadsConfigurationInIsolation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 57: public function testConfigurationArrayKeysMatchLoadedFilenames() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 57: public function testConfigurationArrayKeysMatchLoadedFilenames() - line 63: $app->useConfigPath($customConfigPath); - line 65: (new LoadConfiguration)->bootstrap($app); - line 68: array_keys($app['config']->all()), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 57: public function testConfigurationArrayKeysMatchLoadedFilenames() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/Bootstrap/LoadEnvironmentVariablesTest.php - Test @ line 35: public function testCanLoad() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 35: public function testCanLoad() - line 37: $this->expectOutputString(''); - line 39: (new LoadEnvironmentVariables)->bootstrap($this->getAppMock('.env')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 35: public function testCanLoad() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 47: public function testCanFailSilent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 47: public function testCanFailSilent() - line 49: $this->expectOutputString(''); - line 51: (new LoadEnvironmentVariables)->bootstrap($this->getAppMock('BAD_FILE')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 47: public function testCanFailSilent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/Configuration/ExceptionsTest.php - Test @ line 16: public function testStopIgnoring() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 16: public function testStopIgnoring() - line 27: $this->assertContains(HttpException::class, $handler->getDontReport()); - line 28: $exceptions = $exceptions->stopIgnoring(HttpException::class); - line 30: $this->assertNotContains(HttpException::class, $handler->getDontReport()); - line 32: $this->assertContains(ModelNotFoundException::class, $handler->getDontReport()); - line 33: $exceptions->stopIgnoring([ModelNotFoundException::class]); - line 34: $this->assertNotContains(ModelNotFoundException::class, $handler->getDontReport()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 16: public function testStopIgnoring() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 37: public function testShouldRenderJsonWhen() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 37: public function testShouldRenderJsonWhen() - line 41: $shouldReturnJson = (fn () => $this->shouldReturnJson(new Request, new Exception()))->call($exceptions->handler); - line 44: $exceptions->shouldRenderJsonWhen(fn () => true); - line 45: $shouldReturnJson = (fn () => $this->shouldReturnJson(new Request, new Exception()))->call($exceptions->handler); - line 48: $exceptions->shouldRenderJsonWhen(fn () => false); - line 49: $shouldReturnJson = (fn () => $this->shouldReturnJson(new Request, new Exception()))->call($exceptions->handler); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Foundation/Configuration/MiddlewareTest.php - Test @ line 38: public function testConvertEmptyStringsToNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 38: public function testConvertEmptyStringsToNull() - line 43: $configuration->convertEmptyStringsToNull(except: [ - line 54: $request = Request::createFromBase($symfonyRequest); - line 67: $request = Request::createFromBase($symfonyRequest); - line 80: $request = Request::createFromBase($symfonyRequest); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 88: public function testTrimStrings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 88: public function testTrimStrings() - line 93: $configuration->trimStrings(except: [ - line 104: $request = Request::createFromBase($symfonyRequest); - line 119: $request = Request::createFromBase($symfonyRequest); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 128: public function testTrustProxies() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 128: public function testTrustProxies() - line 134: $method = $reflection->getMethod('proxies'); - line 135: $property = $reflection->getProperty('proxies'); - line 137: $this->assertNull($method->invoke($middleware)); - line 139: $property->setValue($middleware, [ - line 147: ], $method->invoke($middleware)); - line 149: $configuration->trustProxies(at: '*'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 162: public function testTrustHeaders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 162: public function testTrustHeaders() - line 168: $method = $reflection->getMethod('headers'); - line 169: $property = $reflection->getProperty('headers'); - line 176: Request::HEADER_X_FORWARDED_AWS_ELB, $method->invoke($middleware)); - line 178: $property->setValue($middleware, Request::HEADER_X_FORWARDED_AWS_ELB); - line 180: $this->assertEquals(Request::HEADER_X_FORWARDED_AWS_ELB, $method->invoke($middleware)); - line 182: $configuration->trustProxies(headers: Request::HEADER_X_FORWARDED_FOR); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 199: public function testTrustHosts() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 19. Evidence: - line 199: public function testTrustHosts() - line 211: $this->assertEquals(['^(.+\.)?laravel\.test$'], $middleware->hosts()); - line 213: $configuration->trustHosts(); - line 214: $this->assertEquals(['^(.+\.)?laravel\.test$'], $middleware->hosts()); - line 216: $configuration->trustHosts(at: ['my.test']); - line 217: $this->assertEquals(['my.test', '^(.+\.)?laravel\.test$'], $middleware->hosts()); - line 219: $configuration->trustHosts(at: static fn () => ['my.test']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 201: $app = Mockery::mock(Application::class); - Test @ line 241: public function testEncryptCookies() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 241: public function testEncryptCookies() - line 247: $this->assertFalse($middleware->isDisabled('aaa')); - line 248: $this->assertFalse($middleware->isDisabled('bbb')); - line 250: $configuration->encryptCookies(except: [ - line 255: $this->assertTrue($middleware->isDisabled('aaa')); - line 256: $this->assertTrue($middleware->isDisabled('bbb')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 244: $encrypter = Mockery::mock(Encrypter::class); - Test @ line 259: public function testPreventRequestsDuringMaintenance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 259: public function testPreventRequestsDuringMaintenance() - line 271: $method = $reflection->getMethod('inExceptArray'); - line 278: $this->assertFalse($method->invoke($middleware, $request)); - line 280: $configuration->preventRequestsDuringMaintenance(['metrics/*']); - line 281: $this->assertTrue($method->invoke($middleware, $request)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 263: $mode = Mockery::mock(MaintenanceMode::class); - line 266: $app = Mockery::mock(Application::class); ❌ tests/Foundation/Console/AboutCommandTest.php - Test @ line 16: public function testItCanFormatForCliInterface($format, $expected) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 16: public function testItCanFormatForCliInterface($format, $expected) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 16: public function testItCanFormatForCliInterface($format, $expected) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 32: public function testItCanFormatForJsonInterface($format, $expected) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 32: public function testItCanFormatForJsonInterface($format, $expected) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 32: public function testItCanFormatForJsonInterface($format, $expected) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/Console/CliDumperTest.php - Test @ line 53: public function testArray() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 53: public function testArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 86: public function testObject() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 86: public function testObject() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 117: public function testWhenIsFileViewIsNotViewCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 117: public function testWhenIsFileViewIsNotViewCompiled() - line 129: $method = $reflection->getMethod('isCompiledViewFile'); - line 130: $isCompiledViewFile = $method->invoke($dumper, $file); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 117: public function testWhenIsFileViewIsNotViewCompiled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 135: public function testWhenIsFileViewIsViewCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 135: public function testWhenIsFileViewIsViewCompiled() - line 147: $method = $reflection->getMethod('isCompiledViewFile'); - line 148: $isCompiledViewFile = $method->invoke($dumper, $file); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 135: public function testWhenIsFileViewIsViewCompiled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 153: public function testGetOriginalViewCompiledFile() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 153: public function testGetOriginalViewCompiledFile() - line 166: $method = $reflection->getMethod('getOriginalFileForCompiledView'); - line 168: $this->assertSame($original, $method->invoke($dumper, $compiled)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 171: public function testWhenGetOriginalViewCompiledFileFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 171: public function testWhenGetOriginalViewCompiledFileFails() - line 184: $method = $reflection->getMethod('getOriginalFileForCompiledView'); - line 186: $this->assertSame($original, $method->invoke($dumper, $compiled)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 189: public function testUnresolvableSource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 189: public function testUnresolvableSource() - line 191: CliDumper::resolveDumpSourceUsing(fn () => null); - line 193: $output = $this->dump('string'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 200: public function testUnresolvableLine() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 200: public function testUnresolvableLine() - line 202: CliDumper::resolveDumpSourceUsing(function () { - line 210: $output = $this->dump('hey from view'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Foundation/Console/KernelTest.php - Test @ line 14: public function testItDispatchesTerminatingEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 14: public function testItDispatchesTerminatingEvent() - line 19: $app->instance('events', $events); - line 21: $events->listen(function (Terminating $terminating) use (&$called) { - line 24: $app->terminating(function () use (&$called) { - line 28: $kernel->terminate(new StringInput('tinker'), 0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 14: public function testItDispatchesTerminatingEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/Console/RouteListCommandTest.php - Test @ line 72: public function testNoMiddlewareIfNotVerbose() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 72: public function testNoMiddlewareIfNotVerbose() - line 74: $this->app->call('route:list'); - line 75: $output = $this->app->output(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 80: public function testSortRouteListAsc() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 80: public function testSortRouteListAsc() - line 82: $this->app->call('route:list', ['--json' => true, '--sort' => 'domain,uri']); - line 83: $output = $this->app->output(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 80: public function testSortRouteListAsc() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 90: public function testSortRouteListDesc() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 90: public function testSortRouteListDesc() - line 92: $this->app->call('route:list', ['--json' => true, '--sort' => 'domain,uri', '--reverse' => true]); - line 93: $output = $this->app->output(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 90: public function testSortRouteListDesc() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 100: public function testSortRouteListDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 100: public function testSortRouteListDefault() - line 102: $this->app->call('route:list', ['--json' => true]); - line 103: $output = $this->app->output(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 100: public function testSortRouteListDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 110: public function testSortRouteListPrecedence() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 110: public function testSortRouteListPrecedence() - line 112: $this->app->call('route:list', ['--json' => true, '--sort' => 'definition']); - line 113: $output = $this->app->output(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 110: public function testSortRouteListPrecedence() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 120: public function testMiddlewareGroupsAssignmentInCli() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 120: public function testMiddlewareGroupsAssignmentInCli() - line 122: $this->app->call('route:list', ['-v' => true]); - line 123: $output = $this->app->output(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 136: public function testMiddlewareGroupsExpandInCliIfVeryVerbose() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 136: public function testMiddlewareGroupsExpandInCliIfVeryVerbose() - line 138: $this->app->call('route:list', ['-vv' => true]); - line 139: $output = $this->app->output(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 152: public function testMiddlewareGroupsAssignmentInJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 152: public function testMiddlewareGroupsAssignmentInJson() - line 154: $this->app->call('route:list', ['--json' => true, '-v' => true]); - line 155: $output = $this->app->output(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 168: public function testMiddlewareGroupsExpandInJsonIfVeryVerbose() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 168: public function testMiddlewareGroupsExpandInJsonIfVeryVerbose() - line 170: $this->app->call('route:list', ['--json' => true, '-vv' => true]); - line 171: $output = $this->app->output(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 184: public function testMiddlewareGroupsExpandCorrectlySortedIfVeryVerbose() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 184: public function testMiddlewareGroupsExpandCorrectlySortedIfVeryVerbose() - line 186: $this->app->call('route:list', ['--json' => true, '-vv' => true]); - line 187: $output = $this->app->output(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 184: public function testMiddlewareGroupsExpandCorrectlySortedIfVeryVerbose() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 194: public function testFilterByMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 194: public function testFilterByMiddleware() - line 196: $this->app->call('route:list', ['--json' => true, '-v' => true, '--middleware' => 'auth']); - line 197: $output = $this->app->output(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 194: public function testFilterByMiddleware() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/Console/ServeCommandLogParserTest.php - Test @ line 31: public function testExtractRequestPortWithMissingPort() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 31: public function testExtractRequestPortWithMissingPort() - line 35: $this->expectException(\InvalidArgumentException::class); - line 36: $this->expectExceptionMessage('Failed to extract the request port. Ensure the log line contains a valid port: [Mon Nov 19 10:30:45 2024] Info'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 31: public function testExtractRequestPortWithMissingPort() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 41: public function testExtractRequestPortWithInvalidPortFormat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 41: public function testExtractRequestPortWithInvalidPortFormat() - line 45: $this->expectException(\InvalidArgumentException::class); - line 46: $this->expectExceptionMessage('Failed to extract the request port. Ensure the log line contains a valid port: [Mon Nov 19 10:30:45 2024] :abcd Info'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 41: public function testExtractRequestPortWithInvalidPortFormat() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 51: public function testExtractRequestPortWithEmptyLogLine() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 51: public function testExtractRequestPortWithEmptyLogLine() - line 53: $this->expectException(\InvalidArgumentException::class); - line 54: $this->expectExceptionMessage('Failed to extract the request port. Ensure the log line contains a valid port: '); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 51: public function testExtractRequestPortWithEmptyLogLine() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 59: public function testExtractRequestPortWithWhitespaceOnlyLine() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 59: public function testExtractRequestPortWithWhitespaceOnlyLine() - line 61: $this->expectException(\InvalidArgumentException::class); - line 62: $this->expectExceptionMessage('Failed to extract the request port. Ensure the log line contains a valid port: '); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 59: public function testExtractRequestPortWithWhitespaceOnlyLine() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 67: public function testExtractRequestPortWithRandomString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 67: public function testExtractRequestPortWithRandomString() - line 71: $this->expectException(\InvalidArgumentException::class); - line 72: $this->expectExceptionMessage('Failed to extract the request port. Ensure the log line contains a valid port: Random log entry without port'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 67: public function testExtractRequestPortWithRandomString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/Exceptions/Renderer/FrameTest.php - Test @ line 21: public function test_it_normalizes_file_path_on_unix($frameData, $basePath, $expected) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 21: public function test_it_normalizes_file_path_on_unix($frameData, $basePath, $expected) - line 23: $exception = m::mock(FlattenException::class); - line 27: $this->assertEquals($expected, $frame->file()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 23: $exception = m::mock(FlattenException::class); - Test @ line 56: public function test_it_normalizes_file_path_on_windows($frameData, $basePath, $expected) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 56: public function test_it_normalizes_file_path_on_windows($frameData, $basePath, $expected) - line 58: $exception = m::mock(FlattenException::class); - line 62: $this->assertEquals($expected, $frame->file()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 58: $exception = m::mock(FlattenException::class); - Test @ line 91: public function test_it_determines_if_frame_is_from_vendor_on_unix($frameData, $basePath, $expected) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 91: public function test_it_determines_if_frame_is_from_vendor_on_unix($frameData, $basePath, $expected) - line 93: $exception = m::mock(FlattenException::class); - line 97: $this->assertEquals($expected, $frame->isFromVendor()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 93: $exception = m::mock(FlattenException::class); - Test @ line 126: public function test_it_determines_if_frame_is_from_vendor_on_windows($frameData, $basePath, $expected) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 126: public function test_it_determines_if_frame_is_from_vendor_on_windows($frameData, $basePath, $expected) - line 128: $exception = m::mock(FlattenException::class); - line 132: $this->assertEquals($expected, $frame->isFromVendor()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 128: $exception = m::mock(FlattenException::class); ❌ tests/Foundation/Exceptions/Renderer/ListenerTest.php - Test @ line 17: public function test_queries_returns_expected_shape_after_query_executed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 17: public function test_queries_returns_expected_shape_after_query_executed() - line 19: $connection = m::mock(); - line 28: $listener->onQueryExecuted($event); - line 30: $queries = $listener->queries(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 17: public function test_queries_returns_expected_shape_after_query_executed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/FoundationAliasLoaderTest.php - Test @ line 10: public function testLoaderCanBeCreatedAndRegisteredOnce() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 10: public function testLoaderCanBeCreatedAndRegisteredOnce() - line 12: $loader = AliasLoader::getInstance(['foo' => 'bar']); - line 14: $this->assertEquals(['foo' => 'bar'], $loader->getAliases()); - line 15: $this->assertFalse($loader->isRegistered()); - line 16: $loader->register(); - line 18: $this->assertTrue($loader->isRegistered()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 27: public function testLoaderCanBeCreatedAndRegisteredMergingAliases() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 27: public function testLoaderCanBeCreatedAndRegisteredMergingAliases() - line 29: $loader = AliasLoader::getInstance(['foo' => 'bar']); - line 30: $this->assertEquals(['foo' => 'bar'], $loader->getAliases()); - line 33: $this->assertEquals(['foo2' => 'bar2', 'foo' => 'bar'], $loader->getAliases()); - line 37: $this->assertEquals(['foo2' => 'bar2', 'foo' => 'baz'], $loader->getAliases()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 40: public function testLoaderCanAliasAndLoadClasses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 40: public function testLoaderCanAliasAndLoadClasses() - line 42: $loader = AliasLoader::getInstance(['some_alias_foo_bar' => FoundationAliasLoaderStub::class]); - line 44: $result = $loader->load('some_alias_foo_bar'); - line 49: $result2 = $loader->load('bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 40: public function testLoaderCanAliasAndLoadClasses() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 53: public function testSetAlias() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 53: public function testSetAlias() - line 55: $loader = AliasLoader::getInstance(); - line 56: $loader->setAliases(['some_alias_foo' => FoundationAliasLoaderStub::class]); - line 58: $result = $loader->load('some_alias_foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 53: public function testSetAlias() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/FoundationApplicationBuilderTest.php - Test @ line 22: public function testBaseDirectoryWithArg() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 22: public function testBaseDirectoryWithArg() - line 26: $app = Application::configure(__DIR__.'/as-arg')->create(); - line 28: $this->assertSame(__DIR__.'/as-arg', $app->basePath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 24: $_ENV['APP_BASE_PATH'] = __DIR__.'/as-env'; - Test @ line 31: public function testBaseDirectoryWithEnv() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 31: public function testBaseDirectoryWithEnv() - line 35: $app = Application::configure()->create(); - line 37: $this->assertSame(__DIR__.'/as-env', $app->basePath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 33: $_ENV['APP_BASE_PATH'] = __DIR__.'/as-env'; - Test @ line 40: public function testBaseDirectoryWithComposer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 40: public function testBaseDirectoryWithComposer() - line 42: $app = Application::configure()->create(); - line 44: $this->assertSame(dirname(__DIR__, 2), $app->basePath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 47: public function testStoragePathWithGlobalEnvVariable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 47: public function testStoragePathWithGlobalEnvVariable() - line 51: $app = Application::configure()->create(); - line 53: $this->assertSame(__DIR__.'/env-storage', $app->storagePath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 49: $_ENV['LARAVEL_STORAGE_PATH'] = __DIR__.'/env-storage'; - Test @ line 56: public function testStoragePathWithGlobalServerVariable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 56: public function testStoragePathWithGlobalServerVariable() - line 60: $app = Application::configure()->create(); - line 62: $this->assertSame(__DIR__.'/server-storage', $app->storagePath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 58: $_SERVER['LARAVEL_STORAGE_PATH'] = __DIR__.'/server-storage'; - Test @ line 65: public function testStoragePathPrefersEnvVariable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 65: public function testStoragePathPrefersEnvVariable() - line 70: $app = Application::configure()->create(); - line 72: $this->assertSame(__DIR__.'/env-storage', $app->storagePath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 67: $_ENV['LARAVEL_STORAGE_PATH'] = __DIR__.'/env-storage'; - line 68: $_SERVER['LARAVEL_STORAGE_PATH'] = __DIR__.'/server-storage'; - Test @ line 75: public function testStoragePathBasedOnBasePath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 75: public function testStoragePathBasedOnBasePath() - line 77: $app = Application::configure()->create(); - line 78: $this->assertSame($app->basePath().DIRECTORY_SEPARATOR.'storage', $app->storagePath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 81: public function testStoragePathCanBeCustomized() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 81: public function testStoragePathCanBeCustomized() - line 85: $app = Application::configure()->create(); - line 86: $app->useStoragePath(__DIR__.'/custom-storage'); - line 88: $this->assertSame(__DIR__.'/custom-storage', $app->storagePath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 83: $_ENV['LARAVEL_STORAGE_PATH'] = __DIR__.'/env-storage'; ❌ tests/Foundation/FoundationApplicationTest.php - Test @ line 24: public function testSetLocaleSetsLocaleAndFiresLocaleChangedEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 24: public function testSetLocaleSetsLocaleAndFiresLocaleChangedEvent() - line 28: $app['config'] = $config = m::mock(stdClass::class); - line 38: $app->setLocale('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 28: $app['config'] = $config = m::mock(stdClass::class); - line 31: $app['translator'] = $trans = m::mock(stdClass::class); - line 33: $app['events'] = $events = m::mock(stdClass::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 24: public function testSetLocaleSetsLocaleAndFiresLocaleChangedEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 41: public function testServiceProvidersAreCorrectlyRegistered() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 41: public function testServiceProvidersAreCorrectlyRegistered() - line 43: $provider = m::mock(ApplicationBasicServiceProviderStub::class); - line 47: $app->register($provider); - line 49: $this->assertArrayHasKey($class, $app->getLoadedProviders()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 43: $provider = m::mock(ApplicationBasicServiceProviderStub::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 41: public function testServiceProvidersAreCorrectlyRegistered() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 52: public function testClassesAreBoundWhenServiceProviderIsRegistered() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 52: public function testClassesAreBoundWhenServiceProviderIsRegistered() - line 55: $app->register($provider = new class($app) extends ServiceProvider - line 62: $this->assertArrayHasKey(get_class($provider), $app->getLoadedProviders()); - line 64: $instance = $app->make(AbstractClass::class); - line 67: $this->assertNotSame($instance, $app->make(AbstractClass::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 52: public function testClassesAreBoundWhenServiceProviderIsRegistered() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 70: public function testSingletonsAreCreatedWhenServiceProviderIsRegistered() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 70: public function testSingletonsAreCreatedWhenServiceProviderIsRegistered() - line 73: $app->register($provider = new class($app) extends ServiceProvider - line 81: $this->assertArrayHasKey(get_class($provider), $app->getLoadedProviders()); - line 83: $instance = $app->make(AbstractClass::class); - line 86: $this->assertSame($instance, $app->make(AbstractClass::class)); - line 88: $instance = $app->make(NonContractBackedClass::class); - line 91: $this->assertSame($instance, $app->make(NonContractBackedClass::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 94: public function testServiceProvidersAreCorrectlyRegisteredWhenRegisterMethodIsNotFilled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 94: public function testServiceProvidersAreCorrectlyRegisteredWhenRegisterMethodIsNotFilled() - line 96: $provider = m::mock(ServiceProvider::class); - line 100: $app->register($provider); - line 102: $this->assertArrayHasKey($class, $app->getLoadedProviders()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 96: $provider = m::mock(ServiceProvider::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 94: public function testServiceProvidersAreCorrectlyRegisteredWhenRegisterMethodIsNotFilled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 105: public function testServiceProvidersCouldBeLoaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 105: public function testServiceProvidersCouldBeLoaded() - line 107: $provider = m::mock(ServiceProvider::class); - line 111: $app->register($provider); - line 113: $this->assertTrue($app->providerIsLoaded($class)); - line 114: $this->assertFalse($app->providerIsLoaded(ApplicationBasicServiceProviderStub::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 107: $provider = m::mock(ServiceProvider::class); - Test @ line 117: public function testDeferredServicesMarkedAsBound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 117: public function testDeferredServicesMarkedAsBound() - line 120: $app->setDeferredServices(['foo' => ApplicationDeferredServiceProviderStub::class]); - line 121: $this->assertTrue($app->bound('foo')); - line 122: $this->assertSame('foo', $app->make('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 125: public function testDeferredServicesAreSharedProperly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 125: public function testDeferredServicesAreSharedProperly() - line 128: $app->setDeferredServices(['foo' => ApplicationDeferredSharedServiceProviderStub::class]); - line 129: $this->assertTrue($app->bound('foo')); - line 130: $one = $app->make('foo'); - line 131: $two = $app->make('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 137: public function testDeferredServicesCanBeExtended() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 137: public function testDeferredServicesCanBeExtended() - line 140: $app->setDeferredServices(['foo' => ApplicationDeferredServiceProviderStub::class]); - line 141: $app->extend('foo', function ($instance, $container) { - line 144: $this->assertSame('foobar', $app->make('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 147: public function testDeferredServiceProviderIsRegisteredOnlyOnce() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 147: public function testDeferredServiceProviderIsRegisteredOnlyOnce() - line 150: $app->setDeferredServices(['foo' => ApplicationDeferredServiceProviderCountStub::class]); - line 151: $obj = $app->make('foo'); - line 153: $this->assertSame($obj, $app->make('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 157: public function testDeferredServiceDontRunWhenInstanceSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 157: public function testDeferredServiceDontRunWhenInstanceSet() - line 160: $app->setDeferredServices(['foo' => ApplicationDeferredServiceProviderStub::class]); - line 161: $app->instance('foo', 'bar'); - line 162: $instance = $app->make('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 166: public function testDeferredServicesAreLazilyInitialized() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 166: public function testDeferredServicesAreLazilyInitialized() - line 170: $app->setDeferredServices(['foo' => ApplicationDeferredServiceProviderStub::class]); - line 171: $this->assertTrue($app->bound('foo')); - line 173: $app->extend('foo', function ($instance, $container) { - line 177: $this->assertSame('foobar', $app->make('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 181: public function testDeferredServicesCanRegisterFactories() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 181: public function testDeferredServicesCanRegisterFactories() - line 184: $app->setDeferredServices(['foo' => ApplicationFactoryProviderStub::class]); - line 185: $this->assertTrue($app->bound('foo')); - line 186: $this->assertEquals(1, $app->make('foo')); - line 187: $this->assertEquals(2, $app->make('foo')); - line 188: $this->assertEquals(3, $app->make('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 191: public function testSingleProviderCanProvideMultipleDeferredServices() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 191: public function testSingleProviderCanProvideMultipleDeferredServices() - line 194: $app->setDeferredServices([ - line 198: $this->assertSame('foo', $app->make('foo')); - line 199: $this->assertSame('foobar', $app->make('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 202: public function testDeferredServiceIsLoadedWhenAccessingImplementationThroughInterface() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 202: public function testDeferredServiceIsLoadedWhenAccessingImplementationThroughInterface() - line 205: $app->setDeferredServices([ - line 209: $instance = $app->make(SampleInterface::class); - line 210: $this->assertSame('foo', $instance->getPrimitive()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 213: public function testEnvironment() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 213: public function testEnvironment() - line 218: $this->assertSame('foo', $app->environment()); - line 220: $this->assertTrue($app->environment('foo')); - line 221: $this->assertTrue($app->environment('f*')); - line 222: $this->assertTrue($app->environment('foo', 'bar')); - line 223: $this->assertTrue($app->environment(['foo', 'bar'])); - line 225: $this->assertFalse($app->environment('qux')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 231: public function testEnvironmentHelpers() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 231: public function testEnvironmentHelpers() - line 236: $this->assertTrue($local->isLocal()); - line 237: $this->assertFalse($local->isProduction()); - line 238: $this->assertFalse($local->runningUnitTests()); - line 243: $this->assertTrue($production->isProduction()); - line 244: $this->assertFalse($production->isLocal()); - line 245: $this->assertFalse($production->runningUnitTests()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 255: public function testDebugHelper() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 255: public function testDebugHelper() - line 260: $this->assertFalse($debugOff->hasDebugModeEnabled()); - line 265: $this->assertTrue($debugOn->hasDebugModeEnabled()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 268: public function testMethodAfterLoadingEnvironmentAddsClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 268: public function testMethodAfterLoadingEnvironmentAddsClosure() - line 274: $app->afterLoadingEnvironment($closure); - line 275: $this->assertArrayHasKey(0, $app['events']->getListeners('bootstrapped: Illuminate\Foundation\Bootstrap\LoadEnvironmentVariables')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 268: public function testMethodAfterLoadingEnvironmentAddsClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 278: public function testBeforeBootstrappingAddsClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 278: public function testBeforeBootstrappingAddsClosure() - line 284: $app->beforeBootstrapping(RegisterFacades::class, $closure); - line 285: $this->assertArrayHasKey(0, $app['events']->getListeners('bootstrapping: Illuminate\Foundation\Bootstrap\RegisterFacades')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 278: public function testBeforeBootstrappingAddsClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 288: public function testTerminationTests() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 288: public function testTerminationTests() - line 305: $app->terminating($callback1); - line 306: $app->terminating($callback2); - line 307: $app->terminating($callback3); - line 309: $app->terminate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 314: public function testAfterBootstrappingAddsClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 314: public function testAfterBootstrappingAddsClosure() - line 320: $app->afterBootstrapping(RegisterFacades::class, $closure); - line 321: $this->assertArrayHasKey(0, $app['events']->getListeners('bootstrapped: Illuminate\Foundation\Bootstrap\RegisterFacades')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 314: public function testAfterBootstrappingAddsClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 324: public function testTerminationCallbacksCanAcceptAtNotation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 324: public function testTerminationCallbacksCanAcceptAtNotation() - line 327: $app->terminating(ConcreteTerminator::class.'@terminate'); - line 329: $app->terminate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 324: public function testTerminationCallbacksCanAcceptAtNotation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 334: public function testBootingCallbacks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 334: public function testBootingCallbacks() - line 349: $application->booting($closure); - line 350: $application->booting($closure2); - line 352: $application->boot(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 334: public function testBootingCallbacks() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 357: public function testBootedCallbacks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 357: public function testBootedCallbacks() - line 377: $application->booting($closure); - line 378: $application->booted($closure); - line 379: $application->booted($closure2); - line 380: $application->boot(); - line 384: $application->booted($closure3); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 357: public function testBootedCallbacks() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 389: public function testGetNamespace() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 389: public function testGetNamespace() - line 394: $this->assertSame('Laravel\\One\\', $app1->getNamespace()); - line 395: $this->assertSame('Laravel\\Two\\', $app2->getNamespace()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 398: public function testCachePathsResolveToBootstrapCacheDirectory() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 398: public function testCachePathsResolveToBootstrapCacheDirectory() - line 403: $this->assertSame('/base/path'.$ds.'bootstrap'.$ds.'cache/services.php', $app->getCachedServicesPath()); - line 404: $this->assertSame('/base/path'.$ds.'bootstrap'.$ds.'cache/packages.php', $app->getCachedPackagesPath()); - line 405: $this->assertSame('/base/path'.$ds.'bootstrap'.$ds.'cache/config.php', $app->getCachedConfigPath()); - line 406: $this->assertSame('/base/path'.$ds.'bootstrap'.$ds.'cache/routes-v7.php', $app->getCachedRoutesPath()); - line 407: $this->assertSame('/base/path'.$ds.'bootstrap'.$ds.'cache/events.php', $app->getCachedEventsPath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 410: public function testEnvPathsAreUsedForCachePathsWhenSpecified() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 410: public function testEnvPathsAreUsedForCachePathsWhenSpecified() - line 419: $this->assertSame('/absolute/path/services.php', $app->getCachedServicesPath()); - line 420: $this->assertSame('/absolute/path/packages.php', $app->getCachedPackagesPath()); - line 421: $this->assertSame('/absolute/path/config.php', $app->getCachedConfigPath()); - line 422: $this->assertSame('/absolute/path/routes.php', $app->getCachedRoutesPath()); - line 423: $this->assertSame('/absolute/path/events.php', $app->getCachedEventsPath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 413: $_SERVER['APP_SERVICES_CACHE'] = '/absolute/path/services.php'; - line 414: $_SERVER['APP_PACKAGES_CACHE'] = '/absolute/path/packages.php'; - line 415: $_SERVER['APP_CONFIG_CACHE'] = '/absolute/path/config.php'; - line 416: $_SERVER['APP_ROUTES_CACHE'] = '/absolute/path/routes.php'; - line 417: $_SERVER['APP_EVENTS_CACHE'] = '/absolute/path/events.php'; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 425: unset( - Test @ line 434: public function testEnvPathsAreUsedAndMadeAbsoluteForCachePathsWhenSpecifiedAsRelative() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 434: public function testEnvPathsAreUsedAndMadeAbsoluteForCachePathsWhenSpecifiedAsRelative() - line 444: $this->assertSame('/base/path'.$ds.'relative/path/services.php', $app->getCachedServicesPath()); - line 445: $this->assertSame('/base/path'.$ds.'relative/path/packages.php', $app->getCachedPackagesPath()); - line 446: $this->assertSame('/base/path'.$ds.'relative/path/config.php', $app->getCachedConfigPath()); - line 447: $this->assertSame('/base/path'.$ds.'relative/path/routes.php', $app->getCachedRoutesPath()); - line 448: $this->assertSame('/base/path'.$ds.'relative/path/events.php', $app->getCachedEventsPath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 437: $_SERVER['APP_SERVICES_CACHE'] = 'relative/path/services.php'; - line 438: $_SERVER['APP_PACKAGES_CACHE'] = 'relative/path/packages.php'; - line 439: $_SERVER['APP_CONFIG_CACHE'] = 'relative/path/config.php'; - line 440: $_SERVER['APP_ROUTES_CACHE'] = 'relative/path/routes.php'; - line 441: $_SERVER['APP_EVENTS_CACHE'] = 'relative/path/events.php'; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 450: unset( - Test @ line 459: public function testEnvPathsAreUsedAndMadeAbsoluteForCachePathsWhenSpecifiedAsRelativeWithNullBasePath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 459: public function testEnvPathsAreUsedAndMadeAbsoluteForCachePathsWhenSpecifiedAsRelativeWithNullBasePath() - line 469: $this->assertSame($ds.'relative/path/services.php', $app->getCachedServicesPath()); - line 470: $this->assertSame($ds.'relative/path/packages.php', $app->getCachedPackagesPath()); - line 471: $this->assertSame($ds.'relative/path/config.php', $app->getCachedConfigPath()); - line 472: $this->assertSame($ds.'relative/path/routes.php', $app->getCachedRoutesPath()); - line 473: $this->assertSame($ds.'relative/path/events.php', $app->getCachedEventsPath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 462: $_SERVER['APP_SERVICES_CACHE'] = 'relative/path/services.php'; - line 463: $_SERVER['APP_PACKAGES_CACHE'] = 'relative/path/packages.php'; - line 464: $_SERVER['APP_CONFIG_CACHE'] = 'relative/path/config.php'; - line 465: $_SERVER['APP_ROUTES_CACHE'] = 'relative/path/routes.php'; - line 466: $_SERVER['APP_EVENTS_CACHE'] = 'relative/path/events.php'; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 475: unset( - Test @ line 484: public function testEnvPathsAreAbsoluteInWindows() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 484: public function testEnvPathsAreAbsoluteInWindows() - line 487: $app->addAbsoluteCachePathPrefix('C:'); - line 494: $this->assertSame('C:\framework\services.php', $app->getCachedServicesPath()); - line 495: $this->assertSame('C:\framework\packages.php', $app->getCachedPackagesPath()); - line 496: $this->assertSame('C:\framework\config.php', $app->getCachedConfigPath()); - line 497: $this->assertSame('C:\framework\routes.php', $app->getCachedRoutesPath()); - line 498: $this->assertSame('C:\framework\events.php', $app->getCachedEventsPath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 488: $_SERVER['APP_SERVICES_CACHE'] = 'C:\framework\services.php'; - line 489: $_SERVER['APP_PACKAGES_CACHE'] = 'C:\framework\packages.php'; - line 490: $_SERVER['APP_CONFIG_CACHE'] = 'C:\framework\config.php'; - line 491: $_SERVER['APP_ROUTES_CACHE'] = 'C:\framework\routes.php'; - line 492: $_SERVER['APP_EVENTS_CACHE'] = 'C:\framework\events.php'; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 500: unset( - Test @ line 588: public function testAbortThrowsNotFoundHttpException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 588: public function testAbortThrowsNotFoundHttpException() - line 590: $this->expectException(NotFoundHttpException::class); - line 591: $this->expectExceptionMessage('Page was not found'); - line 594: $app->abort(404, 'Page was not found'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 588: public function testAbortThrowsNotFoundHttpException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 597: public function testAbortThrowsHttpException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 597: public function testAbortThrowsHttpException() - line 599: $this->expectException(HttpException::class); - line 600: $this->expectExceptionMessage('Request is bad'); - line 603: $app->abort(400, 'Request is bad'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 597: public function testAbortThrowsHttpException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 606: public function testAbortAcceptsHeaders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 606: public function testAbortAcceptsHeaders() - line 610: $app->abort(400, 'Bad request', ['X-FOO' => 'BAR']); - line 611: $this->fail(sprintf('abort must throw an %s.', HttpException::class)); - line 613: $this->assertSame(['X-FOO' => 'BAR'], $exception->getHeaders()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 617: public function test_routes_are_cached() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 617: public function test_routes_are_cached() - line 620: $app->instance('routes.cached', true); - line 621: $this->assertTrue($app->routesAreCached()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 624: public function test_routes_are_not_cached_by_instance_falls_back_to_file() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 624: public function test_routes_are_not_cached_by_instance_falls_back_to_file() - line 628: $app->instance('files', $files); - line 630: $this->assertFalse($app->routesAreCached()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 634: public function test_events_are_cached_uses_container_instance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 634: public function test_events_are_cached_uses_container_instance() - line 637: $app->instance('events.cached', true); - line 639: $app->instance('files', $files); - line 641: $this->assertTrue($app->eventsAreCached()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 645: public function test_events_are_cached_checks_filesystem_if_not_set() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 645: public function test_events_are_cached_checks_filesystem_if_not_set() - line 649: $app->instance('files', $files); - line 651: $this->assertFalse($app->eventsAreCached()); - line 653: $this->assertTrue($app->bound('events.cached')); - line 654: $this->assertFalse($app->make('events.cached')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Foundation/FoundationAuthenticationTest.php - Test @ line 57: public function testAssertAuthenticated() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 57: public function testAssertAuthenticated() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 67: public function testAssertGuest() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 67: public function testAssertGuest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 77: public function testAssertAuthenticatedAs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 77: public function testAssertAuthenticatedAs() - line 79: $expected = m::mock(Authenticatable::class); - line 83: $this->mockGuard() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 79: $expected = m::mock(Authenticatable::class); - line 88: $user = m::mock(Authenticatable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 77: public function testAssertAuthenticatedAs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 115: public function testAssertCredentials() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 115: public function testAssertCredentials() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 122: public function testAssertCredentialsMissing() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 122: public function testAssertCredentialsMissing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/FoundationAuthorizesRequestsTraitTest.php - Test @ line 20: public function testBasicGateCheck() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 20: public function testBasicGateCheck() - line 24: $gate = $this->getBasicGate(); - line 26: $gate->define('baz', function () { - line 32: $response = (new FoundationTestAuthorizeTraitClass)->authorize('baz'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 27: $_SERVER['_test.authorizes.trait'] = true; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 22: unset($_SERVER['_test.authorizes.trait']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 20: public function testBasicGateCheck() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 38: public function testAcceptsBackedEnumAsAbility() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 38: public function testAcceptsBackedEnumAsAbility() - line 42: $gate = $this->getBasicGate(); - line 44: $gate->define('baz', function () { - line 50: $response = (new FoundationTestAuthorizeTraitClass)->authorize(TestAbility::BAZ); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 45: $_SERVER['_test.authorizes.trait.enum'] = true; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 40: unset($_SERVER['_test.authorizes.trait.enum']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 38: public function testAcceptsBackedEnumAsAbility() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 56: public function testExceptionIsThrownIfGateCheckFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 56: public function testExceptionIsThrownIfGateCheckFails() - line 58: $this->expectException(AuthorizationException::class); - line 59: $this->expectExceptionMessage('This action is unauthorized.'); - line 61: $gate = $this->getBasicGate(); - line 63: $gate->define('baz', function () { - line 67: (new FoundationTestAuthorizeTraitClass)->authorize('baz'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 56: public function testExceptionIsThrownIfGateCheckFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 70: public function testPoliciesMayBeCalled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 70: public function testPoliciesMayBeCalled() - line 74: $gate = $this->getBasicGate(); - line 76: $gate->policy(FoundationAuthorizesRequestTestClass::class, FoundationAuthorizesRequestTestPolicy::class); - line 78: $response = (new FoundationTestAuthorizeTraitClass)->authorize('update', new FoundationAuthorizesRequestTestClass); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 72: unset($_SERVER['_test.authorizes.trait.policy']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 70: public function testPoliciesMayBeCalled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 84: public function testPolicyMethodMayBeGuessedPassingModelInstance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 84: public function testPolicyMethodMayBeGuessedPassingModelInstance() - line 88: $gate = $this->getBasicGate(); - line 90: $gate->policy(FoundationAuthorizesRequestTestClass::class, FoundationAuthorizesRequestTestPolicy::class); - line 92: $response = (new FoundationTestAuthorizeTraitClass)->authorize(new FoundationAuthorizesRequestTestClass); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 86: unset($_SERVER['_test.authorizes.trait.policy']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 84: public function testPolicyMethodMayBeGuessedPassingModelInstance() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 98: public function testPolicyMethodMayBeGuessedPassingClassName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 98: public function testPolicyMethodMayBeGuessedPassingClassName() - line 102: $gate = $this->getBasicGate(); - line 104: $gate->policy('\\'.FoundationAuthorizesRequestTestClass::class, FoundationAuthorizesRequestTestPolicy::class); - line 106: $response = (new FoundationTestAuthorizeTraitClass)->authorize('\\'.FoundationAuthorizesRequestTestClass::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 100: unset($_SERVER['_test.authorizes.trait.policy']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 98: public function testPolicyMethodMayBeGuessedPassingClassName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 112: public function testPolicyMethodMayBeGuessedAndNormalized() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 112: public function testPolicyMethodMayBeGuessedAndNormalized() - line 116: $gate = $this->getBasicGate(); - line 118: $gate->policy(FoundationAuthorizesRequestTestClass::class, FoundationAuthorizesRequestTestPolicy::class); - line 120: (new FoundationTestAuthorizeTraitClass)->store(new FoundationAuthorizesRequestTestClass); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 114: unset($_SERVER['_test.authorizes.trait.policy']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 112: public function testPolicyMethodMayBeGuessedAndNormalized() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 160: public function testPolicyMethodMayBeGuessedPassingModelInstance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 160: public function testPolicyMethodMayBeGuessedPassingModelInstance() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 162: $_SERVER['_test.authorizes.trait.policy'] = true; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 160: public function testPolicyMethodMayBeGuessedPassingModelInstance() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 167: public function testPolicyMethodMayBeGuessedPassingClassName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 167: public function testPolicyMethodMayBeGuessedPassingClassName() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 169: $_SERVER['_test.authorizes.trait.policy'] = true; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 167: public function testPolicyMethodMayBeGuessedPassingClassName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/FoundationCacheBasedMaintenanceModeTest.php - Test @ line 16: public function test_it_determines_whether_maintenance_mode_is_active() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 16: public function test_it_determines_whether_maintenance_mode_is_active() - line 18: $cache = m::mock(Factory::class, Repository::class); - line 19: $cache->shouldReceive('store')->with('store-key')->andReturnSelf(); - line 23: $cache->shouldReceive('has')->once()->with('key')->andReturnFalse(); - line 24: $this->assertFalse($manager->active()); - line 26: $cache->shouldReceive('has')->once()->with('key')->andReturnTrue(); - line 27: $this->assertTrue($manager->active()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 30: public function test_it_retrieves_payload_from_cache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 30: public function test_it_retrieves_payload_from_cache() - line 32: $cache = m::mock(Factory::class, Repository::class); - line 33: $cache->shouldReceive('store')->with('store-key')->andReturnSelf(); - line 38: $this->assertSame(['payload'], $manager->data()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 41: public function test_it_stores_payload_in_cache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 41: public function test_it_stores_payload_in_cache() - line 44: $cache->shouldReceive('store')->with('store-key')->andReturnSelf(); - line 47: $manager->activate(['payload']); - line 49: $cache->shouldHaveReceived('put')->once()->with('key', ['payload']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 41: public function test_it_stores_payload_in_cache() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 52: public function test_it_removes_payload_from_cache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 52: public function test_it_removes_payload_from_cache() - line 55: $cache->shouldReceive('store')->with('store-key')->andReturnSelf(); - line 58: $manager->deactivate(); - line 60: $cache->shouldHaveReceived('forget')->once()->with('key'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 52: public function test_it_removes_payload_from_cache() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/FoundationDocsCommandTest.php - Test @ line 77: public function testItMatchesSectionsThatStartWithInput() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 77: public function testItMatchesSectionsThatStartWithInput() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 86: public function testItMatchesSectionsWithFuzzyMatching() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 86: public function testItMatchesSectionsWithFuzzyMatching() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 131: public function testItCanUseCustomAskStrategy() Violations: - [BOOTSTRAP_PURITY_PUTENV] Note: putenv mutates process env for the whole PHP process unless restored. Evidence: - line 133: putenv('ARTISAN_DOCS_ASK_STRATEGY='.__DIR__.'/fixtures/always-dusk-ask-strategy.php'); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 131: public function testItCanUseCustomAskStrategy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 166: public function testItCatchesAndHandlesProcessInterruptExceptionsInAskStrategies() Violations: - [BOOTSTRAP_PURITY_PUTENV] Note: putenv mutates process env for the whole PHP process unless restored. Evidence: - line 168: putenv('ARTISAN_DOCS_ASK_STRATEGY='.__DIR__.'/fixtures/process-interrupt-strategy.php'); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 166: public function testItCatchesAndHandlesProcessInterruptExceptionsInAskStrategies() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 173: public function testItBubblesUpAskStrategyExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 173: public function testItBubblesUpAskStrategyExceptions() - line 177: $this->expectException(RuntimeException::class); - line 178: $this->expectExceptionMessage('strategy failed'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_PUTENV] Note: putenv mutates process env for the whole PHP process unless restored. Evidence: - line 175: putenv('ARTISAN_DOCS_ASK_STRATEGY='.__DIR__.'/fixtures/exception-throwing-strategy.php'); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 173: public function testItBubblesUpAskStrategyExceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 183: public function testItBubblesUpNonProcessInterruptExceptionsInAskStrategies() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 183: public function testItBubblesUpNonProcessInterruptExceptionsInAskStrategies() - line 187: $this->expectException(ProcessFailedException::class); - line 190: $this->expectExceptionMessage('The command "expected-command" failed. - line 196: $this->expectExceptionMessage('The command "\'expected-command\'" failed. - line 200: Working directory: expected-working-directory'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_PUTENV] Note: putenv mutates process env for the whole PHP process unless restored. Evidence: - line 185: putenv('ARTISAN_DOCS_ASK_STRATEGY='.__DIR__.'/fixtures/process-failure-strategy.php'); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 183: public function testItBubblesUpNonProcessInterruptExceptionsInAskStrategies() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 206: public function testItCanGuessTheRequestedPageWhenItIsTheStartOfAPageTitle() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 206: public function testItCanGuessTheRequestedPageWhenItIsTheStartOfAPageTitle() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 215: public function testItCanGuessTheRequestedPageWhenItIsContainedSomewhereInThePageTitle() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 215: public function testItCanGuessTheRequestedPageWhenItIsContainedSomewhereInThePageTitle() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 224: public function testItCanGuessTheWithTopAndTailMatching() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 224: public function testItCanGuessTheWithTopAndTailMatching() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 233: public function testItCanSpecifyCustomOpenCommandsViaEnvVariables() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 233: public function testItCanSpecifyCustomOpenCommandsViaEnvVariables() - line 237: $this->app[Kernel::class]->registerCommand($this->command()->setUrlOpener(null)); - line 239: @unlink($GLOBALS['open-strategy-output-path']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_PUTENV] Note: putenv mutates process env for the whole PHP process unless restored. Evidence: - line 236: putenv('ARTISAN_DOCS_OPEN_STRATEGY='.__DIR__.'/fixtures/open-strategy.php'); - [FORBIDDEN_SUPPRESSED_UNLINK] Evidence: - line 239: @unlink($GLOBALS['open-strategy-output-path']); - line 251: @unlink($GLOBALS['open-strategy-output-path']); - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 239: @unlink($GLOBALS['open-strategy-output-path']); - line 251: @unlink($GLOBALS['open-strategy-output-path']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 233: public function testItCanSpecifyCustomOpenCommandsViaEnvVariables() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 255: public function testItHandlesBadSyntaxInOpeners() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 255: public function testItHandlesBadSyntaxInOpeners() - line 258: $this->app[Kernel::class]->registerCommand($this->command()->setUrlOpener(null)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_PUTENV] Note: putenv mutates process env for the whole PHP process unless restored. Evidence: - line 257: putenv('ARTISAN_DOCS_OPEN_STRATEGY='.__DIR__.'/fixtures/bad-syntax-strategy.php'); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 255: public function testItHandlesBadSyntaxInOpeners() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 265: public function testItHandlesBadReturnTypesInOpeners() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 265: public function testItHandlesBadReturnTypesInOpeners() - line 268: $this->app[Kernel::class]->registerCommand($this->command()->setUrlOpener(null)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_PUTENV] Note: putenv mutates process env for the whole PHP process unless restored. Evidence: - line 267: putenv('ARTISAN_DOCS_OPEN_STRATEGY='.__DIR__.'/fixtures/bad-return-strategy.php'); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 265: public function testItHandlesBadReturnTypesInOpeners() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 275: public function testItCanPerformSearchAgainstLaravelDotCom() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 275: public function testItCanPerformSearchAgainstLaravelDotCom() - line 279: $this->app[Kernel::class]->registerCommand($this->command()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 278: $_SERVER['argv'] = explode(' ', 'artisan docs -- here is my search term for the laravel website'); - line 287: $_SERVER['argv'] = $argCache; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 275: public function testItCanPerformSearchAgainstLaravelDotCom() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 290: public function testUnknownSystemNotifiedToOpenManually() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 290: public function testUnknownSystemNotifiedToOpenManually() - line 292: $this->app[Kernel::class]->registerCommand($this->command()->setUrlOpener(null)->setSystemOsFamily('Laravel OS')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 290: public function testUnknownSystemNotifiedToOpenManually() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 299: public function testGuessedMatchesThatDirectlyContainTheGivenStringRankHigherThanArbitraryMatches() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 299: public function testGuessedMatchesThatDirectlyContainTheGivenStringRankHigherThanArbitraryMatches() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 308: public function testItHandlesPoorSpelling() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 308: public function testItHandlesPoorSpelling() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 317: public function testItHandlesNoInteractionOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 317: public function testItHandlesNoInteractionOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 326: public function testCanGetHelpWithoutInstantiatingDependencies() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 326: public function testCanGetHelpWithoutInstantiatingDependencies() - line 328: $help = (new DocsCommand())->getHelp(); - line 329: $this->stringContains('php artisan docs', $help); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 326: public function testCanGetHelpWithoutInstantiatingDependencies() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/FoundationExceptionsHandlerTest.php - Test @ line 87: public function testHandlerReportsExceptionAsContext() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 87: public function testHandlerReportsExceptionAsContext() - line 89: $logger = m::mock(LoggerInterface::class); - line 90: $this->container->instance(LoggerInterface::class, $logger); - line 91: $logger->shouldReceive('error')->withArgs(['Exception message', m::hasKey('exception')])->once(); - line 93: $this->handler->report(new RuntimeException('Exception message')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 89: $logger = m::mock(LoggerInterface::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 87: public function testHandlerReportsExceptionAsContext() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 96: public function testHandlerCallsContextMethodIfPresent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 96: public function testHandlerCallsContextMethodIfPresent() - line 98: $logger = m::mock(LoggerInterface::class); - line 99: $this->container->instance(LoggerInterface::class, $logger); - line 100: $logger->shouldReceive('error')->withArgs(['Exception message', m::subset(['foo' => 'bar'])])->once(); - line 102: $this->handler->report(new ContextProvidingException('Exception message')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 98: $logger = m::mock(LoggerInterface::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 96: public function testHandlerCallsContextMethodIfPresent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 105: public function testHandlerReportsExceptionWhenUnReportable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 105: public function testHandlerReportsExceptionWhenUnReportable() - line 107: $logger = m::mock(LoggerInterface::class); - line 108: $this->container->instance(LoggerInterface::class, $logger); - line 109: $logger->shouldReceive('error')->withArgs(['Exception message', m::hasKey('exception')])->once(); - line 111: $this->handler->report(new UnReportableException('Exception message')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 107: $logger = m::mock(LoggerInterface::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 105: public function testHandlerReportsExceptionWhenUnReportable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 114: public function testHandlerReportsExceptionWithCustomLogLevel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 114: public function testHandlerReportsExceptionWithCustomLogLevel() - line 116: $logger = m::mock(LoggerInterface::class); - line 117: $this->container->instance(LoggerInterface::class, $logger); - line 119: $logger->shouldReceive('critical')->withArgs(['Critical message', m::hasKey('exception')])->once(); - line 120: $logger->shouldReceive('error')->withArgs(['Error message', m::hasKey('exception')])->once(); - line 121: $logger->shouldReceive('log')->withArgs(['custom', 'Custom message', m::hasKey('exception')])->once(); - line 123: $this->handler->level(InvalidArgumentException::class, LogLevel::CRITICAL); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 116: $logger = m::mock(LoggerInterface::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 114: public function testHandlerReportsExceptionWithCustomLogLevel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 131: public function testHandlerIgnoresNotReportableExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 131: public function testHandlerIgnoresNotReportableExceptions() - line 133: $logger = m::mock(LoggerInterface::class); - line 134: $this->container->instance(LoggerInterface::class, $logger); - line 135: $logger->shouldNotReceive('log'); - line 137: $this->handler->ignore(RuntimeException::class); - line 139: $this->handler->report(new RuntimeException('Exception message')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 133: $logger = m::mock(LoggerInterface::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 131: public function testHandlerIgnoresNotReportableExceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 142: public function testHandlerCallsReportMethodWithDependencies() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 142: public function testHandlerCallsReportMethodWithDependencies() - line 144: $reporter = m::mock(ReportingService::class); - line 145: $this->container->instance(ReportingService::class, $reporter); - line 146: $reporter->shouldReceive('send')->withArgs(['Exception message'])->once(); - line 149: $this->container->instance(LoggerInterface::class, $logger); - line 150: $logger->shouldNotReceive('log'); - line 152: $this->handler->report(new ReportableException('Exception message')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 144: $reporter = m::mock(ReportingService::class); - line 148: $logger = m::mock(LoggerInterface::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 142: public function testHandlerCallsReportMethodWithDependencies() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 155: public function testHandlerReportsExceptionUsingCallableClass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 155: public function testHandlerReportsExceptionUsingCallableClass() - line 157: $reporter = m::mock(ReportingService::class); - line 158: $reporter->shouldReceive('send')->withArgs(['Exception message'])->once(); - line 161: $this->container->instance(LoggerInterface::class, $logger); - line 162: $logger->shouldNotReceive('log'); - line 164: $this->handler->reportable(new CustomReporter($reporter)); - line 166: $this->handler->report(new CustomException('Exception message')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 157: $reporter = m::mock(ReportingService::class); - line 160: $logger = m::mock(LoggerInterface::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 155: public function testHandlerReportsExceptionUsingCallableClass() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 169: public function testShouldReturnJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 169: public function testShouldReturnJson() - line 176: $shouldReturnJson = (fn () => $this->shouldReturnJson($request, $e))->call($this->handler); - line 181: $shouldReturnJson = (fn () => $this->shouldReturnJson($request, $e))->call($this->handler); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 185: public function testShouldReturnJsonWhen() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 185: public function testShouldReturnJsonWhen() - line 187: $this->request->shouldReceive('expectsJson')->never(); - line 192: $this->handler->shouldRenderJsonWhen(function ($r, $e) use ($request, $exception) { - line 199: $shouldReturnJson = (fn () => $this->shouldReturnJson($request, $exception))->call($this->handler); - line 202: $this->handler->shouldRenderJsonWhen(function ($r, $e) use ($request, $exception) { - line 209: $shouldReturnJson = (fn () => $this->shouldReturnJson($request, $exception))->call($this->handler); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 229: public function testReturnsCustomResponseFromRenderableCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 229: public function testReturnsCustomResponseFromRenderableCallback() - line 231: $this->handler->renderable(function (CustomException $e, $request) { - line 237: $response = $this->handler->render($this->request, new CustomException)->getContent(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 242: public function testReturnsCustomResponseFromCallableClass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 242: public function testReturnsCustomResponseFromCallableClass() - line 244: $this->handler->renderable(new CustomRenderer); - line 246: $response = $this->handler->render($this->request, new CustomException)->getContent(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 258: public function testReturnsResponseFromMappedRenderableException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 258: public function testReturnsResponseFromMappedRenderableException() - line 260: $this->handler->map(RuntimeException::class, RenderableException::class); - line 262: $response = $this->handler->render(Request::create('/'), new RuntimeException)->getContent(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 319: public function testValidateFileMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 319: public function testValidateFileMethod() - line 324: $this->container->singleton('redirect', function () use (&$argumentActual) { - line 357: $this->handler->render($request, $validationException); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 325: $redirector = m::mock(Redirector::class); - line 328: ->andReturn($responder = m::mock(RedirectResponse::class)); - line 343: $file = m::mock(UploadedFile::class); - line 351: $validator = m::mock(Validator::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 319: public function testValidateFileMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 362: public function testSuspiciousOperationReturns400WithoutReporting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 362: public function testSuspiciousOperationReturns400WithoutReporting() - line 367: $response = $this->handler->render($this->request, new SuspiciousOperationException('Invalid method override "__CONSTRUCT"')); - line 369: $this->assertEquals(400, $response->getStatusCode()); - line 370: $this->assertStringContainsString('"message": "Bad request."', $response->getContent()); - line 373: $this->container->instance(LoggerInterface::class, $logger); - line 374: $logger->shouldNotReceive('log'); - line 376: $this->handler->report(new SuspiciousOperationException('Invalid method override "__CONSTRUCT"')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 372: $logger = m::mock(LoggerInterface::class); - Test @ line 379: public function testRecordsNotFoundReturns404WithoutReporting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 379: public function testRecordsNotFoundReturns404WithoutReporting() - line 384: $response = $this->handler->render($this->request, new RecordsNotFoundException); - line 386: $this->assertEquals(404, $response->getStatusCode()); - line 387: $this->assertStringContainsString('"message": "Not found."', $response->getContent()); - line 390: $this->container->instance(LoggerInterface::class, $logger); - line 391: $logger->shouldNotReceive('log'); - line 393: $this->handler->report(new RecordsNotFoundException); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 389: $logger = m::mock(LoggerInterface::class); - Test @ line 396: public function testItReturnsSpecificErrorViewIfExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 396: public function testItReturnsSpecificErrorViewIfExists() - line 398: $viewFactory = m::mock(ViewFactory::class); - line 401: $this->container->instance(ViewFactory::class, $viewFactory); - line 407: return $this->getHttpExceptionView($e); - line 411: $this->assertSame('errors::502', $handler->getErrorView(new HttpException(502))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 398: $viewFactory = m::mock(ViewFactory::class); - Test @ line 414: public function testItReturnsFallbackErrorViewIfExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 414: public function testItReturnsFallbackErrorViewIfExists() - line 416: $viewFactory = m::mock(ViewFactory::class); - line 420: $this->container->instance(ViewFactory::class, $viewFactory); - line 426: return $this->getHttpExceptionView($e); - line 430: $this->assertSame('errors::5xx', $handler->getErrorView(new HttpException(502))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 416: $viewFactory = m::mock(ViewFactory::class); - Test @ line 433: public function testItReturnsNullIfNoErrorViewExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 433: public function testItReturnsNullIfNoErrorViewExists() - line 435: $viewFactory = m::mock(ViewFactory::class); - line 439: $this->container->instance(ViewFactory::class, $viewFactory); - line 445: return $this->getHttpExceptionView($e); - line 449: $this->assertNull($handler->getErrorView(new HttpException(404))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 435: $viewFactory = m::mock(ViewFactory::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 433: public function testItReturnsNullIfNoErrorViewExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 474: public function testItDoesNotCrashIfErrorViewThrowsWhileRenderingAndDebugFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 474: public function testItDoesNotCrashIfErrorViewThrowsWhileRenderingAndDebugFalse() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 474: public function testItDoesNotCrashIfErrorViewThrowsWhileRenderingAndDebugFalse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 480: public function testItDoesNotCrashIfErrorViewThrowsWhileRenderingAndDebugTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 480: public function testItDoesNotCrashIfErrorViewThrowsWhileRenderingAndDebugTrue() - line 485: $this->expectException(\Exception::class); - line 486: $this->expectExceptionMessage('Rendering this view throws an exception'); - line 487: $this->executeScenarioWhereErrorViewThrowsWhileRenderingAndDebugIs(true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 480: public function testItDoesNotCrashIfErrorViewThrowsWhileRenderingAndDebugTrue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 490: public function testAssertExceptionIsThrown() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 490: public function testAssertExceptionIsThrown() - line 521: Assert::fail('assertThrows failed: non matching exceptions are thrown.'); - line 540: return $exception->getMessage() === 'Some message.'; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 490: public function testAssertExceptionIsThrown() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 574: public function testAssertNoExceptionIsThrown() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 574: public function testAssertNoExceptionIsThrown() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 604: public function testItReportsDuplicateExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 604: public function testItReportsDuplicateExceptions() - line 607: $this->handler->reportable(function (\Throwable $e) use (&$reported) { - line 613: $this->handler->report($one = new RuntimeException('foo')); - line 614: $this->handler->report($one); - line 615: $this->handler->report($two = new RuntimeException('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 604: public function testItReportsDuplicateExceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 620: public function testItCanDedupeExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 620: public function testItCanDedupeExceptions() - line 624: $this->handler->reportable(function (\Throwable $e) use (&$reported) { - line 630: $this->handler->dontReportDuplicates(); - line 631: $this->handler->report($one = new RuntimeException('foo')); - line 632: $this->handler->report($one); - line 633: $this->handler->report($two = new RuntimeException('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 620: public function testItCanDedupeExceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 638: public function testItCanSkipExceptionReportingUsingCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 638: public function testItCanSkipExceptionReportingUsingCallback() - line 644: $this->handler->reportable(function (\Throwable $e) use (&$reported) { - line 650: $this->handler->dontReportWhen(function (\Throwable $e) { - line 654: $this->handler->report($e1); - line 655: $this->handler->report($e2); - line 656: $this->handler->report($e1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 638: public function testItCanSkipExceptionReportingUsingCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 661: public function testItDoesNotThrottleExceptionsByDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 661: public function testItDoesNotThrottleExceptionsByDefault() - line 664: $this->handler->reportable(function (\Throwable $e) use (&$reported) { - line 671: $this->handler->report(new RuntimeException("Exception {$i}")); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 661: public function testItDoesNotThrottleExceptionsByDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 677: public function testItDoesNotThrottleExceptionsWhenNullReturned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 677: public function testItDoesNotThrottleExceptionsWhenNullReturned() - line 687: $handler->reportable(function (\Throwable $e) use (&$reported) { - line 694: $handler->report(new RuntimeException("Exception {$i}")); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 677: public function testItDoesNotThrottleExceptionsWhenNullReturned() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 700: public function testItDoesNotThrottleExceptionsWhenUnlimitedLimit() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 700: public function testItDoesNotThrottleExceptionsWhenUnlimitedLimit() - line 706: return Limit::none(); - line 710: $handler->reportable(function (\Throwable $e) use (&$reported) { - line 717: $handler->report(new RuntimeException("Exception {$i}")); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 700: public function testItDoesNotThrottleExceptionsWhenUnlimitedLimit() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 723: public function testItCanSampleExceptionsByClass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 723: public function testItCanSampleExceptionsByClass() - line 730: $e instanceof RuntimeException => Lottery::odds(2, 10), - line 740: $handler->reportable(function (\Throwable $e) use (&$reported) { - line 747: $handler->report(new Exception("Exception {$i}")); - line 748: $handler->report(new RuntimeException("RuntimeException {$i}")); - line 751: [$runtimeExceptions, $baseExceptions] = collect($reported)->partition(fn ($e) => $e instanceof RuntimeException); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 723: public function testItCanSampleExceptionsByClass() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 756: public function testItRescuesExceptionsWhileThrottlingAndReports() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 756: public function testItRescuesExceptionsWhileThrottlingAndReports() - line 766: $handler->reportable(function (\Throwable $e) use (&$reported) { - line 772: $handler->report(new Exception('Something in the app went wrong.')); - line 775: $this->assertSame('Something in the app went wrong.', $reported[0]->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 778: public function testItRescuesExceptionsIfThereIsAnIssueResolvingTheRateLimiter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 778: public function testItRescuesExceptionsIfThereIsAnIssueResolvingTheRateLimiter() - line 784: return Limit::perDay(1); - line 788: $handler->reportable(function (\Throwable $e) use (&$reported) { - line 794: $this->container->bind(RateLimiter::class, function () use (&$resolved) { - line 800: $handler->report(new Exception('Something in the app went wrong.')); - line 804: $this->assertSame('Something in the app went wrong.', $reported[0]->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 807: public function testItRescuesExceptionsIfThereIsAnIssueWithTheRateLimiter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 807: public function testItRescuesExceptionsIfThereIsAnIssueWithTheRateLimiter() - line 813: return Limit::perDay(1); - line 817: $handler->reportable(function (\Throwable $e) use (&$reported) { - line 822: $this->container->instance(RateLimiter::class, $limiter = new class(new Repository(new NullStore)) extends RateLimiter - line 834: $handler->report(new Exception('Something in the app went wrong.')); - line 838: $this->assertSame('Something in the app went wrong.', $reported[0]->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 841: public function testItCanRateLimitExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 841: public function testItCanRateLimitExceptions() - line 847: return Limit::perMinute(7); - line 851: $handler->reportable(function (\Throwable $e) use (&$reported) { - line 856: $this->container->instance(RateLimiter::class, $limiter = new class(new Repository(new ArrayStore)) extends RateLimiter - line 867: Carbon::setTestNow(Carbon::now()->startOfDay()); - line 870: $handler->report(new Exception('Something in the app went wrong.')); - line 875: $this->assertSame('Something in the app went wrong.', $reported[0]->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 888: public function testRateLimitExpiresOnBoundary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 888: public function testRateLimitExpiresOnBoundary() - line 894: return Limit::perMinute(1); - line 898: $handler->reportable(function (\Throwable $e) use (&$reported) { - line 903: $this->container->instance(RateLimiter::class, $limiter = new class(new Repository(new ArrayStore)) extends RateLimiter - line 916: $handler->report(new Exception('Something in the app went wrong 1.')); - line 918: $handler->report(new Exception('Something in the app went wrong 1.')); - line 922: $this->assertSame('Something in the app went wrong 1.', $reported[0]->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Foundation/FoundationFormRequestTest.php - Test @ line 32: public function testValidatedMethodReturnsTheValidatedData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 32: public function testValidatedMethodReturnsTheValidatedData() - line 34: $request = $this->createRequest(['name' => 'specified', 'with' => 'extras']); - line 36: $request->validateResolved(); - line 38: $this->assertEquals(['name' => 'specified'], $request->validated()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 41: public function testValidatedMethodReturnsTheValidatedDataNestedRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 41: public function testValidatedMethodReturnsTheValidatedDataNestedRules() - line 45: $request = $this->createRequest($payload, FoundationTestFormRequestNestedStub::class); - line 47: $request->validateResolved(); - line 49: $this->assertEquals(['nested' => ['foo' => 'bar'], 'array' => [1, 2]], $request->validated()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 52: public function testValidatedMethodReturnsTheValidatedDataNestedChildRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 52: public function testValidatedMethodReturnsTheValidatedDataNestedChildRules() - line 56: $request = $this->createRequest($payload, FoundationTestFormRequestNestedChildStub::class); - line 58: $request->validateResolved(); - line 60: $this->assertEquals(['nested' => ['foo' => 'bar']], $request->validated()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 63: public function testValidatedMethodReturnsTheValidatedDataNestedArrayRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 63: public function testValidatedMethodReturnsTheValidatedDataNestedArrayRules() - line 67: $request = $this->createRequest($payload, FoundationTestFormRequestNestedArrayStub::class); - line 69: $request->validateResolved(); - line 71: $this->assertEquals(['nested' => [['bar' => 'baz'], ['bar' => 'baz2']]], $request->validated()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 74: public function testValidatedMethodNotValidateTwice() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 74: public function testValidatedMethodNotValidateTwice() - line 78: $request = $this->createRequest($payload, FoundationTestFormRequestTwiceStub::class); - line 80: $request->validateResolved(); - line 81: $request->validated(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 74: public function testValidatedMethodNotValidateTwice() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 86: public function testValidateThrowsWhenValidationFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 86: public function testValidateThrowsWhenValidationFails() - line 88: $this->expectException(ValidationException::class); - line 90: $request = $this->createRequest(['no' => 'name']); - line 94: $request->validateResolved(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 86: public function testValidateThrowsWhenValidationFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 97: public function testValidateMethodThrowsWhenAuthorizationFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 97: public function testValidateMethodThrowsWhenAuthorizationFails() - line 99: $this->expectException(AuthorizationException::class); - line 100: $this->expectExceptionMessage('This action is unauthorized.'); - line 102: $this->createRequest([], FoundationTestFormRequestForbiddenStub::class)->validateResolved(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 97: public function testValidateMethodThrowsWhenAuthorizationFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 105: public function testValidateThrowsExceptionFromAuthorizationResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 105: public function testValidateThrowsExceptionFromAuthorizationResponse() - line 107: $this->expectException(AuthorizationException::class); - line 108: $this->expectExceptionMessage('foo'); - line 110: $this->createRequest([], FoundationTestFormRequestForbiddenWithResponseStub::class)->validateResolved(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 105: public function testValidateThrowsExceptionFromAuthorizationResponse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 113: public function testValidateDoesntThrowExceptionFromResponseAllowed() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 113: public function testValidateDoesntThrowExceptionFromResponseAllowed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 118: public function testPrepareForValidationRunsBeforeValidation() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 118: public function testPrepareForValidationRunsBeforeValidation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 123: public function testAfterValidationRunsAfterValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 123: public function testAfterValidationRunsAfterValidation() - line 125: $request = $this->createRequest([], FoundationTestFormRequestHooks::class); - line 127: $request->validateResolved(); - line 129: $this->assertEquals(['name' => 'Adam'], $request->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 132: public function testValidatedMethodReturnsOnlyRequestedValidatedData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 132: public function testValidatedMethodReturnsOnlyRequestedValidatedData() - line 134: $request = $this->createRequest(['name' => 'specified', 'with' => 'extras']); - line 136: $request->validateResolved(); - line 138: $this->assertSame('specified', $request->validated('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 141: public function testValidatedMethodReturnsOnlyRequestedNestedValidatedData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 141: public function testValidatedMethodReturnsOnlyRequestedNestedValidatedData() - line 145: $request = $this->createRequest($payload, FoundationTestFormRequestNestedStub::class); - line 147: $request->validateResolved(); - line 149: $this->assertSame('bar', $request->validated('nested.foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 152: public function testAfterMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 152: public function testAfterMethod() - line 179: fn ($validator) => $validator->errors()->add('closure', 'true'), - line 183: $request->setContainer($container = new Container); - line 184: $container->instance(\Illuminate\Contracts\Validation\Factory::class, (new \Illuminate\Validation\Factory( - line 187: $container->instance(InjectedDependency::class, new InjectedDependency('value-from-dependency')); - line 192: $request->validateResolved(); - line 193: $this->fail(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 207: public function testRequestCanPassWithoutRulesMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 207: public function testRequestCanPassWithoutRulesMethod() - line 209: $request = $this->createRequest([], FoundationTestFormRequestWithoutRulesMethod::class); - line 211: $request->validateResolved(); - line 213: $this->assertEquals([], $request->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 216: public function testRequestWithGetRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 216: public function testRequestWithGetRules() - line 219: $request = $this->createRequest(['a' => 1], FoundationTestFormRequestWithGetRules::class); - line 221: $request->validateResolved(); - line 222: $this->assertEquals(['a' => 1], $request->all()); - line 224: $this->expectException(ValidationException::class); - line 227: $request = $this->createRequest(['a' => 1], FoundationTestFormRequestWithGetRules::class); - line 229: $request->validateResolved(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Foundation/FoundationHelpersTest.php - Test @ line 28: public function testCache() Violations: - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 31: $app['cache'] = $cache = m::mock(CacheRepository::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 28: public function testCache() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 53: public function testEvents() Violations: - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 56: $app['events'] = $dispatcher = m::mock(Dispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 53: public function testEvents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 62: public function testMixDoesNotIncludeHost() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 62: public function testMixDoesNotIncludeHost() - line 65: $app['config'] = m::mock(Repository::class); - line 69: $manifest = $this->makeManifest(); - line 73: $this->assertSame('/versioned.css', $result->toHtml()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 65: $app['config'] = m::mock(Repository::class); - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 75: unlink($manifest); - Test @ line 78: public function testMixCachesManifestForSubsequentCalls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 78: public function testMixCachesManifestForSubsequentCalls() - line 81: $app['config'] = m::mock(Repository::class); - line 85: $manifest = $this->makeManifest(); - line 91: $this->assertSame('/versioned.css', $result->toHtml()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 81: $app['config'] = m::mock(Repository::class); - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 87: unlink($manifest); - Test @ line 94: public function testMixAssetMissingStartingSlashHaveItAdded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 94: public function testMixAssetMissingStartingSlashHaveItAdded() - line 97: $app['config'] = m::mock(Repository::class); - line 101: $manifest = $this->makeManifest(); - line 105: $this->assertSame('/versioned.css', $result->toHtml()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 97: $app['config'] = m::mock(Repository::class); - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 107: unlink($manifest); - Test @ line 110: public function testMixMissingManifestThrowsException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 110: public function testMixMissingManifestThrowsException() - line 112: $this->expectException(Exception::class); - line 113: $this->expectExceptionMessage('Mix manifest not found'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 110: public function testMixMissingManifestThrowsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 118: public function testMixWithManifestDirectory() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 118: public function testMixWithManifestDirectory() - line 121: $app['config'] = m::mock(Repository::class); - line 126: $manifest = $this->makeManifest('mix'); - line 130: $this->assertSame('/mix/versioned.css', $result->toHtml()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 121: $app['config'] = m::mock(Repository::class); - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 132: unlink($manifest); - Test @ line 136: public function testMixManifestDirectoryMissingStartingSlashHasItAdded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 136: public function testMixManifestDirectoryMissingStartingSlashHasItAdded() - line 139: $manifest = $this->makeManifest('/mix'); - line 143: $this->assertSame('/mix/versioned.css', $result->toHtml()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 145: unlink($manifest); - Test @ line 149: public function testMixHotModuleReloadingGetsUrlFromFileWithHttps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 149: public function testMixHotModuleReloadingGetsUrlFromFileWithHttps() - line 151: $path = $this->makeHotModuleReloadFile('https://laravel.com/docs'); - line 155: $this->assertSame('//laravel.com/docs/unversioned.css', $result->toHtml()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 157: unlink($path); - Test @ line 160: public function testMixHotModuleReloadingGetsUrlFromFileWithHttp() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 160: public function testMixHotModuleReloadingGetsUrlFromFileWithHttp() - line 162: $path = $this->makeHotModuleReloadFile('http://laravel.com/docs'); - line 166: $this->assertSame('//laravel.com/docs/unversioned.css', $result->toHtml()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 168: unlink($path); - Test @ line 171: public function testMixHotModuleReloadingGetsUrlFromFileWithManifestDirectoryAndHttps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 171: public function testMixHotModuleReloadingGetsUrlFromFileWithManifestDirectoryAndHttps() - line 174: $path = $this->makeHotModuleReloadFile('https://laravel.com/docs', 'mix'); - line 178: $this->assertSame('//laravel.com/docs/unversioned.css', $result->toHtml()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 180: unlink($path); - Test @ line 184: public function testMixHotModuleReloadingGetsUrlFromFileWithManifestDirectoryAndHttp() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 184: public function testMixHotModuleReloadingGetsUrlFromFileWithManifestDirectoryAndHttp() - line 187: $path = $this->makeHotModuleReloadFile('http://laravel.com/docs', 'mix'); - line 191: $this->assertSame('//laravel.com/docs/unversioned.css', $result->toHtml()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 193: unlink($path); - Test @ line 197: public function testMixHotModuleReloadingUsesLocalhostIfNoHttpScheme() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 197: public function testMixHotModuleReloadingUsesLocalhostIfNoHttpScheme() - line 199: $path = $this->makeHotModuleReloadFile(''); - line 203: $this->assertSame('//localhost:8080/unversioned.css', $result->toHtml()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 205: unlink($path); - Test @ line 208: public function testMixHotModuleReloadingWithManifestDirectoryUsesLocalhostIfNoHttpScheme() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 208: public function testMixHotModuleReloadingWithManifestDirectoryUsesLocalhostIfNoHttpScheme() - line 211: $path = $this->makeHotModuleReloadFile('', 'mix'); - line 215: $this->assertSame('//localhost:8080/unversioned.css', $result->toHtml()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 217: unlink($path); - Test @ line 251: public function testMixIsSwappableForTests() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 251: public function testMixIsSwappableForTests() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 260: public function testAbortReceivesCodeAsSymfonyResponseInstance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 260: public function testAbortReceivesCodeAsSymfonyResponseInstance() - line 265: $this->fail( - line 269: $this->assertSame($code, $ex->getResponse()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 273: public function testAbortReceivesCodeAsResponableImplementation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 273: public function testAbortReceivesCodeAsResponableImplementation() - line 275: app()->instance('request', $request = Request::create('/')); - line 290: $this->fail( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 298: public function testAbortReceivesCodeAsInteger() Violations: - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 300: $app = m::mock(Application::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 298: public function testAbortReceivesCodeAsInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 310: public function testBroadcastIfReturnsFakeOnFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 310: public function testBroadcastIfReturnsFakeOnFalse() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 310: public function testBroadcastIfReturnsFakeOnFalse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/FoundationInteractsWithDatabaseTest.php - Test @ line 69: public function testSeeInDatabaseDoesNotFindResults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 69: public function testSeeInDatabaseDoesNotFindResults() - line 71: $this->expectException(ExpectationFailedException::class); - line 72: $this->expectExceptionMessage('The table is empty.'); - line 74: $builder = $this->mockCountBuilder(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 81: public function testSeeInDatabaseFindsNotMatchingResults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 81: public function testSeeInDatabaseFindsNotMatchingResults() - line 83: $this->expectException(ExpectationFailedException::class); - line 85: $this->expectExceptionMessage('Found similar results: '.json_encode([['title' => 'Forge']], JSON_PRETTY_PRINT)); - line 87: $builder = $this->mockCountBuilder(false); - line 89: $builder->shouldReceive('limit')->andReturnSelf(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 95: public function testSeeInDatabaseFindsManyNotMatchingResults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 95: public function testSeeInDatabaseFindsManyNotMatchingResults() - line 97: $this->expectException(ExpectationFailedException::class); - line 99: $this->expectExceptionMessage('Found similar results: '.json_encode(['data', 'data', 'data'], JSON_PRETTY_PRINT).' and 2 others.'); - line 101: $builder = $this->mockCountBuilder(false, countResult: [5, 5]); - line 103: $builder->shouldReceive('limit')->andReturnSelf(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 139: public function testDontSeeInDatabaseFindsResults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 139: public function testDontSeeInDatabaseFindsResults() - line 141: $this->expectException(ExpectationFailedException::class); - line 143: $builder = $this->mockCountBuilder(true); - line 145: $builder->shouldReceive('limit')->andReturnSelf(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 166: public function testAssertDatabaseEmpty() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 166: public function testAssertDatabaseEmpty() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 174: public function testAssertTableEntriesCountWrong() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 174: public function testAssertTableEntriesCountWrong() - line 176: $this->expectException(ExpectationFailedException::class); - line 177: $this->expectExceptionMessage('Failed asserting that table [products] matches expected entries count of 3. Entries found: 1.'); - line 178: $this->mockCountBuilder(true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 190: public function testAssertDatabaseMissingFailsWhenFindsResults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 190: public function testAssertDatabaseMissingFailsWhenFindsResults() - line 192: $this->expectException(ExpectationFailedException::class); - line 194: $builder = $this->mockCountBuilder(true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 212: public function testAssertSoftDeletedInDatabaseFindsResults() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 212: public function testAssertSoftDeletedInDatabaseFindsResults() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 219: public function testAssertSoftDeletedSupportModelStrings() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 219: public function testAssertSoftDeletedSupportModelStrings() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 226: public function testAssertSoftDeletedInDatabaseDoesNotFindResults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 226: public function testAssertSoftDeletedInDatabaseDoesNotFindResults() - line 228: $this->expectException(ExpectationFailedException::class); - line 229: $this->expectExceptionMessage('The table is empty.'); - line 231: $builder = $this->mockCountBuilder(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 226: public function testAssertSoftDeletedInDatabaseDoesNotFindResults() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 238: public function testAssertSoftDeletedInDatabaseDoesNotFindModelResults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 238: public function testAssertSoftDeletedInDatabaseDoesNotFindModelResults() - line 240: $this->expectException(ExpectationFailedException::class); - line 241: $this->expectExceptionMessage('The table is empty.'); - line 245: $builder = $this->mockCountBuilder(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 238: public function testAssertSoftDeletedInDatabaseDoesNotFindModelResults() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 252: public function testAssertSoftDeletedInDatabaseDoesNotFindModelWithCustomColumnResults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 252: public function testAssertSoftDeletedInDatabaseDoesNotFindModelWithCustomColumnResults() - line 254: $this->expectException(ExpectationFailedException::class); - line 255: $this->expectExceptionMessage('The table is empty.'); - line 260: $builder = $this->mockCountBuilder(false, 'trashed_at'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 252: public function testAssertSoftDeletedInDatabaseDoesNotFindModelWithCustomColumnResults() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 267: public function testAssertSoftDeletedInDatabaseDoesNotFindModePassedViaFcnWithCustomColumnResults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 267: public function testAssertSoftDeletedInDatabaseDoesNotFindModePassedViaFcnWithCustomColumnResults() - line 269: $this->expectException(ExpectationFailedException::class); - line 270: $this->expectExceptionMessage('The table is empty.'); - line 275: $builder = $this->mockCountBuilder(false, 'trashed_at'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 267: public function testAssertSoftDeletedInDatabaseDoesNotFindModePassedViaFcnWithCustomColumnResults() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 282: public function testAssertNotSoftDeletedInDatabaseFindsResults() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 282: public function testAssertNotSoftDeletedInDatabaseFindsResults() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 289: public function testAssertNotSoftDeletedSupportModelStrings() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 289: public function testAssertNotSoftDeletedSupportModelStrings() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 296: public function testAssertNotSoftDeletedOnlyFindsMatchingModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 296: public function testAssertNotSoftDeletedOnlyFindsMatchingModels() - line 298: $this->expectException(ExpectationFailedException::class); - line 299: $this->expectExceptionMessage('Failed asserting that any existing row'); - line 301: $builder = $this->mockCountBuilder(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 296: public function testAssertNotSoftDeletedOnlyFindsMatchingModels() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 308: public function testAssertNotSoftDeletedInDatabaseDoesNotFindResults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 308: public function testAssertNotSoftDeletedInDatabaseDoesNotFindResults() - line 310: $this->expectException(ExpectationFailedException::class); - line 311: $this->expectExceptionMessage('The table is empty.'); - line 313: $builder = $this->mockCountBuilder(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 308: public function testAssertNotSoftDeletedInDatabaseDoesNotFindResults() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 320: public function testAssertNotSoftDeletedInDatabaseDoesNotFindModelResults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 320: public function testAssertNotSoftDeletedInDatabaseDoesNotFindModelResults() - line 322: $this->expectException(ExpectationFailedException::class); - line 323: $this->expectExceptionMessage('The table is empty.'); - line 327: $builder = $this->mockCountBuilder(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 320: public function testAssertNotSoftDeletedInDatabaseDoesNotFindModelResults() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 334: public function testAssertNotSoftDeletedInDatabaseDoesNotFindModelWithCustomColumnResults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 334: public function testAssertNotSoftDeletedInDatabaseDoesNotFindModelWithCustomColumnResults() - line 336: $this->expectException(ExpectationFailedException::class); - line 337: $this->expectExceptionMessage('The table is empty.'); - line 342: $builder = $this->mockCountBuilder(false, 'trashed_at'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 334: public function testAssertNotSoftDeletedInDatabaseDoesNotFindModelWithCustomColumnResults() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 349: public function testAssertNotSoftDeletedInDatabaseDoesNotFindModelPassedViaFcnWithCustomColumnResults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 349: public function testAssertNotSoftDeletedInDatabaseDoesNotFindModelPassedViaFcnWithCustomColumnResults() - line 351: $this->expectException(ExpectationFailedException::class); - line 352: $this->expectExceptionMessage('The table is empty.'); - line 357: $builder = $this->mockCountBuilder(false, 'trashed_at'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 349: public function testAssertNotSoftDeletedInDatabaseDoesNotFindModelPassedViaFcnWithCustomColumnResults() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 375: public function testGetTableNameFromModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 375: public function testGetTableNameFromModel() - line 377: $this->assertEquals($this->table, $this->getTable(ProductStub::class)); - line 378: $this->assertEquals($this->table, $this->getTable(new ProductStub)); - line 379: $this->assertEquals($this->table, $this->getTable($this->table)); - line 380: $this->assertEquals('all_products', $this->getTable((new ProductStub)->setTable('all_products'))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 383: public function testGetTableConnectionNameFromModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 383: public function testGetTableConnectionNameFromModel() - line 385: $this->assertSame(null, $this->getTableConnection(ProductStub::class)); - line 386: $this->assertSame(null, $this->getTableConnection(new ProductStub)); - line 387: $this->assertSame('mysql', $this->getTableConnection((new ProductStub)->setConnection('mysql'))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 390: public function testGetTableCustomizedDeletedAtColumnName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 390: public function testGetTableCustomizedDeletedAtColumnName() - line 392: $this->assertEquals('trashed_at', $this->getDeletedAtColumn(CustomProductStub::class)); - line 393: $this->assertEquals('trashed_at', $this->getDeletedAtColumn(new CustomProductStub())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 396: public function testExpectsDatabaseQueryCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 24. Evidence: - line 396: public function testExpectsDatabaseQueryCount() - line 404: $this->expectsDatabaseQueryCount(0); - line 408: $case->setUp(); - line 409: $case->testExpectsDatabaseQueryCount(); - line 410: $case->tearDown(); - line 418: $this->expectsDatabaseQueryCount(3); - line 422: $case->setUp(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 402: public function testExpectsDatabaseQueryCount() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 402: public function testExpectsDatabaseQueryCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 416: public function testExpectsDatabaseQueryCount() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 416: public function testExpectsDatabaseQueryCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 436: public function testExpectsDatabaseQueryCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 436: public function testExpectsDatabaseQueryCount() - line 438: $this->expectsDatabaseQueryCount(3); - line 441: $db->table('foo')->count(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 436: public function testExpectsDatabaseQueryCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 463: public function testExpectsDatabaseQueryCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 463: public function testExpectsDatabaseQueryCount() - line 465: $this->expectsDatabaseQueryCount(4); - line 466: $this->expectsDatabaseQueryCount(1, 'mysql'); - line 469: $db->table('foo')->count(); - line 474: DB::connection('mysql')->pretend(function ($db) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 463: public function testExpectsDatabaseQueryCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/FoundationInteractsWithTimeTest.php - Test @ line 20: public function testFreezeTimeReturnsFrozenTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 20: public function testFreezeTimeReturnsFrozenTime() - line 22: $actual = $this->freezeTime(); - line 26: $this->assertTrue(Carbon::getTestNow()->eq($actual)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 49: public function testFreezeSecondReturnsFrozenTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 49: public function testFreezeSecondReturnsFrozenTime() - line 51: $actual = $this->freezeSecond(); - line 55: $this->assertTrue(Carbon::getTestNow()->eq($actual)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Foundation/FoundationPackageManifestTest.php - Test @ line 11: public function testAssetLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 11: public function testAssetLoading() - line 15: $this->assertEquals(['foo', 'bar', 'baz'], $manifest->providers()); - line 16: $this->assertEquals(['Foo' => 'Foo\\Facade'], $manifest->aliases()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_SUPPRESSED_UNLINK] Evidence: - line 13: @unlink(__DIR__.'/fixtures/packages.php'); - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 13: @unlink(__DIR__.'/fixtures/packages.php'); - line 17: unlink(__DIR__.'/fixtures/packages.php'); ❌ tests/Foundation/FoundationProviderRepositoryTest.php - Test @ line 22: public function testServicesAreRegisteredWhenManifestIsNotRecompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 22: public function testServicesAreRegisteredWhenManifestIsNotRecompiled() - line 24: $app = m::mock(Application::class); - line 34: $repo->load([]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 24: $app = m::mock(Application::class); - line 26: $repo = m::mock(ProviderRepository::class.'[createProvider,loadManifest,shouldRecompile]', [$app, m::mock(Filesystem::class), [__DIR__.'/services.php']]); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 22: public function testServicesAreRegisteredWhenManifestIsNotRecompiled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 37: public function testManifestIsProperlyRecompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 37: public function testManifestIsProperlyRecompiled() - line 39: $app = m::mock(Application::class); - line 55: $repo->shouldReceive('writeManifest')->once()->andReturnUsing(function ($manifest) { - line 63: $repo->load(['foo', 'bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 39: $app = m::mock(Application::class); - line 41: $repo = m::mock(ProviderRepository::class.'[createProvider,loadManifest,writeManifest,shouldRecompile]', [$app, m::mock(Filesystem::class), [__DIR__.'/services.php']]); - line 47: $repo->shouldReceive('createProvider')->once()->with('foo')->andReturn($fooMock = m::mock(stdClass::class)); - line 53: $repo->shouldReceive('createProvider')->once()->with('bar')->andReturn($barMock = m::mock(ServiceProvider::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 37: public function testManifestIsProperlyRecompiled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 66: public function testShouldRecompileReturnsCorrectValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 66: public function testShouldRecompileReturnsCorrectValue() - line 68: $repo = new ProviderRepository(m::mock(ApplicationContract::class), new Filesystem, __DIR__.'/services.php'); - line 69: $this->assertTrue($repo->shouldRecompile(null, [])); - line 70: $this->assertTrue($repo->shouldRecompile(['providers' => ['foo']], ['foo', 'bar'])); - line 71: $this->assertFalse($repo->shouldRecompile(['providers' => ['foo']], ['foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 68: $repo = new ProviderRepository(m::mock(ApplicationContract::class), new Filesystem, __DIR__.'/services.php'); - Test @ line 74: public function testLoadManifestReturnsParsedJSON() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 74: public function testLoadManifestReturnsParsedJSON() - line 76: $repo = new ProviderRepository(m::mock(ApplicationContract::class), $files = m::mock(Filesystem::class), __DIR__.'/services.php'); - line 80: $this->assertEquals($array, $repo->loadManifest()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 76: $repo = new ProviderRepository(m::mock(ApplicationContract::class), $files = m::mock(Filesystem::class), __DIR__.'/services.php'); - Test @ line 83: public function testWriteManifestStoresToProperLocation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 83: public function testWriteManifestStoresToProperLocation() - line 85: $repo = new ProviderRepository(m::mock(ApplicationContract::class), $files = m::mock(Filesystem::class), __DIR__.'/services.php'); - line 88: $result = $repo->writeManifest(['foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 85: $repo = new ProviderRepository(m::mock(ApplicationContract::class), $files = m::mock(Filesystem::class), __DIR__.'/services.php'); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 83: public function testWriteManifestStoresToProperLocation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 93: public function testWriteManifestThrowsExceptionIfManifestDirDoesntExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 93: public function testWriteManifestThrowsExceptionIfManifestDirDoesntExist() - line 95: $this->expectException(Exception::class); - line 96: $this->expectExceptionMessageMatches('/^The (.*) directory must be present and writable.$/'); - line 99: $files->shouldReceive('replace')->never(); - line 101: $repo->writeManifest(['foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 98: $repo = new ProviderRepository(m::mock(ApplicationContract::class), $files = m::mock(Filesystem::class), __DIR__.'/cache/services.php'); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 93: public function testWriteManifestThrowsExceptionIfManifestDirDoesntExist() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/FoundationViteTest.php - Test @ line 30: public function testViteWithJsOnly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 30: public function testViteWithJsOnly() - line 32: $this->makeViteManifest(); - line 36: $this->assertStringEndsWith('', $result->toHtml()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 30: public function testViteWithJsOnly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 39: public function testViteWithCssAndJs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 39: public function testViteWithCssAndJs() - line 41: $this->makeViteManifest(); - line 48: $result->toHtml() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 39: public function testViteWithCssAndJs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 52: public function testViteWithCssImport() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 52: public function testViteWithCssImport() - line 54: $this->makeViteManifest(); - line 61: $result->toHtml() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 52: public function testViteWithCssImport() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 65: public function testViteWithSharedCssImport() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 65: public function testViteWithSharedCssImport() - line 67: $this->makeViteManifest(); - line 74: $result->toHtml() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 65: public function testViteWithSharedCssImport() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 78: public function testViteHotModuleReplacementWithJsOnly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 78: public function testViteHotModuleReplacementWithJsOnly() - line 80: $this->makeViteHotFile(); - line 87: $result->toHtml() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 91: public function testViteHotModuleReplacementWithJsAndCss() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 91: public function testViteHotModuleReplacementWithJsAndCss() - line 93: $this->makeViteHotFile(); - line 101: $result->toHtml() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 105: public function testItCanGenerateCspNonceWithHotFile() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 105: public function testItCanGenerateCspNonceWithHotFile() - line 107: Str::createRandomStringsUsing(fn ($length) => "random-string-with-length:{$length}"); - line 108: $this->makeViteHotFile(); - line 119: $result->toHtml() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 125: public function testItCanGenerateCspNonceWithManifest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 125: public function testItCanGenerateCspNonceWithManifest() - line 127: Str::createRandomStringsUsing(fn ($length) => "random-string-with-length:{$length}"); - line 128: $this->makeViteManifest(); - line 138: $result->toHtml() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 144: public function testItCanSpecifyCspNonceWithHotFile() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 144: public function testItCanSpecifyCspNonceWithHotFile() - line 146: $this->makeViteHotFile(); - line 157: $result->toHtml() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 161: public function testItCanSpecifyCspNonceWithManifest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 161: public function testItCanSpecifyCspNonceWithManifest() - line 163: $this->makeViteManifest(); - line 173: $result->toHtml() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 177: public function testReactRefreshWithNoNonce() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 177: public function testReactRefreshWithNoNonce() - line 179: $this->makeViteHotFile(); - line 181: $result = app(Vite::class)->reactRefresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 186: public function testReactRefreshNonce() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 186: public function testReactRefreshNonce() - line 188: $this->makeViteHotFile(); - line 191: $result = app(Vite::class)->reactRefresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 196: public function testItCanInjectIntegrityWhenPresentInManifest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 196: public function testItCanInjectIntegrityWhenPresentInManifest() - line 198: $buildDir = Str::random(); - line 199: $this->makeViteManifest([ - line 217: $result->toHtml() - line 220: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 196: public function testItCanInjectIntegrityWhenPresentInManifest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 223: public function testItCanInjectIntegrityWhenPresentInManifestForCss() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 223: public function testItCanInjectIntegrityWhenPresentInManifestForCss() - line 225: $buildDir = Str::random(); - line 226: $this->makeViteManifest([ - line 253: $result->toHtml() - line 256: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 223: public function testItCanInjectIntegrityWhenPresentInManifestForCss() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 259: public function testItCanInjectIntegrityWhenPresentInManifestForImportedCss() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 259: public function testItCanInjectIntegrityWhenPresentInManifestForImportedCss() - line 261: $buildDir = Str::random(); - line 262: $this->makeViteManifest([ - line 289: $result->toHtml() - line 292: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 259: public function testItCanInjectIntegrityWhenPresentInManifestForImportedCss() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 295: public function testItCanSpecifyIntegrityKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 295: public function testItCanSpecifyIntegrityKey() - line 297: $buildDir = Str::random(); - line 298: $this->makeViteManifest([ - line 317: $result->toHtml() - line 320: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 295: public function testItCanSpecifyIntegrityKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 323: public function testItCanSpecifyArbitraryAttributesForScriptTagsWhenBuilt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 323: public function testItCanSpecifyArbitraryAttributesForScriptTagsWhenBuilt() - line 325: $this->makeViteManifest(); - line 390: $result->toHtml() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 323: public function testItCanSpecifyArbitraryAttributesForScriptTagsWhenBuilt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 394: public function testItCanSpecifyArbitraryAttributesForStylesheetTagsWhenBuild() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 394: public function testItCanSpecifyArbitraryAttributesForStylesheetTagsWhenBuild() - line 396: $this->makeViteManifest(); - line 458: $result->toHtml() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 394: public function testItCanSpecifyArbitraryAttributesForStylesheetTagsWhenBuild() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 462: public function testItCanSpecifyArbitraryAttributesForScriptTagsWhenHotModuleReloading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 462: public function testItCanSpecifyArbitraryAttributesForScriptTagsWhenHotModuleReloading() - line 464: $this->makeViteHotFile(); - line 494: $result->toHtml() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 498: public function testItCanSpecifyArbitraryAttributesForStylesheetTagsWhenHotModuleReloading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 498: public function testItCanSpecifyArbitraryAttributesForStylesheetTagsWhenHotModuleReloading() - line 500: $this->makeViteHotFile(); - line 524: $result->toHtml() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 528: public function testItCanOverrideAllAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 528: public function testItCanOverrideAllAttributes() - line 530: $this->makeViteManifest(); - line 545: $result->toHtml() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 528: public function testItCanOverrideAllAttributes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 567: public function testItThrowsWhenUnableToFindAssetManifestInBuildMode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 567: public function testItThrowsWhenUnableToFindAssetManifestInBuildMode() - line 569: $this->expectException(ViteException::class); - line 570: $this->expectExceptionMessage('Vite manifest not found at: '.public_path('build/manifest.json')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 567: public function testItThrowsWhenUnableToFindAssetManifestInBuildMode() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 575: public function testItThrowsDeprecatedExecptionWhenUnableToFindAssetManifestInBuildMode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 575: public function testItThrowsDeprecatedExecptionWhenUnableToFindAssetManifestInBuildMode() - line 577: $this->expectException(ViteManifestNotFoundException::class); - line 578: $this->expectExceptionMessage('Vite manifest not found at: '.public_path('build/manifest.json')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 575: public function testItThrowsDeprecatedExecptionWhenUnableToFindAssetManifestInBuildMode() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 583: public function testItThrowsWhenUnableToFindAssetChunkInBuildMode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 583: public function testItThrowsWhenUnableToFindAssetChunkInBuildMode() - line 585: $this->makeViteManifest(); - line 587: $this->expectException(ViteException::class); - line 588: $this->expectExceptionMessage('Unable to locate file in Vite manifest: resources/js/missing.js'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 583: public function testItThrowsWhenUnableToFindAssetChunkInBuildMode() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 593: public function testItDoesNotReturnHashInDevMode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 593: public function testItDoesNotReturnHashInDevMode() - line 595: $this->makeViteHotFile(); - line 599: $this->cleanViteHotFile(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 593: public function testItDoesNotReturnHashInDevMode() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 602: public function testItGetsHashInBuildMode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 602: public function testItGetsHashInBuildMode() - line 604: $this->makeViteManifest(['a.js' => ['src' => 'a.js']]); - line 608: $this->cleanViteManifest(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 611: public function testItGetsDifferentHashesForDifferentManifestsInBuildMode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 611: public function testItGetsDifferentHashesForDifferentManifestsInBuildMode() - line 613: $this->makeViteManifest(['a.js' => ['src' => 'a.js']]); - line 614: $this->makeViteManifest(['b.js' => ['src' => 'b.js']], 'admin'); - line 619: $this->cleanViteManifest(); - line 620: $this->cleanViteManifest('admin'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 623: public function testViteCanSetEntryPointsWithFluentBuilder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 623: public function testViteCanSetEntryPointsWithFluentBuilder() - line 625: $this->makeViteManifest(); - line 629: $this->assertSame('', $vite->toHtml()); - line 631: $vite->withEntryPoints(['resources/js/app.js']); - line 635: $vite->toHtml() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 639: public function testViteCanOverrideBuildDirectory() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 639: public function testViteCanOverrideBuildDirectory() - line 641: $this->makeViteManifest(null, 'custom-build'); - line 645: $vite->withEntryPoints(['resources/js/app.js'])->useBuildDirectory('custom-build'); - line 649: $vite->toHtml() - line 652: $this->cleanViteManifest('custom-build'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 639: public function testViteCanOverrideBuildDirectory() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 655: public function testViteCanOverrideHotFilePath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 655: public function testViteCanOverrideHotFilePath() - line 657: $this->makeViteHotFile('cold'); - line 661: $vite->withEntryPoints(['resources/js/app.js'])->useHotFile('cold'); - line 666: $vite->toHtml() - line 669: $this->cleanViteHotFile('cold'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 672: public function testViteCanAssetPath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 672: public function testViteCanAssetPath() - line 674: $this->makeViteManifest([ - line 680: $vite = app(Vite::class)->useBuildDirectory($buildDir); - line 684: $this->assertSame("https://cdn.app.com/{$buildDir}/assets/profile.versioned.png", $vite->asset('resources/images/profile.png')); - line 687: $vite->createAssetPathsUsing(function ($path) { - line 690: $this->assertSame("https://tenant-cdn.app.com/{$buildDir}/assets/profile.versioned.png", $vite->asset('resources/images/profile.png')); - line 693: $vite->createAssetPathsUsing(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 699: public function testViteIsMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 699: public function testViteIsMacroable() - line 701: $this->makeViteManifest([ - line 708: return $this->asset("resources/images/{$asset}", $buildDir); - line 715: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 699: public function testViteIsMacroable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 718: public function testItGeneratesPreloadDirectivesForJsAndCssImports() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 718: public function testItGeneratesPreloadDirectivesForJsAndCssImports() - line 721: $buildDir = Str::random(); - line 722: $this->makeViteManifest($manifest, $buildDir); - line 738: .'', $result->toHtml() - line 783: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 786: public function testItCanSpecifyAttributesForPreloadedAssets() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 786: public function testItCanSpecifyAttributesForPreloadedAssets() - line 788: $buildDir = Str::random(); - line 789: $this->makeViteManifest([ - line 880: $result->toHtml()); - line 915: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 918: public function testItCanSuppressPreloadTagGeneration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 918: public function testItCanSuppressPreloadTagGeneration() - line 920: $buildDir = Str::random(); - line 921: $this->makeViteManifest([ - line 1051: $result->toHtml()); - line 1068: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1071: public function testPreloadAssetsGetAssetNonce() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1071: public function testPreloadAssetsGetAssetNonce() - line 1073: $buildDir = Str::random(); - line 1074: $this->makeViteManifest([ - line 1096: $result->toHtml()); - line 1111: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1114: public function testCrossoriginAttributeIsInheritedByPreloadTags() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1114: public function testCrossoriginAttributeIsInheritedByPreloadTags() - line 1116: $buildDir = Str::random(); - line 1117: $this->makeViteManifest([ - line 1144: $result->toHtml()); - line 1159: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1162: public function testItCanConfigureTheManifestFilename() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1162: public function testItCanConfigureTheManifestFilename() - line 1164: $buildDir = Str::random(); - line 1165: app()->usePublicPath(__DIR__); - line 1184: $result->toHtml()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 1186: unlink(public_path("{$buildDir}/custom-manifest.json")); - Test @ line 1190: public function testItOnlyOutputsUniquePreloadTags() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1190: public function testItOnlyOutputsUniquePreloadTags() - line 1192: $buildDir = Str::random(); - line 1193: $this->makeViteManifest([ - line 1223: $result->toHtml()); - line 1240: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1243: public function testItRetrievesAssetContent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1243: public function testItRetrievesAssetContent() - line 1245: $this->makeViteManifest(); - line 1247: $this->makeAsset('/app.versioned.js', 'some content'); - line 1253: $this->cleanAsset('/app.versioned.js'); - line 1255: $this->cleanViteManifest(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1258: public function testItThrowsWhenUnableToFindFileToRetrieveContent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1258: public function testItThrowsWhenUnableToFindFileToRetrieveContent() - line 1260: $this->makeViteManifest(); - line 1262: $this->expectException(ViteException::class); - line 1263: $this->expectExceptionMessage('Unable to locate file from Vite manifest: '.public_path('build/assets/app.versioned.js')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1258: public function testItThrowsWhenUnableToFindFileToRetrieveContent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1318: public function testItCanPrefetchEntrypoint() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1318: public function testItCanPrefetchEntrypoint() - line 1321: $buildDir = Str::random(); - line 1322: $this->makeViteManifest($manifest, $buildDir); - line 1323: app()->usePublicPath(__DIR__); - line 1325: $html = (string) ViteFacade::withEntryPoints(['resources/js/app.js'])->useBuildDirectory($buildDir)->prefetch(concurrency: 3)->toHtml(); - line 1391: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1318: public function testItCanPrefetchEntrypoint() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1394: public function testItHandlesSpecifyingPageWithAppJs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1394: public function testItHandlesSpecifyingPageWithAppJs() - line 1397: $buildDir = Str::random(); - line 1398: $this->makeViteManifest($manifest, $buildDir); - line 1399: app()->usePublicPath(__DIR__); - line 1401: $html = (string) ViteFacade::withEntryPoints(['resources/js/app.js', 'resources/js/Pages/Auth/Login.vue'])->useBuildDirectory($buildDir)->prefetch(concurrency: 3)->toHtml(); - line 1421: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1394: public function testItHandlesSpecifyingPageWithAppJs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1424: public function testItCanSpecifyWaterfallChunks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1424: public function testItCanSpecifyWaterfallChunks() - line 1427: $buildDir = Str::random(); - line 1428: $this->makeViteManifest($manifest, $buildDir); - line 1429: app()->usePublicPath(__DIR__); - line 1431: $html = (string) ViteFacade::withEntryPoints(['resources/js/app.js'])->useBuildDirectory($buildDir)->prefetch(concurrency: 10)->toHtml(); - line 1457: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1424: public function testItCanSpecifyWaterfallChunks() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1460: public function testItCanPrefetchAggressively() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1460: public function testItCanPrefetchAggressively() - line 1463: $buildDir = Str::random(); - line 1464: $this->makeViteManifest($manifest, $buildDir); - line 1465: app()->usePublicPath(__DIR__); - line 1467: $html = (string) ViteFacade::withEntryPoints(['resources/js/app.js'])->useBuildDirectory($buildDir)->prefetch()->toHtml(); - line 1511: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1460: public function testItCanPrefetchAggressively() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1514: public function testAddsAttributesToPrefetchTags() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1514: public function testAddsAttributesToPrefetchTags() - line 1517: $buildDir = Str::random(); - line 1518: $this->makeViteManifest($manifest, $buildDir); - line 1519: app()->usePublicPath(__DIR__); - line 1521: $html = (string) tap(ViteFacade::withEntryPoints(['resources/js/app.js'])->useBuildDirectory($buildDir)->prefetch(concurrency: 3))->useCspNonce('abc123')->toHtml(); - line 1547: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1514: public function testAddsAttributesToPrefetchTags() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1550: public function testItNormalisesAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1550: public function testItNormalisesAttributes() - line 1553: $buildDir = Str::random(); - line 1554: $this->makeViteManifest($manifest, $buildDir); - line 1555: app()->usePublicPath(__DIR__); - line 1557: $html = (string) tap(ViteFacade::withEntryPoints(['resources/js/app.js']))->useBuildDirectory($buildDir)->prefetch(concurrency: 3)->usePreloadTagAttributes([ - line 1590: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1550: public function testItNormalisesAttributes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1593: public function testItPrefetchesCss() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1593: public function testItPrefetchesCss() - line 1596: $buildDir = Str::random(); - line 1597: $this->makeViteManifest($manifest, $buildDir); - line 1598: app()->usePublicPath(__DIR__); - line 1600: $html = (string) ViteFacade::withEntryPoints(['resources/js/admin.js'])->useBuildDirectory($buildDir)->prefetch(concurrency: 3)->toHtml(); - line 1669: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1593: public function testItPrefetchesCss() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1672: public function testSupportCspNonceInPrefetchScript() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1672: public function testSupportCspNonceInPrefetchScript() - line 1675: $buildDir = Str::random(); - line 1676: $this->makeViteManifest($manifest, $buildDir); - line 1677: app()->usePublicPath(__DIR__); - line 1680: ->useCspNonce('abc123') - line 1687: ->useCspNonce('abc123') - line 1693: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1672: public function testSupportCspNonceInPrefetchScript() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1696: public function testItCanConfigureThePrefetchTriggerEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1696: public function testItCanConfigureThePrefetchTriggerEvent() - line 1699: $buildDir = Str::random(); - line 1700: $this->makeViteManifest($manifest, $buildDir); - line 1701: app()->usePublicPath(__DIR__); - line 1704: ->useBuildDirectory($buildDir) - line 1710: $this->cleanViteManifest($buildDir); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1696: public function testItCanConfigureThePrefetchTriggerEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1713: public function testItCanFlushState() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1713: public function testItCanFlushState() - line 1715: $this->makeViteManifest(); - line 1718: app()->forgetScopedInstances(); - line 1719: $this->assertCount(1, app(Vite::class)->preloadedAssets()); - line 1721: app(Vite::class)->flush(); - line 1722: $this->assertCount(0, app(Vite::class)->preloadedAssets()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Foundation/Http/HtmlDumperTest.php - Test @ line 97: public function testUnresolvableSource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 97: public function testUnresolvableSource() - line 99: HtmlDumper::resolveDumpSourceUsing(fn () => null); - line 101: $output = $this->dump('string'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 108: public function testWhenIsFileViewIsNotViewCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 108: public function testWhenIsFileViewIsNotViewCompiled() - line 118: $method = $reflection->getMethod('isCompiledViewFile'); - line 119: $isCompiledViewFile = $method->invoke($dumper, $file); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 108: public function testWhenIsFileViewIsNotViewCompiled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 124: public function testWhenIsFileViewIsViewCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 124: public function testWhenIsFileViewIsViewCompiled() - line 134: $method = $reflection->getMethod('isCompiledViewFile'); - line 135: $isCompiledViewFile = $method->invoke($dumper, $file); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 124: public function testWhenIsFileViewIsViewCompiled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 140: public function testGetOriginalViewCompiledFile() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 140: public function testGetOriginalViewCompiledFile() - line 151: $method = $reflection->getMethod('getOriginalFileForCompiledView'); - line 153: $this->assertSame($original, $method->invoke($dumper, $compiled)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 156: public function testWhenGetOriginalViewCompiledFileFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 156: public function testWhenGetOriginalViewCompiledFileFails() - line 167: $method = $reflection->getMethod('getOriginalFileForCompiledView'); - line 169: $this->assertSame($original, $method->invoke($dumper, $compiled)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 172: public function testUnresolvableLine() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 172: public function testUnresolvableLine() - line 174: HtmlDumper::resolveDumpSourceUsing(function () { - line 182: $output = $this->dump('hey from view'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 189: public function testHref() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 189: public function testHref() - line 197: $href = (fn () => $this->resolveSourceHref( - line 204: $this->app->instance('config', $config); - line 205: $resolveSourceHref = fn () => (fn () => $this->resolveSourceHref( - line 249: $href = (fn () => $this->resolveSourceHref( - line 260: $href = (fn () => $this->resolveSourceHref( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Foundation/Http/KernelTest.php - Test @ line 16: public function testGetMiddlewareGroups() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 16: public function testGetMiddlewareGroups() - line 18: $kernel = new Kernel($this->getApplication(), $this->getRouter()); - line 20: $this->assertEquals([], $kernel->getMiddlewareGroups()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 23: public function testGetRouteMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 23: public function testGetRouteMiddleware() - line 25: $kernel = new Kernel($this->getApplication(), $this->getRouter()); - line 27: $this->assertEquals([], $kernel->getRouteMiddleware()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 30: public function testGetMiddlewarePriority() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 30: public function testGetMiddlewarePriority() - line 32: $kernel = new Kernel($this->getApplication(), $this->getRouter()); - line 46: ], $kernel->getMiddlewarePriority()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 49: public function testAddToMiddlewarePriorityAfter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 49: public function testAddToMiddlewarePriorityAfter() - line 51: $kernel = new Kernel($this->getApplication(), $this->getRouter()); - line 53: $kernel->addToMiddlewarePriorityAfter( - line 74: ], $kernel->getMiddlewarePriority()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 77: public function testAddToMiddlewarePriorityBefore() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 77: public function testAddToMiddlewarePriorityBefore() - line 79: $kernel = new Kernel($this->getApplication(), $this->getRouter()); - line 81: $kernel->addToMiddlewarePriorityBefore( - line 102: ], $kernel->getMiddlewarePriority()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 105: public function testItTriggersTerminatingEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 105: public function testItTriggersTerminatingEvent() - line 108: $app = $this->getApplication(); - line 110: $app->instance('events', $events); - line 111: $kernel = new Kernel($app, $this->getRouter()); - line 112: $app->instance('terminating-middleware', new class($called) - line 129: $kernel->setGlobalMiddleware([ - line 132: $events->listen(function (Terminating $terminating) use (&$called) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 105: public function testItTriggersTerminatingEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/Http/Middleware/ConvertEmptyStringsToNullTest.php - Test @ line 12: public function testConvertsEmptyStringsToNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 12: public function testConvertsEmptyStringsToNull() - line 20: $request = Request::createFromBase($symfonyRequest); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 28: public function testSkipConvertsEmptyStringsToNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 28: public function testSkipConvertsEmptyStringsToNull() - line 31: ConvertEmptyStringsToNull::skipWhen(fn ($request) => '' === $request->baz); - line 37: $request = Request::createFromBase($symfonyRequest); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Foundation/Http/Middleware/TransformsRequestTest.php - Test @ line 12: public function testTransformOncePerKeyWhenMethodIsGet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 12: public function testTransformOncePerKeyWhenMethodIsGet() - line 20: $request = Request::createFromBase($symfonyRequest); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 28: public function testTransformOncePerKeyWhenMethodIsPost() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 28: public function testTransformOncePerKeyWhenMethodIsPost() - line 39: $request = Request::createFromBase($symfonyRequest); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 48: public function testTransformOncePerArrayKeysWhenMethodIsPost() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 48: public function testTransformOncePerArrayKeysWhenMethodIsPost() - line 61: $request = Request::createFromBase($symfonyRequest); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 70: public function testTransformOncePerKeyWhenContentTypeIsJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 70: public function testTransformOncePerKeyWhenContentTypeIsJson() - line 86: $request = Request::createFromBase($symfonyRequest); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Foundation/Http/Middleware/TrimStringsTest.php - Test @ line 12: public function testTrimStringsIgnoringExceptAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 12: public function testTrimStringsIgnoringExceptAttribute() - line 22: $request = Request::createFromBase($symfonyRequest); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 32: public function testTrimStringsNBSP() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 32: public function testTrimStringsNBSP() - line 47: $request = Request::createFromBase($symfonyRequest); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Foundation/Testing/BootTraitsTest.php - Test @ line 34: public function testSetUpAndTearDownTraits() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 34: public function testSetUpAndTearDownTraits() - line 39: $method->invoke($testCase); - line 44: $method->invoke($testCase); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function testSetUpAndTearDownTraits() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/Testing/Concerns/InteractsWithContainerTest.php - Test @ line 13: public function testWithoutViteBindsEmptyHandlerAndReturnsInstance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 13: public function testWithoutViteBindsEmptyHandlerAndReturnsInstance() - line 15: $instance = $this->withoutVite(); - line 17: $this->assertSame('', app(Vite::class)(['resources/js/app.js'])->toHtml()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 21: public function testWithoutViteHandlesReactRefresh() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 21: public function testWithoutViteHandlesReactRefresh() - line 23: $instance = $this->withoutVite(); - line 25: $this->assertSame('', app(Vite::class)->reactRefresh()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 29: public function testWithoutViteHandlesAsset() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 29: public function testWithoutViteHandlesAsset() - line 31: $instance = $this->withoutVite(); - line 33: $this->assertSame('', app(Vite::class)->asset('path/to/asset.png')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 37: public function testWithViteRestoresOriginalHandlerAndReturnsInstance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 37: public function testWithViteRestoresOriginalHandlerAndReturnsInstance() - line 40: $this->app->instance(Vite::class, $handler); - line 42: $this->withoutVite(); - line 43: $instance = $this->withVite(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 65: public function testWithMixRestoresOriginalHandlerAndReturnsInstance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 65: public function testWithMixRestoresOriginalHandlerAndReturnsInstance() - line 68: $this->app->instance(Mix::class, $handler); - line 70: $this->withoutMix(); - line 71: $instance = $this->withMix(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 77: public function testWithoutDefer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 77: public function testWithoutDefer() - line 85: $instance = $this->withoutDefer(); - line 92: $this->withDefer(); - line 94: $this->app[DeferredCallbackCollection::class]->invoke(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 98: public function testForgetMock() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 98: public function testForgetMock() - line 100: $this->mock(InstanceStub::class) - line 105: $this->assertSame('bar', $this->app->make(InstanceStub::class)->execute()); - line 107: $this->forgetMock(InstanceStub::class); - line 108: $this->assertSame('foo', $this->app->make(InstanceStub::class)->execute()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 100: $this->mock(InstanceStub::class) ❌ tests/Foundation/Testing/Concerns/InteractsWithViewsTest.php - Test @ line 21: public function testComponentCanAccessPublicProperties() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 21: public function testComponentCanAccessPublicProperties() - line 38: $component = $this->component(get_class($exampleComponent)); - line 41: $this->assertSame('hello', $component->speak()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 45: public function testComponentMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 45: public function testComponentMacroable() - line 47: TestComponent::macro('foo', fn (): string => 'bar'); - line 57: $component = $this->component(get_class($exampleComponent)); - line 59: $this->assertSame('bar', $component->foo()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Foundation/Testing/Concerns/MakesHttpRequestsTest.php - Test @ line 13: public function testFromSetsHeaderAndSession() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 13: public function testFromSetsHeaderAndSession() - line 15: $this->from('previous/url'); - line 18: $this->assertSame('previous/url', $this->app['session']->previousUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 21: public function testFromRouteSetsHeaderAndSession() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 21: public function testFromRouteSetsHeaderAndSession() - line 23: $router = $this->app->make(Registrar::class); - line 25: $router->get('previous/url', fn () => 'ok')->name('previous-url'); - line 27: $this->fromRoute('previous-url'); - line 30: $this->assertSame('http://localhost/previous/url', $this->app['session']->previousUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 33: public function testFromRemoveHeader() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 33: public function testFromRemoveHeader() - line 35: $this->withHeader('name', 'Milwad')->from('previous/url'); - line 39: $this->withoutHeader('name')->from('previous/url'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 33: public function testFromRemoveHeader() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 44: public function testFromRemoveHeaders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 44: public function testFromRemoveHeaders() - line 46: $this->withHeaders([ - line 54: $this->withoutHeaders(['name', 'foo'])->from('previous/url'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 44: public function testFromRemoveHeaders() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 60: public function testWithTokenSetsAuthorizationHeader() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 60: public function testWithTokenSetsAuthorizationHeader() - line 62: $this->withToken('foobar'); - line 65: $this->withToken('foobar', 'Basic'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 60: public function testWithTokenSetsAuthorizationHeader() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 69: public function testWithBasicAuthSetsAuthorizationHeader() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 69: public function testWithBasicAuthSetsAuthorizationHeader() - line 78: $this->withBasicAuth($username, $password); - line 83: $this->withBasicAuth($username, $password); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 69: public function testWithBasicAuthSetsAuthorizationHeader() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 87: public function testWithoutTokenRemovesAuthorizationHeader() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 87: public function testWithoutTokenRemovesAuthorizationHeader() - line 89: $this->withToken('foobar'); - line 92: $this->withoutToken(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 87: public function testWithoutTokenRemovesAuthorizationHeader() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 96: public function testWithoutAndWithMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 96: public function testWithoutAndWithMiddleware() - line 98: $this->assertFalse($this->app->has('middleware.disable')); - line 100: $this->withoutMiddleware(); - line 101: $this->assertTrue($this->app->has('middleware.disable')); - line 102: $this->assertTrue($this->app->make('middleware.disable')); - line 104: $this->withMiddleware(); - line 105: $this->assertFalse($this->app->has('middleware.disable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 108: public function testWithoutAndWithMiddlewareWithParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 108: public function testWithoutAndWithMiddlewareWithParameter() - line 114: $this->assertFalse($this->app->has(MyMiddleware::class)); - line 120: $this->withoutMiddleware(MyMiddleware::class); - line 121: $this->assertTrue($this->app->has(MyMiddleware::class)); - line 127: $this->withMiddleware(MyMiddleware::class); - line 128: $this->assertFalse($this->app->has(MyMiddleware::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 135: public function testWithCookieSetCookie() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 135: public function testWithCookieSetCookie() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 143: public function testWithCookiesSetsCookiesAndOverwritesPreviousValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 143: public function testWithCookiesSetsCookiesAndOverwritesPreviousValues() - line 145: $this->withCookie('foo', 'bar'); - line 146: $this->withCookies([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 143: public function testWithCookiesSetsCookiesAndOverwritesPreviousValues() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 156: public function testWithUnencryptedCookieSetCookie() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 156: public function testWithUnencryptedCookieSetCookie() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 164: public function testWithUnencryptedCookiesSetsCookiesAndOverwritesPreviousValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 164: public function testWithUnencryptedCookiesSetsCookiesAndOverwritesPreviousValues() - line 166: $this->withUnencryptedCookie('foo', 'bar'); - line 167: $this->withUnencryptedCookies([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 164: public function testWithUnencryptedCookiesSetsCookiesAndOverwritesPreviousValues() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 177: public function testWithoutAndWithCredentials() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 177: public function testWithoutAndWithCredentials() - line 181: $this->assertSame([], $this->prepareCookiesForJsonRequest()); - line 183: $this->withCredentials(); - line 185: $this->assertSame(['foo' => 'bar'], $this->prepareCookiesForJsonRequest()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 188: public function testFollowingRedirects() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 188: public function testFollowingRedirects() - line 190: $router = $this->app->make(Registrar::class); - line 191: $url = $this->app->make(UrlGenerator::class); - line 194: return new RedirectResponse($url->to('to')); - line 201: $this->followingRedirects() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 188: public function testFollowingRedirects() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 207: public function testFollowingRedirectsTerminatesInExpectedOrder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 207: public function testFollowingRedirectsTerminatesInExpectedOrder() - line 209: $router = $this->app->make(Registrar::class); - line 210: $url = $this->app->make(UrlGenerator::class); - line 214: $callOrder[] = $request->path(); - line 218: return new RedirectResponse($url->to('to')); - line 223: })->middleware(TerminatingMiddleware::class); - line 225: $this->followingRedirects()->get('from'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 207: public function testFollowingRedirectsTerminatesInExpectedOrder() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 230: public function testWithPrecognition() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 230: public function testWithPrecognition() - line 232: $this->withPrecognition(); - line 235: $this->app->make(Registrar::class) - line 236: ->get('test-route', fn () => 'ok')->middleware(HandlePrecognitiveRequests::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Foundation/Testing/DatabaseMigrationsTest.php - Test @ line 59: public function testRefreshTestDatabaseDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 59: public function testRefreshTestDatabaseDefault() - line 61: $this->app->instance(ConsoleKernelContract::class, $kernel = m::spy(ConsoleKernel::class)); - line 71: $this->runDatabaseMigrations(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 59: public function testRefreshTestDatabaseDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 74: public function testRefreshTestDatabaseWithDropViewsOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 74: public function testRefreshTestDatabaseWithDropViewsOption() - line 78: $this->app->instance(ConsoleKernelContract::class, $kernel = m::spy(ConsoleKernel::class)); - line 88: $this->runDatabaseMigrations(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 74: public function testRefreshTestDatabaseWithDropViewsOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 91: public function testRefreshTestDatabaseWithDropTypesOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 91: public function testRefreshTestDatabaseWithDropTypesOption() - line 95: $this->app->instance(ConsoleKernelContract::class, $kernel = m::spy(ConsoleKernel::class)); - line 105: $this->runDatabaseMigrations(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 91: public function testRefreshTestDatabaseWithDropTypesOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/Testing/DatabaseTransactionsManagerTest.php - Test @ line 10: public function testItExecutesCallbacksImmediatelyIfThereIsOnlyOneTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 10: public function testItExecutesCallbacksImmediatelyIfThereIsOnlyOneTransaction() - line 15: $manager->begin('foo', 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 10: public function testItExecutesCallbacksImmediatelyIfThereIsOnlyOneTransaction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 23: public function testItIgnoresTheBaseTransactionForCallbackApplicableTransactions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 23: public function testItIgnoresTheBaseTransactionForCallbackApplicableTransactions() - line 27: $manager->begin('foo', 1); - line 28: $manager->begin('foo', 2); - line 30: $this->assertCount(1, $manager->callbackApplicableTransactions()); - line 31: $this->assertEquals(2, $manager->callbackApplicableTransactions()[0]->level); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 34: public function testCommittingDoesNotRemoveTheBasePendingTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 34: public function testCommittingDoesNotRemoveTheBasePendingTransaction() - line 38: $manager->begin('foo', 1); - line 40: $manager->begin('foo', 2); - line 41: $manager->commit('foo', 2, 1); - line 43: $this->assertCount(0, $manager->callbackApplicableTransactions()); - line 45: $manager->begin('foo', 2); - line 47: $this->assertCount(1, $manager->callbackApplicableTransactions()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 51: public function testItExecutesCallbacksForTheSecondTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 51: public function testItExecutesCallbacksForTheSecondTransaction() - line 55: $manager->begin('foo', 1); - line 56: $manager->begin('foo', 2); - line 62: $manager->commit('foo', 2, 1); - line 63: $manager->commit('foo', 1, 0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 51: public function testItExecutesCallbacksForTheSecondTransaction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 68: public function testItExecutesTransactionCallbacksAtLevelOne() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 68: public function testItExecutesTransactionCallbacksAtLevelOne() - line 72: $this->assertFalse($manager->afterCommitCallbacksShouldBeExecuted(0)); - line 73: $this->assertTrue($manager->afterCommitCallbacksShouldBeExecuted(1)); - line 74: $this->assertFalse($manager->afterCommitCallbacksShouldBeExecuted(2)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 77: public function testSkipsTheNumberOfConnectionsTransacting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 77: public function testSkipsTheNumberOfConnectionsTransacting() - line 81: $manager->begin('foo', 1); - line 82: $manager->begin('foo', 2); - line 84: $this->assertCount(1, $manager->callbackApplicableTransactions()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Foundation/Testing/DatabaseTruncationTest.php - Test @ line 47: public function testTruncateTables() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 47: public function testTruncateTables() - line 49: $connection = $this->arrangeConnection($truncatedTables, [ - line 54: $this->truncateTablesForConnection($connection, 'test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 47: public function testTruncateTables() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 59: public function testTruncateTablesWithTablesToTruncateProperty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 59: public function testTruncateTablesWithTablesToTruncateProperty() - line 63: $connection = $this->arrangeConnection($truncatedTables, [ - line 70: $this->truncateTablesForConnection($connection, 'test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 59: public function testTruncateTablesWithTablesToTruncateProperty() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 75: public function testTruncateTablesWithExceptTablesProperty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 75: public function testTruncateTablesWithExceptTablesProperty() - line 79: $connection = $this->arrangeConnection($truncatedTables, [ - line 86: $this->truncateTablesForConnection($connection, 'test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 75: public function testTruncateTablesWithExceptTablesProperty() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 91: public function testTruncateTablesWithSchema() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 91: public function testTruncateTablesWithSchema() - line 93: $connection = $this->arrangeConnection($truncatedTables, [ - line 102: $this->truncateTablesForConnection($connection, 'test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 91: public function testTruncateTablesWithSchema() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 107: public function testTruncateTablesWithSchemaTablesToTruncateProperty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 107: public function testTruncateTablesWithSchemaTablesToTruncateProperty() - line 111: $connection = $this->arrangeConnection($truncatedTables, [ - line 121: $this->truncateTablesForConnection($connection, 'test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 107: public function testTruncateTablesWithSchemaTablesToTruncateProperty() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 126: public function testTruncateTablesWithSchemaAndExceptTablesProperty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 126: public function testTruncateTablesWithSchemaAndExceptTablesProperty() - line 130: $connection = $this->arrangeConnection($truncatedTables, [ - line 140: $this->truncateTablesForConnection($connection, 'test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 126: public function testTruncateTablesWithSchemaAndExceptTablesProperty() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 145: public function testTruncateTablesWithConnectionPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 145: public function testTruncateTablesWithConnectionPrefix() - line 147: $connection = $this->arrangeConnection($truncatedTables, [ - line 155: $this->truncateTablesForConnection($connection, 'test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 145: public function testTruncateTablesWithConnectionPrefix() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 160: public function testTruncateTablesOnPgsqlWithSearchPath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 160: public function testTruncateTablesOnPgsqlWithSearchPath() - line 162: $connection = $this->arrangeConnection($truncatedTables, [ - line 173: $this->truncateTablesForConnection($connection, 'test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 160: public function testTruncateTablesOnPgsqlWithSearchPath() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/Testing/RefreshDatabaseTest.php - Test @ line 49: public function testRefreshTestDatabaseDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 49: public function testRefreshTestDatabaseDefault() - line 51: $this->app->instance(ConsoleKernelContract::class, $kernel = m::spy(ConsoleKernel::class)); - line 61: $this->refreshTestDatabase(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testRefreshTestDatabaseDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 64: public function testRefreshTestDatabaseWithDropViewsOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 64: public function testRefreshTestDatabaseWithDropViewsOption() - line 68: $this->app->instance(ConsoleKernelContract::class, $kernel = m::spy(ConsoleKernel::class)); - line 78: $this->refreshTestDatabase(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 64: public function testRefreshTestDatabaseWithDropViewsOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 81: public function testRefreshTestDatabaseWithDropTypesOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 81: public function testRefreshTestDatabaseWithDropTypesOption() - line 85: $this->app->instance(ConsoleKernelContract::class, $kernel = m::spy(ConsoleKernel::class)); - line 95: $this->refreshTestDatabase(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 81: public function testRefreshTestDatabaseWithDropTypesOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Foundation/Testing/WormholeTest.php - Test @ line 20: public function testCanTravelBackToPresent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 20: public function testCanTravelBackToPresent() - line 24: $future = now()->addDays(10); - line 27: (new Wormhole(10))->days(); - line 30: $this->assertEquals($future->format('Y-m-d'), now()->format('Y-m-d')); - line 33: $this->assertEquals($present->format('Y-m-d'), Wormhole::back()->format('Y-m-d')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 36: public function testCarbonImmutableCompatibility() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 36: public function testCarbonImmutableCompatibility() - line 39: Date::use(CarbonImmutable::class); - line 43: $future = $present->addDays(10); - line 46: (new Wormhole(10))->days(); - line 49: $this->assertNotEquals($future->format('Y-m-d'), $present->format('Y-m-d')); - line 52: $this->assertEquals($future->format('Y-m-d'), now()->format('Y-m-d')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 55: public function testItCanTravelByMicroseconds() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 55: public function testItCanTravelByMicroseconds() - line 57: Carbon::setTestNow(Carbon::parse('2000-01-01 00:00:00')->startOfSecond()); - line 59: (new Wormhole(1))->microsecond(); - line 60: $this->assertSame('2000-01-01 00:00:00.000001', Date::now()->format('Y-m-d H:i:s.u')); - line 62: (new Wormhole(5))->microseconds(); - line 63: $this->assertSame('2000-01-01 00:00:00.000006', Date::now()->format('Y-m-d H:i:s.u')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Hashing/HasherTest.php - Test @ line 29: public function testEmptyHashedValueReturnsFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 29: public function testEmptyHashedValueReturnsFalse() - line 32: $this->assertFalse($hasher->check('password', '')); - line 34: $this->assertFalse($hasher->check('password', '')); - line 36: $this->assertFalse($hasher->check('password', '')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 39: public function testNullHashedValueReturnsFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 39: public function testNullHashedValueReturnsFalse() - line 42: $this->assertFalse($hasher->check('password', null)); - line 44: $this->assertFalse($hasher->check('password', null)); - line 46: $this->assertFalse($hasher->check('password', null)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 49: public function testBasicBcryptHashing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 49: public function testBasicBcryptHashing() - line 52: $value = $hasher->make('password'); - line 54: $this->assertTrue($hasher->check('password', $value)); - line 55: $this->assertFalse($hasher->needsRehash($value)); - line 56: $this->assertTrue($hasher->needsRehash($value, ['rounds' => 1])); - line 59: $this->assertTrue($this->hashManager->isHashed($value)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 62: public function testBcryptValueTooLong() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 62: public function testBcryptValueTooLong() - line 64: $this->expectException(\InvalidArgumentException::class); - line 66: $hasher->make(str_repeat('a', 73)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 62: public function testBcryptValueTooLong() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 69: public function testBasicArgon2iHashing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 69: public function testBasicArgon2iHashing() - line 72: $value = $hasher->make('password'); - line 74: $this->assertTrue($hasher->check('password', $value)); - line 75: $this->assertFalse($hasher->needsRehash($value)); - line 76: $this->assertTrue($hasher->needsRehash($value, ['threads' => 1])); - line 78: $this->assertTrue($this->hashManager->isHashed($value)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 81: public function testBasicArgon2idHashing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 81: public function testBasicArgon2idHashing() - line 84: $value = $hasher->make('password'); - line 86: $this->assertTrue($hasher->check('password', $value)); - line 87: $this->assertFalse($hasher->needsRehash($value)); - line 88: $this->assertTrue($hasher->needsRehash($value, ['threads' => 1])); - line 90: $this->assertTrue($this->hashManager->isHashed($value)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 94: public function testBasicBcryptVerification() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 94: public function testBasicBcryptVerification() - line 96: $this->expectException(RuntimeException::class); - line 99: $argonHashed = $argonHasher->make('password'); - line 100: (new BcryptHasher(['verify' => true]))->check('password', $argonHashed); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 94: public function testBasicBcryptVerification() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 104: public function testBasicArgon2iVerification() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 104: public function testBasicArgon2iVerification() - line 106: $this->expectException(RuntimeException::class); - line 109: $bcryptHashed = $bcryptHasher->make('password'); - line 110: (new ArgonHasher(['verify' => true]))->check('password', $bcryptHashed); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 104: public function testBasicArgon2iVerification() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 114: public function testBasicArgon2idVerification() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 114: public function testBasicArgon2idVerification() - line 116: $this->expectException(RuntimeException::class); - line 119: $bcryptHashed = $bcryptHasher->make('password'); - line 120: (new Argon2IdHasher(['verify' => true]))->check('password', $bcryptHashed); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 114: public function testBasicArgon2idVerification() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 128: public function testBasicBcryptNotSupported() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 128: public function testBasicBcryptNotSupported() - line 130: $this->expectException(RuntimeException::class); - line 132: (new BcryptHasher(['rounds' => 0]))->make('password'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 128: public function testBasicBcryptNotSupported() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 135: public function testBasicArgon2iNotSupported() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 135: public function testBasicArgon2iNotSupported() - line 137: $this->expectException(RuntimeException::class); - line 139: (new ArgonHasher(['time' => 0]))->make('password'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 135: public function testBasicArgon2iNotSupported() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 142: public function testBasicArgon2idNotSupported() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 142: public function testBasicArgon2idNotSupported() - line 144: $this->expectException(RuntimeException::class); - line 146: (new Argon2IdHasher(['time' => 0]))->make('password'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 142: public function testBasicArgon2idNotSupported() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Http/HttpClientTest.php - Test @ line 75: public function testStubbedResponsesAreReturnedAfterFaking() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 75: public function testStubbedResponsesAreReturnedAfterFaking() - line 79: $response = $this->factory->post('http://laravel.com/test-missing-page'); - line 81: $this->assertTrue($response->ok()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 84: public function testCreatedRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 84: public function testCreatedRequest() - line 87: 'vapor.laravel.com' => $this->factory::response('', HttpResponse::HTTP_CREATED), - line 91: $response = $this->factory->post('http://vapor.laravel.com'); - line 92: $this->assertTrue($response->created()); - line 94: $response = $this->factory->post('http://forge.laravel.com'); - line 95: $this->assertFalse($response->created()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 98: public function testStatusCodeShorthand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 98: public function testStatusCodeShorthand() - line 105: $response = $this->factory->post('http://forge.laravel.com'); - line 106: $this->assertTrue($response->noContent()); - line 108: $response = $this->factory->post('http://vapor.laravel.com'); - line 109: $this->assertTrue($response->created()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 112: public function testStatusCodeShorthandAssumeBodyWhenInvalidHttpStatusCode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 112: public function testStatusCodeShorthandAssumeBodyWhenInvalidHttpStatusCode() - line 119: $response = $this->factory->post('http://forge.laravel.com'); - line 120: $this->assertTrue($response->ok()); - line 121: $this->assertSame('999', $response->body()); - line 123: $response = $this->factory->post('http://vapor.laravel.com'); - line 124: $this->assertTrue($response->ok()); - line 125: $this->assertSame('1', $response->body()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 128: public function testBodyShorthands() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 128: public function testBodyShorthands() - line 136: $this->assertTrue($response->ok()); - line 137: $this->assertSame('Hello World', $response->body()); - line 139: $response = $this->factory->post('http://github.com'); - line 140: $this->assertTrue($response->ok()); - line 141: $this->assertSame('{"foo":"bar"}', $response->body()); - line 142: $this->assertSame(['foo' => 'bar'], $response->json()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 145: public function testAcceptedRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 145: public function testAcceptedRequest() - line 148: 'vapor.laravel.com' => $this->factory::response('', HttpResponse::HTTP_ACCEPTED), - line 152: $response = $this->factory->post('http://vapor.laravel.com'); - line 153: $this->assertTrue($response->accepted()); - line 155: $response = $this->factory->post('http://forge.laravel.com'); - line 156: $this->assertFalse($response->accepted()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 159: public function testMovedPermanentlyRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 159: public function testMovedPermanentlyRequest() - line 162: 'vapor.laravel.com' => $this->factory::response('', HttpResponse::HTTP_MOVED_PERMANENTLY), - line 166: $response = $this->factory->post('http://vapor.laravel.com'); - line 167: $this->assertTrue($response->movedPermanently()); - line 169: $response = $this->factory->post('http://forge.laravel.com'); - line 170: $this->assertFalse($response->movedPermanently()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 173: public function testNoContentRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 173: public function testNoContentRequest() - line 176: 'vapor.laravel.com' => $this->factory::response('', HttpResponse::HTTP_NO_CONTENT), - line 180: $response = $this->factory->post('http://vapor.laravel.com'); - line 181: $this->assertTrue($response->noContent()); - line 183: $response = $this->factory->post('http://forge.laravel.com'); - line 184: $this->assertFalse($response->noContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 187: public function testFoundRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 187: public function testFoundRequest() - line 190: 'vapor.laravel.com' => $this->factory::response('', HttpResponse::HTTP_FOUND), - line 194: $response = $this->factory->post('http://vapor.laravel.com'); - line 195: $this->assertTrue($response->found()); - line 197: $response = $this->factory->post('http://forge.laravel.com'); - line 198: $this->assertFalse($response->found()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 215: public function testBadRequestRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 215: public function testBadRequestRequest() - line 218: 'vapor.laravel.com' => $this->factory::response('', HttpResponse::HTTP_BAD_REQUEST), - line 222: $response = $this->factory->post('http://vapor.laravel.com'); - line 223: $this->assertTrue($response->badRequest()); - line 225: $response = $this->factory->post('http://forge.laravel.com'); - line 226: $this->assertFalse($response->badRequest()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 229: public function testPaymentRequiredRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 229: public function testPaymentRequiredRequest() - line 232: 'vapor.laravel.com' => $this->factory::response('', HttpResponse::HTTP_PAYMENT_REQUIRED), - line 236: $response = $this->factory->post('http://vapor.laravel.com'); - line 237: $this->assertTrue($response->paymentRequired()); - line 239: $response = $this->factory->post('http://forge.laravel.com'); - line 240: $this->assertFalse($response->paymentRequired()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 243: public function testRequestTimeoutRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 243: public function testRequestTimeoutRequest() - line 246: 'vapor.laravel.com' => $this->factory::response('', HttpResponse::HTTP_REQUEST_TIMEOUT), - line 250: $response = $this->factory->post('http://vapor.laravel.com'); - line 251: $this->assertTrue($response->requestTimeout()); - line 253: $response = $this->factory->post('http://forge.laravel.com'); - line 254: $this->assertFalse($response->requestTimeout()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 257: public function testConflictResponseRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 257: public function testConflictResponseRequest() - line 260: 'vapor.laravel.com' => $this->factory::response('', HttpResponse::HTTP_CONFLICT), - line 264: $response = $this->factory->post('http://vapor.laravel.com'); - line 265: $this->assertTrue($response->conflict()); - line 267: $response = $this->factory->post('http://forge.laravel.com'); - line 268: $this->assertFalse($response->conflict()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 271: public function testUnprocessableContentRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 271: public function testUnprocessableContentRequest() - line 274: 'vapor.laravel.com' => $this->factory::response('', HttpResponse::HTTP_UNPROCESSABLE_ENTITY), - line 278: $response = $this->factory->post('http://vapor.laravel.com'); - line 279: $this->assertTrue($response->unprocessableContent()); - line 281: $response = $this->factory->post('http://forge.laravel.com'); - line 282: $this->assertFalse($response->unprocessableContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 285: public function testUnprocessableEntityRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 285: public function testUnprocessableEntityRequest() - line 288: 'vapor.laravel.com' => $this->factory::response('', HttpResponse::HTTP_UNPROCESSABLE_ENTITY), - line 292: $response = $this->factory->post('http://vapor.laravel.com'); - line 293: $this->assertTrue($response->unprocessableEntity()); - line 295: $response = $this->factory->post('http://forge.laravel.com'); - line 296: $this->assertFalse($response->unprocessableEntity()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 299: public function testTooManyRequestsRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 299: public function testTooManyRequestsRequest() - line 302: 'vapor.laravel.com' => $this->factory::response('', HttpResponse::HTTP_TOO_MANY_REQUESTS), - line 306: $response = $this->factory->post('http://vapor.laravel.com'); - line 307: $this->assertTrue($response->tooManyRequests()); - line 309: $response = $this->factory->post('http://forge.laravel.com'); - line 310: $this->assertFalse($response->tooManyRequests()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 313: public function testUnauthorizedRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 313: public function testUnauthorizedRequest() - line 316: 'laravel.com' => $this->factory::response('', 401), - line 319: $response = $this->factory->post('http://laravel.com'); - line 321: $this->assertTrue($response->unauthorized()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 324: public function testForbiddenRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 324: public function testForbiddenRequest() - line 327: 'laravel.com' => $this->factory::response('', 403), - line 330: $response = $this->factory->post('http://laravel.com'); - line 332: $this->assertTrue($response->forbidden()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 335: public function testNotFoundResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 335: public function testNotFoundResponse() - line 338: 'laravel.com' => $this->factory::response('', 404), - line 341: $response = $this->factory->post('http://laravel.com'); - line 343: $this->assertTrue($response->notFound()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 346: public function testResponseBodyCasting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 346: public function testResponseBodyCasting() - line 354: $this->assertSame('{"result":{"foo":"bar"}}', $response->body()); - line 356: $this->assertIsArray($response->json()); - line 357: $this->assertSame(['foo' => 'bar'], $response->json()['result']); - line 358: $this->assertSame(['foo' => 'bar'], $response->json('result')); - line 359: $this->assertSame('bar', $response->json('result.foo')); - line 360: $this->assertSame('default', $response->json('missing_key', 'default')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 364: public function testResponseObjectAsArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 364: public function testResponseObjectAsArray() - line 372: $this->assertSame('[{"foo":"bar"},{"bar":"foo"}]', $response->body()); - line 374: $this->assertIsArray($response->object()); - line 375: $this->assertSame('bar', $response->object()[0]->foo); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 378: public function testResponseObjectAsObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 378: public function testResponseObjectAsObject() - line 386: $this->assertIsObject($response->object()); - line 387: $this->assertSame('bar', $response->object()->result->foo); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 390: public function testResponseObjectIsTappable() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 390: public function testResponseObjectIsTappable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 405: public function testResponseObjectIsMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 405: public function testResponseObjectIsMacroable() - line 408: return $this->collect() - line 425: $this->assertIsArray($response->movieFields()); - line 432: ], $response->movieFields()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 435: public function testResponseCanBeReturnedAsResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 435: public function testResponseCanBeReturnedAsResource() - line 443: $this->assertIsResource($response->resource()); - line 444: $this->assertSame('{"result":{"foo":"bar"}}', stream_get_contents($response->resource())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 447: public function testResponseCanBeReturnedAsCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 447: public function testResponseCanBeReturnedAsCollection() - line 455: $this->assertInstanceOf(Collection::class, $response->collect()); - line 456: $this->assertEquals(collect(['result' => ['foo' => 'bar']]), $response->collect()); - line 457: $this->assertEquals(collect(['foo' => 'bar']), $response->collect('result')); - line 458: $this->assertEquals(collect(['bar']), $response->collect('result.foo')); - line 459: $this->assertEquals(collect(), $response->collect('missing_key')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 462: public function testResponseCanBeReturnedAsFluent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 462: public function testResponseCanBeReturnedAsFluent() - line 470: $this->assertInstanceOf(Fluent::class, $response->fluent()); - line 471: $this->assertEquals(new Fluent(['result' => ['foo' => 'bar']]), $response->fluent()); - line 472: $this->assertEquals(new Fluent(['foo' => 'bar']), $response->fluent('result')); - line 473: $this->assertEquals(new Fluent(['bar']), $response->fluent('result.foo')); - line 474: $this->assertEquals(new Fluent([]), $response->fluent('missing_key')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 477: public function testSendRequestBodyAsJsonByDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 477: public function testSendRequestBodyAsJsonByDefault() - line 482: self::assertSame($body, $request->body()); - line 483: self::assertContains('application/json', $request->header('Content-Type')); - line 490: $this->factory->withBody($body)->send('get', 'http://foo.com/api'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 493: public function testSendRequestBodyWithManyAmpersands() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 493: public function testSendRequestBodyWithManyAmpersands() - line 498: self::assertSame($body, $request->body()); - line 499: self::assertContains('text/plain', $request->header('Content-Type')); - line 506: $this->factory->withBody($body, 'text/plain')->send('post', 'http://foo.com/api'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 509: public function testSendStreamRequestBody() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 509: public function testSendStreamRequestBody() - line 515: $body = Utils::streamFor($resource); - line 518: self::assertSame($string, $request->body()); - line 519: self::assertContains('text/plain', $request->header('Content-Type')); - line 526: $this->factory->withBody($body, 'text/plain')->send('post', 'http://foo.com/api'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 529: public function testUrlsCanBeStubbedByPath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 529: public function testUrlsCanBeStubbedByPath() - line 537: $fooResponse = $this->factory->post('http://foo.com/test'); - line 538: $barResponse = $this->factory->post('http://bar.com/test'); - line 539: $fallbackResponse = $this->factory->post('http://fallback.com/test'); - line 546: return $request->url() === 'http://foo.com/test' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 551: public function testCanSendJsonData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 551: public function testCanSendJsonData() - line 555: $this->factory->withHeaders([ - line 563: return $request->url() === 'http://foo.com/json' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 551: public function testCanSendJsonData() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 571: public function testCanSendFormData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 571: public function testCanSendFormData() - line 575: $this->factory->asForm()->post('http://foo.com/form', [ - line 581: return $request->url() === 'http://foo.com/form' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 571: public function testCanSendFormData() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 588: public function testCanSendArrayableFormData(string $method) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 588: public function testCanSendArrayableFormData(string $method) - line 592: $this->factory->asForm()->{$method}('http://foo.com/form', new Fluent([ - line 598: return $request->url() === 'http://foo.com/form' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 588: public function testCanSendArrayableFormData(string $method) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 605: public function testCanSendJsonSerializableData(string $method) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 605: public function testCanSendJsonSerializableData(string $method) - line 609: $this->factory->asJson()->{$method}('http://foo.com/form', new class implements JsonSerializable - line 621: return $request->url() === 'http://foo.com/form' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 605: public function testCanSendJsonSerializableData(string $method) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 628: public function testPrefersJsonSerializableOverArrayableData(string $method) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 628: public function testPrefersJsonSerializableOverArrayableData(string $method) - line 632: $this->factory->asJson()->{$method}('http://foo.com/form', new class implements JsonSerializable, Arrayable - line 650: return $request->url() === 'http://foo.com/form' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 628: public function testPrefersJsonSerializableOverArrayableData(string $method) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 656: public function testCanSendJsonDataWithStringable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 656: public function testCanSendJsonDataWithStringable() - line 660: $this->factory->withHeaders([ - line 668: return $request->url() === 'http://foo.com/json' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 656: public function testCanSendJsonDataWithStringable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 676: public function testCanSendFormDataWithStringable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 676: public function testCanSendFormDataWithStringable() - line 680: $this->factory->asForm()->post('http://foo.com/form', [ - line 686: return $request->url() === 'http://foo.com/form' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 676: public function testCanSendFormDataWithStringable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 692: public function testCanSendFormDataWithStringableInArrays() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 692: public function testCanSendFormDataWithStringableInArrays() - line 696: $this->factory->asForm()->post('http://foo.com/form', [ - line 701: return $request->url() === 'http://foo.com/form' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 692: public function testCanSendFormDataWithStringableInArrays() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 707: public function testRecordedCallsAreEmptiedWhenFakeIsCalled() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 707: public function testRecordedCallsAreEmptiedWhenFakeIsCalled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 724: public function testSpecificRequestIsNotBeingSent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 724: public function testSpecificRequestIsNotBeingSent() - line 728: $this->factory->post('http://foo.com/form', [ - line 733: return $request->url() === 'http://foo.com/form' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 724: public function testSpecificRequestIsNotBeingSent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 738: public function testNoRequestIsNotBeingSent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 738: public function testNoRequestIsNotBeingSent() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 738: public function testNoRequestIsNotBeingSent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 745: public function testRequestCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 745: public function testRequestCount() - line 750: $this->factory->post('http://foo.com/form', [ - line 756: $this->factory->post('http://foo.com/form', [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 745: public function testRequestCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 763: public function testCanSendMultipartData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 763: public function testCanSendMultipartData() - line 767: $this->factory->asMultipart()->post('http://foo.com/multipart', [ - line 776: return $request->url() === 'http://foo.com/multipart' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 763: public function testCanSendMultipartData() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 782: public function testFilesCanBeAttached() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 782: public function testFilesCanBeAttached() - line 786: $this->factory->attach('foo', 'data', 'file.txt', ['X-Test-Header' => 'foo']) - line 790: return $request->url() === 'http://foo.com/file' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 782: public function testFilesCanBeAttached() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 797: public function testCanSendMultipartDataWithSimplifiedParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 797: public function testCanSendMultipartDataWithSimplifiedParameters() - line 801: $this->factory->asMultipart()->post('http://foo.com/multipart', [ - line 806: return $request->url() === 'http://foo.com/multipart' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 797: public function testCanSendMultipartDataWithSimplifiedParameters() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 813: public function testCanSendMultipartDataWithBothSimplifiedAndExtendedParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 813: public function testCanSendMultipartDataWithBothSimplifiedAndExtendedParameters() - line 817: $this->factory->asMultipart()->post('http://foo.com/multipart', [ - line 827: return $request->url() === 'http://foo.com/multipart' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 813: public function testCanSendMultipartDataWithBothSimplifiedAndExtendedParameters() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 837: public function testCanSendMultipartDataWithArrayValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 837: public function testCanSendMultipartDataWithArrayValues() - line 841: $this->factory->asMultipart()->post('http://foo.com/multipart', [ - line 847: return $request->url() === 'http://foo.com/multipart' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 837: public function testCanSendMultipartDataWithArrayValues() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 858: public function testCanSendMultipartDataWithFileAndArrayValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 858: public function testCanSendMultipartDataWithFileAndArrayValues() - line 863: ->attach('attachment', 'photo_content', 'photo.jpg', ['Content-Type' => 'image/jpeg']) - line 870: return $request->url() === 'http://foo.com/multipart' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 858: public function testCanSendMultipartDataWithFileAndArrayValues() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 884: public function testItCanSendToken() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 884: public function testItCanSendToken() - line 888: $this->factory->withToken('token')->post('http://foo.com/json'); - line 891: return $request->url() === 'http://foo.com/json' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 884: public function testItCanSendToken() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 896: public function testItCanSendUserAgent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 896: public function testItCanSendUserAgent() - line 900: $this->factory->withUserAgent('Laravel')->post('http://foo.com/json'); - line 903: return $request->url() === 'http://foo.com/json' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 896: public function testItCanSendUserAgent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 908: public function testItOnlySendsOneUserAgentHeader() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 908: public function testItOnlySendsOneUserAgentHeader() - line 912: $this->factory->withUserAgent('Laravel') - line 917: $userAgent = $request->header('User-Agent'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 908: public function testItOnlySendsOneUserAgentHeader() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 925: public function testSequenceBuilder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 925: public function testSequenceBuilder() - line 928: '*' => $this->factory->sequence() - line 936: $this->assertSame('Ok', $response->body()); - line 937: $this->assertSame(201, $response->status()); - line 940: $this->assertSame(['fact' => 'Cats are great!'], $response->json()); - line 941: $this->assertSame('application/json', $response->header('Content-Type')); - line 942: $this->assertSame(200, $response->status()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 961: public function testSequenceBuilderCanKeepGoingWhenEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 961: public function testSequenceBuilderCanKeepGoingWhenEmpty() - line 964: '*' => $this->factory->sequence() - line 970: $this->assertSame('Ok', $response->body()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 976: public function testAssertSequencesAreEmpty() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 976: public function testAssertSequencesAreEmpty() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 990: public function testFakeSequence() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 990: public function testFakeSequence() - line 992: $this->factory->fakeSequence() - line 996: $this->assertSame(201, $this->factory->get('https://example.com')->status()); - line 997: $this->assertSame(301, $this->factory->get('https://example.com')->status()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1000: public function testWithCookies() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1000: public function testWithCookies() - line 1002: $this->factory->fakeSequence()->pushStatus(200); - line 1004: $response = $this->factory->withCookies( - line 1008: $this->assertCount(1, $response->cookies()->toArray()); - line 1011: $responseCookie = $response->cookies()->toArray()[0]; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1018: public function testWithQueryParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1018: public function testWithQueryParameters() - line 1022: $this->factory->withQueryParameters( - line 1027: return $request->url() === 'https://laravel.com?foo=bar'; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1018: public function testWithQueryParameters() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1031: public function testWithArrayQueryParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1031: public function testWithArrayQueryParameters() - line 1035: $this->factory->withQueryParameters( - line 1040: return $request->url() === 'https://laravel.com?foo%5B0%5D=bar&foo%5B1%5D=baz'; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1031: public function testWithArrayQueryParameters() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1044: public function testWithQueryParametersAllowsAddingMoreOnRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1044: public function testWithQueryParametersAllowsAddingMoreOnRequest() - line 1048: $this->factory->withQueryParameters( - line 1055: return $request->url() === 'https://laravel.com?foo=bar&baz=qux'; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1044: public function testWithQueryParametersAllowsAddingMoreOnRequest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1059: public function testWithQueryParametersAllowsOverridingParameterOnRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1059: public function testWithQueryParametersAllowsOverridingParameterOnRequest() - line 1063: $this->factory->withQueryParameters([ - line 1072: return $request->url() === 'https://laravel.com?foo=bar&baz=qux'; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1059: public function testWithQueryParametersAllowsOverridingParameterOnRequest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1076: public function testWithStringableQueryParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1076: public function testWithStringableQueryParameters() - line 1080: $this->factory->withQueryParameters( - line 1085: return $request->url() === 'https://laravel.com?foo=bar'; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1076: public function testWithStringableQueryParameters() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1089: public function testWithArrayStringableQueryParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1089: public function testWithArrayStringableQueryParameters() - line 1093: $this->factory->withQueryParameters( - line 1098: return $request->url() === 'https://laravel.com?foo%5B0%5D=bar&foo%5B1%5D=baz'; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1089: public function testWithArrayStringableQueryParameters() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1102: public function testGetWithArrayQueryParam() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1102: public function testGetWithArrayQueryParam() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1114: public function testGetWithArrayableQueryParam() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1114: public function testGetWithArrayableQueryParam() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1126: public function testGetWithStringQueryParam() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1126: public function testGetWithStringQueryParam() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1138: public function testGetWithQuery() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1138: public function testGetWithQuery() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1151: public function testGetWithQueryWontEncode() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1151: public function testGetWithQueryWontEncode() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1165: public function testGetWithArrayQueryParamOverwrites() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1165: public function testGetWithArrayQueryParamOverwrites() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1177: public function testGetWithArrayQueryParamEncodes() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1177: public function testGetWithArrayQueryParamEncodes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1189: public function testWithBaseUrl() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1189: public function testWithBaseUrl() - line 1193: $this->factory->baseUrl('http://foo.com/')->get('get'); - line 1196: return $request->url() === 'http://foo.com/get'; - line 1201: $this->factory->baseUrl('http://foo.com/')->get('http://bar.com/get'); - line 1204: return $request->url() === 'http://bar.com/get'; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1189: public function testWithBaseUrl() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1208: public function testCanConfirmManyHeaders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1208: public function testCanConfirmManyHeaders() - line 1212: $this->factory->withHeaders([ - line 1218: return $request->url() === 'http://foo.com/json' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1208: public function testCanConfirmManyHeaders() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1226: public function testCanConfirmManyHeadersUsingAString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1226: public function testCanConfirmManyHeadersUsingAString() - line 1230: $this->factory->withHeaders([ - line 1236: return $request->url() === 'http://foo.com/json' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1226: public function testCanConfirmManyHeadersUsingAString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1241: public function testItMergesMultipleHeaders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1241: public function testItMergesMultipleHeaders() - line 1245: $this->factory->withHeaders([ - line 1254: return $request->url() === 'http://foo.com/json' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1241: public function testItMergesMultipleHeaders() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1259: public function testItCanReplaceHeaders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1259: public function testItCanReplaceHeaders() - line 1263: $this->factory->withHeaders([ - line 1270: return $request->url() === 'http://foo.com/json' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1259: public function testItCanReplaceHeaders() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1275: public function testItCanReplaceHeadersWhenNoHeadersYetSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1275: public function testItCanReplaceHeadersWhenNoHeadersYetSet() - line 1279: $this->factory->replaceHeaders([ - line 1284: return $request->url() === 'http://foo.com/json' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1275: public function testItCanReplaceHeadersWhenNoHeadersYetSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1289: public function testCanConfirmSingleStringHeader() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1289: public function testCanConfirmSingleStringHeader() - line 1293: $this->factory->withHeader('X-Test-Header', 'foo')->post('http://foo.com/json'); - line 1296: return $request->url() === 'http://foo.com/json' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1289: public function testCanConfirmSingleStringHeader() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1303: public function testCanConfirmSingleArrayHeader() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1303: public function testCanConfirmSingleArrayHeader() - line 1307: $this->factory->withHeader('X-Test-ArrayHeader', ['bar', 'baz'])->post('http://foo.com/json'); - line 1310: return $request->url() === 'http://foo.com/json' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1303: public function testCanConfirmSingleArrayHeader() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1317: public function testExceptionAccessorOnSuccess() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1317: public function testExceptionAccessorOnSuccess() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1324: public function testExceptionAccessorOnFailure() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1324: public function testExceptionAccessorOnFailure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1338: public function testRequestExceptionSummary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1338: public function testRequestExceptionSummary() - line 1340: $this->expectException(RequestException::class); - line 1341: $this->expectExceptionMessage('{"error":{"code":403,"message":"The Request can not be completed"}}'); - line 1352: throw tap(new RequestException(new Response($response)), fn ($exception) => $exception->report()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1338: public function testRequestExceptionSummary() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1355: public function testRequestExceptionTruncatedSummary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1355: public function testRequestExceptionTruncatedSummary() - line 1357: $this->expectException(RequestException::class); - line 1358: $this->expectExceptionMessage('{"error":{"code":403,"message":"The Request can not be completed because quota limit was exceeded. Please, check our sup (truncated...)'); - line 1368: throw tap(new RequestException(new Response($response)), fn ($exception) => $exception->report()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1355: public function testRequestExceptionTruncatedSummary() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1371: public function testRequestExceptionWithoutTruncatedSummary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1371: public function testRequestExceptionWithoutTruncatedSummary() - line 1373: RequestException::dontTruncate(); - line 1375: $this->expectException(RequestException::class); - line 1376: $this->expectExceptionMessage('{"error":{"code":403,"message":"The Request can not be completed because quota limit was exceeded. Please, check our support team to increase your limit'); - line 1386: throw tap(new RequestException(new Response($response)), fn ($exception) => $exception->report()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1371: public function testRequestExceptionWithoutTruncatedSummary() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1389: public function testRequestExceptionWithCustomTruncatedSummary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1389: public function testRequestExceptionWithCustomTruncatedSummary() - line 1391: RequestException::truncateAt(60); - line 1393: $this->expectException(RequestException::class); - line 1394: $this->expectExceptionMessage('{"error":{"code":403,"message":"The Request can not be compl (truncated...)'); - line 1404: throw tap(new RequestException(new Response($response)), fn ($exception) => $exception->report()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1389: public function testRequestExceptionWithCustomTruncatedSummary() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1407: public function testRequestLevelTruncationLevelOnRequestException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1407: public function testRequestLevelTruncationLevelOnRequestException() - line 1409: RequestException::truncateAt(60); - line 1412: '*' => $this->factory->response(['error'], 403), - line 1417: $this->factory->throw()->truncateExceptionsAt(3)->get('http://foo.com/json'); - line 1422: $exception->report(); - line 1424: $this->assertEquals("HTTP request returned status code 403:\n[\"e (truncated...)\n", $exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1429: public function testNoTruncationOnRequestLevel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1429: public function testNoTruncationOnRequestLevel() - line 1431: RequestException::truncateAt(60); - line 1434: '*' => $this->factory->response(['error'], 403), - line 1440: $this->factory->throw()->dontTruncateExceptions()->get('http://foo.com/json'); - line 1445: $exception->report(); - line 1447: $this->assertEquals("HTTP request returned status code 403:\nHTTP/1.1 403 Forbidden\r\nContent-Type: application/json\r\n\r\n[\"error\"]\n", $exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1452: public function testRequestExceptionDoesNotTruncateButRequestDoes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1452: public function testRequestExceptionDoesNotTruncateButRequestDoes() - line 1454: RequestException::dontTruncate(); - line 1457: '*' => $this->factory->response(['error'], 403), - line 1462: $this->factory->throw()->truncateExceptionsAt(3)->get('http://foo.com/json'); - line 1467: $exception->report(); - line 1469: $this->assertEquals("HTTP request returned status code 403:\n[\"e (truncated...)\n", $exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1474: public function testAsyncRequestExceptionsRespectRequestTruncation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1474: public function testAsyncRequestExceptionsRespectRequestTruncation() - line 1476: RequestException::dontTruncate(); - line 1478: '*' => $this->factory->response(['error'], 403), - line 1481: $exception = $this->factory->async()->throw()->truncateExceptionsAt(4)->get('http://foo.com/json')->wait(); - line 1483: $exception->report(); - line 1486: $this->assertEquals("HTTP request returned status code 403:\n[\"er (truncated...)\n", $exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1490: public function testRequestExceptionEmptyBody() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1490: public function testRequestExceptionEmptyBody() - line 1492: $this->expectException(RequestException::class); - line 1493: $this->expectExceptionMessageMatches('/HTTP request returned status code 403$/'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1490: public function testRequestExceptionEmptyBody() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1500: public function testReportingExceptionTwiceDoesNotIncludeSummaryTwice() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1500: public function testReportingExceptionTwiceDoesNotIncludeSummaryTwice() - line 1502: RequestException::dontTruncate(); - line 1514: $exception->report(); - line 1515: $exception->report(); - line 1517: $this->assertEquals(1, substr_count($exception->getMessage(), '{"error":{"code":403,"message":"The Request can not be completed"}}')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1520: public function testOnErrorDoesntCallClosureOnInformational() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1520: public function testOnErrorDoesntCallClosureOnInformational() - line 1524: 'laravel.com' => $this->factory::response('', 101), - line 1528: ->onError(function ($response) use (&$status) { - line 1533: $this->assertSame(101, $response->status()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1536: public function testOnErrorDoesntCallClosureOnSuccess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1536: public function testOnErrorDoesntCallClosureOnSuccess() - line 1540: 'laravel.com' => $this->factory::response('', 201), - line 1544: ->onError(function ($response) use (&$status) { - line 1549: $this->assertSame(201, $response->status()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1552: public function testOnErrorDoesntCallClosureOnRedirection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1552: public function testOnErrorDoesntCallClosureOnRedirection() - line 1556: 'laravel.com' => $this->factory::response('', 301), - line 1560: ->onError(function ($response) use (&$status) { - line 1565: $this->assertSame(301, $response->status()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1568: public function testOnErrorCallsClosureOnClientError() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1568: public function testOnErrorCallsClosureOnClientError() - line 1572: 'laravel.com' => $this->factory::response('', 401), - line 1576: ->onError(function ($response) use (&$status) { - line 1581: $this->assertSame(401, $response->status()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1584: public function testOnErrorCallsClosureOnServerError() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1584: public function testOnErrorCallsClosureOnServerError() - line 1588: 'laravel.com' => $this->factory::response('', 501), - line 1592: ->onError(function ($response) use (&$status) { - line 1597: $this->assertSame(501, $response->status()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1600: public function testSinkToFile() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1600: public function testSinkToFile() - line 1602: $this->factory->fakeSequence()->push('abc123'); - line 1610: $this->factory->withOptions(['sink' => $destination])->get('https://example.com'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 1607: unlink($destination); - line 1615: unlink($destination); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1600: public function testSinkToFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1618: public function testSinkToResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1618: public function testSinkToResource() - line 1620: $this->factory->fakeSequence()->push('abc123'); - line 1624: $this->factory->sink($resource)->get('https://example.com'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1618: public function testSinkToResource() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1630: public function testSinkWhenStubbedByPath() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1630: public function testSinkWhenStubbedByPath() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1643: public function testCanAssertAgainstOrderOfHttpRequestsWithUrlStrings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1643: public function testCanAssertAgainstOrderOfHttpRequestsWithUrlStrings() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1643: public function testCanAssertAgainstOrderOfHttpRequestsWithUrlStrings() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1660: public function testAssertionsSentOutOfOrderThrowAssertionFailed() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1660: public function testAssertionsSentOutOfOrderThrowAssertionFailed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1679: public function testWrongNumberOfRequestsThrowAssertionFailed() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1679: public function testWrongNumberOfRequestsThrowAssertionFailed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1697: public function testCanAssertAgainstOrderOfHttpRequestsWithCallables() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1697: public function testCanAssertAgainstOrderOfHttpRequestsWithCallables() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1720: public function testCanAssertAgainstOrderOfHttpRequestsWithCallablesAndHeaders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1720: public function testCanAssertAgainstOrderOfHttpRequestsWithCallablesAndHeaders() - line 1726: return $request->url() === 'http://foo.com/json' && - line 1741: $this->factory->withHeaders([ - line 1748: $this->factory->withHeaders([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1720: public function testCanAssertAgainstOrderOfHttpRequestsWithCallablesAndHeaders() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1758: public function testCanAssertAgainstOrderOfHttpRequestsWithCallablesAndHeadersFailsCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1758: public function testCanAssertAgainstOrderOfHttpRequestsWithCallablesAndHeadersFailsCorrectly() - line 1764: return $request->url() === 'http://bar.com/json' && - line 1779: $this->factory->withHeaders([ - line 1786: $this->factory->withHeaders([ - line 1793: $this->expectException(AssertionFailedError::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1758: public function testCanAssertAgainstOrderOfHttpRequestsWithCallablesAndHeadersFailsCorrectly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1798: public function testCanDump() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1798: public function testCanDump() - line 1802: VarDumper::setHandler(function ($value) use (&$dumped) { - line 1806: $this->factory->fake()->dump(1, 2, 3)->withOptions(['delay' => 1000])->get('http://foo.com'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1798: public function testCanDump() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1817: public function testResponseCanDump() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1817: public function testResponseCanDump() - line 1821: VarDumper::setHandler(function ($value) use (&$dumped) { - line 1829: $this->factory->get('http://200.com')->dump(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1817: public function testResponseCanDump() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1836: public function testResponseCanDumpWithKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1836: public function testResponseCanDumpWithKey() - line 1840: VarDumper::setHandler(function ($value) use (&$dumped) { - line 1848: $this->factory->get('http://200.com')->dump('hello'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1836: public function testResponseCanDumpWithKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1855: public function testResponseCanDumpHeaders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1855: public function testResponseCanDumpHeaders() - line 1859: VarDumper::setHandler(function ($value) use (&$dumped) { - line 1867: $this->factory->get('http://200.com')->dumpHeaders(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1855: public function testResponseCanDumpHeaders() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1874: public function testResponseSequenceIsMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1874: public function testResponseSequenceIsMacroable() - line 1876: ResponseSequence::macro('customMethod', function () { - line 1880: $this->assertSame('yes!', $this->factory->fakeSequence()->customMethod()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1883: public function testRequestsCanBeAsync() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1883: public function testRequestsCanBeAsync() - line 1887: $promise = $request->async()->get('http://foo.com'); - line 1891: $this->assertSame($promise, $request->getPromise()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1894: public function testClientCanBeSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1894: public function testClientCanBeSet() - line 1896: $client = $this->factory->buildClient(); - line 1900: $this->assertNotSame($client, $request->buildClient()); - line 1902: $request->setClient($client); - line 1904: $this->assertSame($client, $request->buildClient()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1907: public function testRequestsCanReplaceOptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1907: public function testRequestsCanReplaceOptions() - line 1911: $request = $request->withOptions(['http_errors' => true, 'connect_timeout' => 10]); - line 1913: $this->assertSame(['connect_timeout' => 10, 'crypto_method' => 33, 'http_errors' => true, 'timeout' => 30], $request->getOptions()); - line 1915: $request = $request->withOptions(['connect_timeout' => 20]); - line 1917: $this->assertSame(['connect_timeout' => 20, 'crypto_method' => 33, 'http_errors' => true, 'timeout' => 30], $request->getOptions()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1920: public function testMultipleRequestsAreSentInThePool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1920: public function testMultipleRequestsAreSentInThePool() - line 1923: '200.com' => $this->factory::response('', 200), - line 1928: $responses = $this->factory->pool(function (Pool $pool) { - line 1936: $this->assertSame(200, $responses[0]->status()); - line 1937: $this->assertSame(400, $responses[1]->status()); - line 1938: $this->assertSame(500, $responses[2]->status()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1941: public function testMultipleRequestsAreSentInThePoolWithKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1941: public function testMultipleRequestsAreSentInThePoolWithKeys() - line 1944: '200.com' => $this->factory::response('', 200), - line 1949: $responses = $this->factory->pool(function (Pool $pool) { - line 1958: $this->assertSame(200, $responses['test200']->status()); - line 1959: $this->assertSame(200, $responses[0]->status()); - line 1960: $this->assertSame(400, $responses['test400']->status()); - line 1961: $this->assertSame(500, $responses['test500']->status()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1964: public function testMiddlewareRunsInPool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1964: public function testMiddlewareRunsInPool() - line 1967: return $this->factory->response('Fake'); - line 1974: $responses = $this->factory->pool(fn (Pool $pool) => [ - line 1980: $this->assertSame('Fake', $response->body()); - line 1984: $this->assertSame('Fake', tap($history[0]['response']->getBody())->rewind()->getContents()); - line 1986: $this->assertSame(['hyped-for' => 'laravel-movie'], json_decode(tap($history[0]['request']->getBody())->rewind()->getContents(), true)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1989: public function testPoolConcurrency() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1989: public function testPoolConcurrency() - line 1992: '200.com' => $this->factory::response('', 200), - line 1997: $responses = $this->factory->pool(function (Pool $pool) { - line 2005: $this->assertSame(200, $responses[0]->status()); - line 2006: $this->assertSame(400, $responses[1]->status()); - line 2007: $this->assertSame(500, $responses[2]->status()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2010: public function testTheRequestSendingAndResponseReceivedEventsAreFiredWhenARequestIsSent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2010: public function testTheRequestSendingAndResponseReceivedEventsAreFiredWhenARequestIsSent() - line 2012: $events = m::mock(Dispatcher::class); - line 2020: $factory->head('https://example.com'); - line 2021: $factory->post('https://example.com'); - line 2022: $factory->patch('https://example.com'); - line 2023: $factory->delete('https://example.com'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2012: $events = m::mock(Dispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2010: public function testTheRequestSendingAndResponseReceivedEventsAreFiredWhenARequestIsSent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2026: public function testTheRequestSendingAndResponseReceivedEventsAreFiredWhenARequestIsSentAsync() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2026: public function testTheRequestSendingAndResponseReceivedEventsAreFiredWhenARequestIsSentAsync() - line 2028: $events = m::mock(Dispatcher::class); - line 2034: $factory->pool(function (Pool $pool) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2028: $events = m::mock(Dispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2026: public function testTheRequestSendingAndResponseReceivedEventsAreFiredWhenARequestIsSentAsync() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2045: public function testTheRequestSendingAndResponseReceivedEventsAreFiredForEveryRetry() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2045: public function testTheRequestSendingAndResponseReceivedEventsAreFiredForEveryRetry() - line 2047: $events = m::mock(Dispatcher::class); - line 2053: '*' => $factory->response(['error'], 403), - line 2056: $response = $factory->retry(2, 1000, null, false)->get('http://foo.com/get'); - line 2058: $this->assertTrue($response->failed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2047: $events = m::mock(Dispatcher::class); - Test @ line 2063: public function testTheTransferStatsAreCalledSafelyWhenFakingTheRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2063: public function testTheTransferStatsAreCalledSafelyWhenFakingTheRequest() - line 2066: $stats = $this->factory->get('https://example.com')->handlerStats(); - line 2067: $effectiveUri = $this->factory->get('https://example.com')->effectiveUri(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2063: public function testTheTransferStatsAreCalledSafelyWhenFakingTheRequest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2075: public function testTransferStatsArePresentWhenFakingTheRequestUsingAPromiseResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2075: public function testTransferStatsArePresentWhenFakingTheRequestUsingAPromiseResponse() - line 2077: $this->factory->fake(['https://example.com' => $this->factory->response()]); - line 2078: $effectiveUri = $this->factory->get('https://example.com')->effectiveUri(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2075: public function testTransferStatsArePresentWhenFakingTheRequestUsingAPromiseResponse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2083: public function testClonedClientsWorkSuccessfullyWithTheRequestObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2083: public function testClonedClientsWorkSuccessfullyWithTheRequestObject() - line 2085: $events = m::mock(Dispatcher::class); - line 2090: $factory->fake(['example.com' => $factory->response('foo', 200)]); - line 2092: $client = $factory->timeout(10); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2085: $events = m::mock(Dispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2083: public function testClonedClientsWorkSuccessfullyWithTheRequestObject() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2098: public function testRequestIsMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2098: public function testRequestIsMacroable() - line 2100: Request::macro('customMethod', function () { - line 2105: $this->assertSame('yes!', $request->customMethod()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2113: public function testRequestExceptionIsThrownWhenRetriesExhausted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2113: public function testRequestExceptionIsThrownWhenRetriesExhausted() - line 2116: '*' => $this->factory->response(['error'], 403), - line 2123: ->retry(2, 1000, null, true) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2113: public function testRequestExceptionIsThrownWhenRetriesExhausted() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2135: public function testRequestExceptionIsThrownWhenRetriesExhaustedWithBackoffArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2135: public function testRequestExceptionIsThrownWhenRetriesExhaustedWithBackoffArray() - line 2138: '*' => $this->factory->response(['error'], 403), - line 2145: ->retry([1], 0, null, true) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2135: public function testRequestExceptionIsThrownWhenRetriesExhaustedWithBackoffArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2157: public function testRequestExceptionIsThrownWithoutRetriesIfRetryNotNecessary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2157: public function testRequestExceptionIsThrownWithoutRetriesIfRetryNotNecessary() - line 2160: '*' => $this->factory->response(['error'], 500), - line 2168: ->retry(2, 1000, function ($exception) use (&$whenAttempts) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2157: public function testRequestExceptionIsThrownWithoutRetriesIfRetryNotNecessary() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2186: public function testRequestExceptionIsThrownWithoutRetriesIfRetryNotNecessaryWithBackoffArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2186: public function testRequestExceptionIsThrownWithoutRetriesIfRetryNotNecessaryWithBackoffArray() - line 2189: '*' => $this->factory->response(['error'], 500), - line 2197: ->retry([1000, 1000], 1000, function ($exception) use (&$whenAttempts) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2186: public function testRequestExceptionIsThrownWithoutRetriesIfRetryNotNecessaryWithBackoffArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2215: public function testRequestExceptionIsNotThrownWhenDisabledAndRetriesExhausted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2215: public function testRequestExceptionIsNotThrownWhenDisabledAndRetriesExhausted() - line 2218: '*' => $this->factory->response(['error'], 403), - line 2222: ->retry(2, 1000, null, false) - line 2225: $this->assertTrue($response->failed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2230: public function testRequestExceptionIsNotThrownWhenDisabledAndRetriesExhaustedWithBackoffArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2230: public function testRequestExceptionIsNotThrownWhenDisabledAndRetriesExhaustedWithBackoffArray() - line 2233: '*' => $this->factory->response(['error'], 403), - line 2237: ->retry([1, 2], throw: false) - line 2240: $this->assertTrue($response->failed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2245: public function testRequestExceptionIsNotThrownWithoutRetriesIfRetryNotNecessary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2245: public function testRequestExceptionIsNotThrownWithoutRetriesIfRetryNotNecessary() - line 2248: '*' => $this->factory->response(['error'], 500), - line 2254: ->retry(2, 1000, function ($exception) use (&$whenAttempts) { - line 2261: $this->assertTrue($response->failed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2268: public function testRequestExceptionIsNotThrownWithoutRetriesIfRetryNotNecessaryWithBackoffArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2268: public function testRequestExceptionIsNotThrownWithoutRetriesIfRetryNotNecessaryWithBackoffArray() - line 2271: '*' => $this->factory->response(['error'], 500), - line 2277: ->retry([1, 2], 0, function ($exception) use (&$whenAttempts) { - line 2284: $this->assertTrue($response->failed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2291: public function testRequestCanBeModifiedInRetryCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2291: public function testRequestCanBeModifiedInRetryCallback() - line 2294: '*' => $this->factory->sequence() - line 2300: ->retry(2, 1000, function ($exception, $request) { - line 2309: $this->assertTrue($response->successful()); - line 2312: return $request->hasHeader('Foo') && $request->header('Foo') === ['Bar']; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2316: public function testRequestCanBeModifiedInRetryCallbackWithBackoffArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2316: public function testRequestCanBeModifiedInRetryCallbackWithBackoffArray() - line 2319: '*' => $this->factory->sequence() - line 2325: ->retry([2], when: function ($exception, $request) { - line 2334: $this->assertTrue($response->successful()); - line 2337: return $request->hasHeader('Foo') && $request->header('Foo') === ['Bar']; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2341: public function testExceptionThrownInRetryCallbackWithoutRetrying() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2341: public function testExceptionThrownInRetryCallbackWithoutRetrying() - line 2344: '*' => $this->factory->response(['error'], 500), - line 2351: ->retry(2, 1000, function ($exception) use (&$whenAttempts) { - line 2361: $this->assertEquals('Foo bar', $exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2366: public function testExceptionThrownInRetryCallbackWithoutRetryingWithBackoffArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2366: public function testExceptionThrownInRetryCallbackWithoutRetryingWithBackoffArray() - line 2369: '*' => $this->factory->response(['error'], 500), - line 2376: ->retry([1, 2, 3], when: function ($exception) use (&$whenAttempts) { - line 2386: $this->assertEquals('Foo bar', $exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2391: public function testRequestsWillBeWaitingSleepMillisecondsReceivedBeforeRetry() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2391: public function testRequestsWillBeWaitingSleepMillisecondsReceivedBeforeRetry() - line 2396: '*' => $this->factory->sequence() - line 2403: ->retry(3, function ($attempt, $exception) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2391: public function testRequestsWillBeWaitingSleepMillisecondsReceivedBeforeRetry() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2421: public function testRequestExceptionReturnedWhenRetriesExhaustedInPool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2421: public function testRequestExceptionReturnedWhenRetriesExhaustedInPool() - line 2424: '*' => $this->factory->response(['error'], 403), - line 2427: [$exception] = $this->factory->pool(fn ($pool) => [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2421: public function testRequestExceptionReturnedWhenRetriesExhaustedInPool() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2437: public function testRequestExceptionIsReturnedWithoutRetriesIfRetryNotNecessaryInPool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2437: public function testRequestExceptionIsReturnedWithoutRetriesIfRetryNotNecessaryInPool() - line 2440: '*' => $this->factory->response(['error'], 500), - line 2445: [$exception] = $this->factory->pool(fn ($pool) => [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2437: public function testRequestExceptionIsReturnedWithoutRetriesIfRetryNotNecessaryInPool() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2461: public function testRequestExceptionIsNotReturnedWhenDisabledAndRetriesExhaustedInPool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2461: public function testRequestExceptionIsNotReturnedWhenDisabledAndRetriesExhaustedInPool() - line 2464: '*' => $this->factory->response(['error'], 403), - line 2467: [$response] = $this->factory->pool(fn ($pool) => [ - line 2473: $this->assertTrue($response->failed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2478: public function testRequestExceptionIsNotReturnedWithoutRetriesIfRetryNotNecessaryInPool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2478: public function testRequestExceptionIsNotReturnedWithoutRetriesIfRetryNotNecessaryInPool() - line 2481: '*' => $this->factory->response(['error'], 500), - line 2486: [$response] = $this->factory->pool(fn ($pool) => [ - line 2496: $this->assertTrue($response->failed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2503: public function testRequestCanBeModifiedInRetryCallbackInPool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2503: public function testRequestCanBeModifiedInRetryCallbackInPool() - line 2506: '*' => $this->factory->sequence() - line 2511: [$response] = $this->factory->pool(fn ($pool) => [ - line 2521: $this->assertTrue($response->successful()); - line 2524: return $request->hasHeader('Foo') && $request->header('Foo') === ['Bar']; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2528: public function testHandleRequestExeptionWithNoResponseInPoolConsideredConnectionException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2528: public function testHandleRequestExeptionWithNoResponseInPoolConsideredConnectionException() - line 2535: $responses = $this->factory->pool(function (Pool $pool) { - line 2542: self::assertSame($requestException, $responses[0]->getPrevious()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2545: public function testExceptionThrownInRetryCallbackIsReturnedWithoutRetryingInPool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2545: public function testExceptionThrownInRetryCallbackIsReturnedWithoutRetryingInPool() - line 2548: '*' => $this->factory->response(['error'], 500), - line 2551: [$exception] = $this->factory->pool(fn ($pool) => [ - line 2559: $this->assertEquals('Foo bar', $exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2564: public function testExceptionThrowInMiddlewareAllowsRetry() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2564: public function testExceptionThrowInMiddlewareAllowsRetry() - line 2566: $middleware = Middleware::mapRequest(function (RequestInterface $request) { - line 2570: $this->expectException(RuntimeException::class); - line 2573: return $this->factory->response('Fake'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2564: public function testExceptionThrowInMiddlewareAllowsRetry() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2580: public function testRequestsWillBeWaitingSleepMillisecondsReceivedInBackoffArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2580: public function testRequestsWillBeWaitingSleepMillisecondsReceivedInBackoffArray() - line 2585: '*' => $this->factory->sequence() - line 2593: ->retry([50, 100, 200], 0, null, true) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2580: public function testRequestsWillBeWaitingSleepMillisecondsReceivedInBackoffArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2608: public function testFailedRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2608: public function testFailedRequest() - line 2610: $requestException = $this->factory->failedRequest(['code' => 'not_found'], 404, ['X-RateLimit-Remaining' => 199]); - line 2613: $this->assertEqualsCanonicalizing(['code' => 'not_found'], $requestException->response->json()); - line 2614: $this->assertEquals(404, $requestException->response->status()); - line 2615: $this->assertEquals(199, $requestException->response->header('X-RateLimit-Remaining')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2618: public function testFakeConnectionException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2618: public function testFakeConnectionException() - line 2620: $this->factory->fake($this->factory->failedConnection('Fake')); - line 2625: $this->factory->post('https://example.com'); - line 2632: $this->assertSame('Fake', $exception->getMessage()); - line 2636: return $request->url() === 'https://example.com' && $response === null; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2640: public function testFakeConnectionExceptionWithinFakeClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2640: public function testFakeConnectionExceptionWithinFakeClosure() - line 2642: $this->factory->fake(fn () => $this->factory->failedConnection('Fake')); - line 2647: $this->factory->post('https://example.com'); - line 2654: $this->assertSame('Fake', $exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2659: public function testFakeConnectionExceptionWithinArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2659: public function testFakeConnectionExceptionWithinArray() - line 2661: $this->factory->fake(['*' => $this->factory->failedConnection('Fake')]); - line 2666: $this->factory->post('https://example.com'); - line 2673: $this->assertSame('Fake', $exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2678: public function testFakeConnectionExceptionWithinSequence() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2678: public function testFakeConnectionExceptionWithinSequence() - line 2681: '*' => $this->factory->sequence() - line 2688: $response = $this->factory->retry(3, function ($attempt, $e) use (&$exception) { - line 2694: $this->assertSame('Success', $response->body()); - line 2698: $this->assertSame('Fake', $exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2703: public function testMiddlewareRunsWhenFaked() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2703: public function testMiddlewareRunsWhenFaked() - line 2706: return $this->factory->response('Fake'); - line 2711: $pendingRequest = $this->factory->withMiddleware( - line 2715: $response = $pendingRequest->post('https://example.com', ['hyped-for' => 'laravel-movie']); - line 2717: $this->assertSame('Fake', $response->body()); - line 2721: $this->assertSame('Fake', tap($history[0]['response']->getBody())->rewind()->getContents()); - line 2723: $this->assertSame(['hyped-for' => 'laravel-movie'], json_decode(tap($history[0]['request']->getBody())->rewind()->getContents(), true)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2726: public function testMiddlewareRunsAndCanChangeRequestOnAssertSent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2726: public function testMiddlewareRunsAndCanChangeRequestOnAssertSent() - line 2729: return $this->factory->response('Fake'); - line 2732: $pendingRequest = $this->factory->withMiddleware( - line 2736: $pendingRequest->post('https://laravel.example', ['laravel' => 'framework']); - line 2740: $request->url() === 'https://laravel.example' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2726: public function testMiddlewareRunsAndCanChangeRequestOnAssertSent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2745: public function testSslCertificateErrorsConvertedToConnectionException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2745: public function testSslCertificateErrorsConvertedToConnectionException() - line 2755: $this->expectException(ConnectionException::class); - line 2756: $this->expectExceptionMessage('cURL error 60: SSL certificate problem: unable to get local issuer certificate'); - line 2758: $this->factory->head('https://ssl-error.laravel.example'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2745: public function testSslCertificateErrorsConvertedToConnectionException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2761: public function testConnectExceptionIsConvertedToConnectionExceptionEvenWhenWithoutFactory() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2761: public function testConnectExceptionIsConvertedToConnectionExceptionEvenWhenWithoutFactory() - line 2763: $this->expectException(ConnectionException::class); - line 2764: $this->expectExceptionMessage('cURL error 60: SSL certificate problem'); - line 2768: $pendingRequest->setHandler(function () { - line 2775: $pendingRequest->head('https://ssl-error.laravel.example'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2761: public function testConnectExceptionIsConvertedToConnectionExceptionEvenWhenWithoutFactory() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2778: public function testRequestExceptionWithoutResponseIsConvertedToConnectionExceptionEvenWhenWithoutFactory() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2778: public function testRequestExceptionWithoutResponseIsConvertedToConnectionExceptionEvenWhenWithoutFactory() - line 2780: $this->expectException(ConnectionException::class); - line 2781: $this->expectExceptionMessage('cURL error 28: Operation timed out'); - line 2785: $pendingRequest->setHandler(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2778: public function testRequestExceptionWithoutResponseIsConvertedToConnectionExceptionEvenWhenWithoutFactory() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2795: public function testRequestExceptionWithResponseIsConvertedToConnectionExceptionEvenWhenWithoutFactory() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2795: public function testRequestExceptionWithResponseIsConvertedToConnectionExceptionEvenWhenWithoutFactory() - line 2797: $this->expectException(ConnectionException::class); - line 2798: $this->expectExceptionMessage('cURL error 28: Operation timed out'); - line 2802: $pendingRequest->setHandler(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2795: public function testRequestExceptionWithResponseIsConvertedToConnectionExceptionEvenWhenWithoutFactory() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2813: public function testTooManyRedirectsExceptionIsConvertedToConnectionExceptionEvenWhenWithoutFactory() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2813: public function testTooManyRedirectsExceptionIsConvertedToConnectionExceptionEvenWhenWithoutFactory() - line 2815: $this->expectException(ConnectionException::class); - line 2816: $this->expectExceptionMessage('Maximum number of redirects (5) exceeded'); - line 2820: $pendingRequest->setHandler(function () { - line 2828: $pendingRequest->maxRedirects(5)->get('https://redirect.laravel.example'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2813: public function testTooManyRedirectsExceptionIsConvertedToConnectionExceptionEvenWhenWithoutFactory() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2831: public function testTooManyRedirectsExceptionConvertedToConnectionException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2831: public function testTooManyRedirectsExceptionConvertedToConnectionException() - line 2844: $this->expectException(ConnectionException::class); - line 2845: $this->expectExceptionMessage('Maximum number of redirects (5) exceeded'); - line 2847: $this->factory->maxRedirects(5)->get('https://redirect.laravel.example'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2831: public function testTooManyRedirectsExceptionConvertedToConnectionException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2850: public function testTooManyRedirectsWithFakedRedirectChain() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2850: public function testTooManyRedirectsWithFakedRedirectChain() - line 2853: '1.example.com' => $this->factory->response(null, 301, ['Location' => 'https://2.example.com']), - line 2858: $this->expectException(ConnectionException::class); - line 2860: $this->factory->maxRedirects(1)->get('https://1.example.com'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2850: public function testTooManyRedirectsWithFakedRedirectChain() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2863: public function testRequestExceptionIsNotThrownIfThePendingRequestIsSetToThrowOnFailureButTheResponseIsSuccessful() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2863: public function testRequestExceptionIsNotThrownIfThePendingRequestIsSetToThrowOnFailureButTheResponseIsSuccessful() - line 2866: '*' => $this->factory->response(['success'], 200), - line 2870: ->throw() - line 2873: $this->assertSame(200, $response->status()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2876: public function testRequestExceptionIsThrownIfThePendingRequestIsSetToThrowOnFailure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2876: public function testRequestExceptionIsThrownIfThePendingRequestIsSetToThrowOnFailure() - line 2879: '*' => $this->factory->response(['error'], 403), - line 2886: ->throw() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2876: public function testRequestExceptionIsThrownIfThePendingRequestIsSetToThrowOnFailure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2896: public function testRequestExceptionIsThrownIfTheThrowIfOnThePendingRequestIsSetToTrueOnFailure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2896: public function testRequestExceptionIsThrownIfTheThrowIfOnThePendingRequestIsSetToTrueOnFailure() - line 2899: '*' => $this->factory->response(['error'], 403), - line 2906: ->throwIf(true) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2896: public function testRequestExceptionIsThrownIfTheThrowIfOnThePendingRequestIsSetToTrueOnFailure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2916: public function testRequestExceptionIsNotThrownIfTheThrowIfOnThePendingRequestIsSetToFalseOnFailure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2916: public function testRequestExceptionIsNotThrownIfTheThrowIfOnThePendingRequestIsSetToFalseOnFailure() - line 2919: '*' => $this->factory->response(['error'], 403), - line 2923: ->throwIf(false) - line 2926: $this->assertSame(403, $response->status()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2929: public function testRequestExceptionIsThrownIfTheThrowIfClosureOnThePendingRequestReturnsTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2929: public function testRequestExceptionIsThrownIfTheThrowIfClosureOnThePendingRequestReturnsTrue() - line 2932: '*' => $this->factory->response(['error'], 403), - line 2941: ->throwIf(function ($response) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2963: public function testRequestExceptionIsNotThrownIfTheThrowIfClosureOnThePendingRequestReturnsFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2963: public function testRequestExceptionIsNotThrownIfTheThrowIfClosureOnThePendingRequestReturnsFalse() - line 2966: '*' => $this->factory->response(['error'], 403), - line 2972: ->throwIf(function ($response) { - line 2982: $this->assertSame(403, $response->status()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2986: public function testRequestExceptionIsThrownWithCallbackIfThePendingRequestIsSetToThrowOnFailure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2986: public function testRequestExceptionIsThrownWithCallbackIfThePendingRequestIsSetToThrowOnFailure() - line 2989: '*' => $this->factory->response(['error'], 403), - line 2998: ->throw(function ($exception) use (&$flag) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2986: public function testRequestExceptionIsThrownWithCallbackIfThePendingRequestIsSetToThrowOnFailure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3012: public function testRequestExceptionIsThrownIfTheRequestFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3012: public function testRequestExceptionIsThrownIfTheRequestFails() - line 3015: '*' => $this->factory::response('', 400), - line 3021: $this->factory->get('http://foo.com/api')->throw(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3012: public function testRequestExceptionIsThrownIfTheRequestFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3030: public function testRequestExceptionIsThrownWithCallbackIfTheRequestFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3030: public function testRequestExceptionIsThrownWithCallbackIfTheRequestFails() - line 3033: '*' => $this->factory::response('', 400), - line 3041: $this->factory->get('http://foo.com/api')->throw(function () use (&$flag) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3030: public function testRequestExceptionIsThrownWithCallbackIfTheRequestFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3054: public function testRequestExceptionIsNotThrownIfTheRequestDoesNotFail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3054: public function testRequestExceptionIsNotThrownIfTheRequestDoesNotFail() - line 3060: $response = $this->factory->get('http://foo.com/api')->throw(); - line 3062: $this->assertSame('{"result":{"foo":"bar"}}', $response->body()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3065: public function testRequestExceptionIsNotReturnedIfThePendingRequestIsSetToThrowOnFailureButTheResponseIsSuccessfulInPool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3065: public function testRequestExceptionIsNotReturnedIfThePendingRequestIsSetToThrowOnFailureButTheResponseIsSuccessfulInPool() - line 3068: '*' => $this->factory->response(['success'], 200), - line 3071: [$response] = $this->factory->pool(fn ($pool) => [ - line 3076: $this->assertSame(200, $response->status()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3079: public function testRequestExceptionIsReturnedIfThePendingRequestIsSetToThrowOnFailureInPool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3079: public function testRequestExceptionIsReturnedIfThePendingRequestIsSetToThrowOnFailureInPool() - line 3082: '*' => $this->factory->response(['error'], 403), - line 3085: [$exception] = $this->factory->pool(fn ($pool) => [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3079: public function testRequestExceptionIsReturnedIfThePendingRequestIsSetToThrowOnFailureInPool() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3093: public function testRequestExceptionIsReturnedIfTheThrowIfOnThePendingRequestIsSetToTrueOnFailureInPool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3093: public function testRequestExceptionIsReturnedIfTheThrowIfOnThePendingRequestIsSetToTrueOnFailureInPool() - line 3096: '*' => $this->factory->response(['error'], 403), - line 3099: [$exception] = $this->factory->pool(fn ($pool) => [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3093: public function testRequestExceptionIsReturnedIfTheThrowIfOnThePendingRequestIsSetToTrueOnFailureInPool() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3107: public function testRequestExceptionIsNotReturnedIfTheThrowIfOnThePendingRequestIsSetToFalseOnFailureInPool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3107: public function testRequestExceptionIsNotReturnedIfTheThrowIfOnThePendingRequestIsSetToFalseOnFailureInPool() - line 3110: '*' => $this->factory->response(['error'], 403), - line 3113: [$response] = $this->factory->pool(fn ($pool) => [ - line 3118: $this->assertSame(403, $response->status()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3121: public function testRequestExceptionIsReturnedIfTheThrowIfClosureOnThePendingRequestReturnsTrueInPool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3121: public function testRequestExceptionIsReturnedIfTheThrowIfClosureOnThePendingRequestReturnsTrueInPool() - line 3124: '*' => $this->factory->response(['error'], 403), - line 3129: [$exception] = $this->factory->pool(fn ($pool) => [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3150: public function testRequestExceptionIsNotReturnedIfTheThrowIfClosureOnThePendingRequestReturnsFalseInPool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3150: public function testRequestExceptionIsNotReturnedIfTheThrowIfClosureOnThePendingRequestReturnsFalseInPool() - line 3153: '*' => $this->factory->response(['error'], 403), - line 3158: [$response] = $this->factory->pool(fn ($pool) => [ - line 3170: $this->assertSame(403, $response->status()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3173: public function testRequestExceptionIsReturnedWithCallbackIfThePendingRequestIsSetToThrowOnFailureInPool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3173: public function testRequestExceptionIsReturnedWithCallbackIfThePendingRequestIsSetToThrowOnFailureInPool() - line 3176: '*' => $this->factory->response(['error'], 403), - line 3181: [$exception] = $this->factory->pool(fn ($pool) => [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3173: public function testRequestExceptionIsReturnedWithCallbackIfThePendingRequestIsSetToThrowOnFailureInPool() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3193: public function testRequestExceptionIsReturnedAfterLastRetryInPool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3193: public function testRequestExceptionIsReturnedAfterLastRetryInPool() - line 3196: '*' => $this->factory->response(['error'], 403), - line 3199: [$exception] = $this->factory->pool(fn ($pool) => [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3193: public function testRequestExceptionIsReturnedAfterLastRetryInPool() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3209: public function testRequestExceptionIsThrowIfConditionIsSatisfied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3209: public function testRequestExceptionIsThrowIfConditionIsSatisfied() - line 3212: '*' => $this->factory::response('', 400), - line 3218: $this->factory->get('http://foo.com/api')->throwIf(true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3209: public function testRequestExceptionIsThrowIfConditionIsSatisfied() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3227: public function testRequestExceptionIsNotThrownIfConditionIsNotSatisfied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3227: public function testRequestExceptionIsNotThrownIfConditionIsNotSatisfied() - line 3230: '*' => $this->factory::response(['result' => ['foo' => 'bar']], 400), - line 3233: $response = $this->factory->get('http://foo.com/api')->throwIf(false); - line 3235: $this->assertSame('{"result":{"foo":"bar"}}', $response->body()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3238: public function testRequestExceptionIsThrownWhenUnlessConditionIsNotSatisfied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3238: public function testRequestExceptionIsThrownWhenUnlessConditionIsNotSatisfied() - line 3241: '*' => $this->factory::response('', 400), - line 3247: $this->factory->get('http://foo.com/api')->throwUnless(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3238: public function testRequestExceptionIsThrownWhenUnlessConditionIsNotSatisfied() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3256: public function testRequestExceptionIsNotThrownWhenUnlessConditionIsSatisfied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3256: public function testRequestExceptionIsNotThrownWhenUnlessConditionIsSatisfied() - line 3259: '*' => $this->factory::response(['result' => ['foo' => 'bar']], 400), - line 3262: $response = $this->factory->get('http://foo.com/api')->throwUnless(true); - line 3264: $this->assertSame('{"result":{"foo":"bar"}}', $response->body()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3267: public function testRequestExceptionIsThrowIfConditionClosureIsSatisfied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3267: public function testRequestExceptionIsThrowIfConditionClosureIsSatisfied() - line 3270: '*' => $this->factory::response('', 400), - line 3278: $this->factory->get('http://foo.com/api')->throwIf(function ($response) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3297: public function testRequestExceptionIsNotThrownIfConditionClosureIsNotSatisfied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3297: public function testRequestExceptionIsNotThrownIfConditionClosureIsNotSatisfied() - line 3300: '*' => $this->factory::response(['result' => ['foo' => 'bar']], 400), - line 3305: $response = $this->factory->get('http://foo.com/api')->throwIf(function ($response) { - line 3313: $this->assertSame('{"result":{"foo":"bar"}}', $response->body()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3317: public function testRequestExceptionIsThrownIfStatusCodeIsSatisfied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3317: public function testRequestExceptionIsThrownIfStatusCodeIsSatisfied() - line 3320: '*' => $this->factory::response('', 400), - line 3326: $this->factory->get('http://foo.com/api')->throwIfStatus(400); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3317: public function testRequestExceptionIsThrownIfStatusCodeIsSatisfied() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3335: public function testRequestExceptionIsThrownIfStatusCodeIsSatisfiedWithClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3335: public function testRequestExceptionIsThrownIfStatusCodeIsSatisfiedWithClosure() - line 3338: '*' => $this->factory::response('', 400), - line 3344: $this->factory->get('http://foo.com/api')->throwIfStatus(fn ($status) => $status === 400); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3335: public function testRequestExceptionIsThrownIfStatusCodeIsSatisfiedWithClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3353: public function testRequestExceptionIsNotThrownIfStatusCodeIsNotSatisfied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3353: public function testRequestExceptionIsNotThrownIfStatusCodeIsNotSatisfied() - line 3356: '*' => $this->factory::response('', 400), - line 3362: $this->factory->get('http://foo.com/api')->throwIfStatus(500); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3353: public function testRequestExceptionIsNotThrownIfStatusCodeIsNotSatisfied() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3370: public function testRequestExceptionIsThrownUnlessStatusCodeIsSatisfied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 3370: public function testRequestExceptionIsThrownUnlessStatusCodeIsSatisfied() - line 3373: 'http://foo.com/api/400' => $this->factory::response('', 400), - line 3381: $this->factory->get('http://foo.com/api/400')->throwUnlessStatus(500); - line 3400: $this->factory->get('http://foo.com/api/400')->throwUnlessStatus(fn ($status) => $status === 500); - line 3411: $this->factory->get('http://foo.com/api/408')->throwUnlessStatus(500); - line 3422: $this->factory->get('http://foo.com/api/500')->throwUnlessStatus(500); - line 3432: $this->factory->get('http://foo.com/api/500')->throwUnlessStatus(fn ($status) => $status === 500); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3370: public function testRequestExceptionIsThrownUnlessStatusCodeIsSatisfied() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3440: public function testRequestExceptionIsThrownIfIsClientError() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 3440: public function testRequestExceptionIsThrownIfIsClientError() - line 3443: 'http://foo.com/api/400' => $this->factory::response('', 400), - line 3452: $this->factory->get('http://foo.com/api/400')->throwIfClientError(); - line 3463: $this->factory->get('http://foo.com/api/408')->throwIfClientError(); - line 3474: $this->factory->get('http://foo.com/api/500')->throwIfClientError(); - line 3484: $this->factory->get('http://foo.com/api/504')->throwIfClientError(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3440: public function testRequestExceptionIsThrownIfIsClientError() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3492: public function testRequestExceptionIsThrownIfIsServerError() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 3492: public function testRequestExceptionIsThrownIfIsServerError() - line 3495: 'http://foo.com/api/400' => $this->factory::response('', 400), - line 3504: $this->factory->get('http://foo.com/api/400')->throwIfServerError(); - line 3514: $this->factory->get('http://foo.com/api/408')->throwIfServerError(); - line 3524: $this->factory->get('http://foo.com/api/500')->throwIfServerError(); - line 3535: $this->factory->get('http://foo.com/api/504')->throwIfServerError(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3492: public function testRequestExceptionIsThrownIfIsServerError() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3544: public function testItCanEnforceFaking() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 3544: public function testItCanEnforceFaking() - line 3546: $this->factory->preventStrayRequests(); - line 3551: $responses[] = $this->factory->get('https://vapor.laravel.com')->body(); - line 3552: $responses[] = $this->factory->get('https://forge.laravel.com')->body(); - line 3555: $this->expectException(StrayRequestException::class); - line 3556: $this->expectExceptionMessage('Attempted request to [https://laravel.com] without a matching fake.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3544: public function testItCanEnforceFaking() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3561: public function testItCanEnforceFakingInThePool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 3561: public function testItCanEnforceFakingInThePool() - line 3563: $this->factory->preventStrayRequests(); - line 3567: $responses = $this->factory->pool(function (Pool $pool) { - line 3574: $this->assertSame(200, $responses[0]->status()); - line 3575: $this->assertSame(200, $responses[1]->status()); - line 3577: $this->expectException(StrayRequestException::class); - line 3578: $this->expectExceptionMessage('Attempted request to [https://laravel.com] without a matching fake.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3587: public function testPreventingStrayRequests() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3587: public function testPreventingStrayRequests() - line 3589: $this->assertFalse($this->factory->preventingStrayRequests()); - line 3591: $this->factory->preventStrayRequests(); - line 3593: $this->assertTrue($this->factory->preventingStrayRequests()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3596: public function testAllowingStrayRequestUrls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 3596: public function testAllowingStrayRequestUrls() - line 3598: $this->assertFalse($this->factory->preventingStrayRequests()); - line 3599: $this->assertTrue($this->factory->isAllowedRequestUrl('127.0.0.1')); - line 3601: $this->factory->preventStrayRequests(); - line 3602: $this->assertFalse($this->factory->isAllowedRequestUrl('127.0.0.1')); - line 3603: $this->factory->allowStrayRequests([ - line 3607: $this->assertTrue($this->factory->preventingStrayRequests()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3611: public function testItCanAddAuthorizationHeaderIntoRequestUsingBeforeSendingCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3611: public function testItCanAddAuthorizationHeaderIntoRequestUsingBeforeSendingCallback() - line 3615: $this->factory->beforeSending(function (Request $request) { - line 3628: $request->url() === 'http://foo.com/json' && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3611: public function testItCanAddAuthorizationHeaderIntoRequestUsingBeforeSendingCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 3713: public function testItCanAddGlobalMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 3713: public function testItCanAddGlobalMiddleware() - line 3715: Carbon::setTestNow(now()->startOfDay()); - line 3721: Carbon::setTestNow(now()->addSeconds(6 * count($requests))); - line 3726: $this->factory->globalMiddleware(Middleware::mapRequest(function ($request) { - line 3745: $responses[] = $this->factory->post('http://forge.laravel.com'); - line 3746: $responses[] = $this->factory->withHeader('shared', 'local')->post('http://vapor.laravel.com'); - line 3751: $this->assertSame(['Laravel Framework/1.0'], $requests[0]->header('User-Agent')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3764: public function testItCanAddGlobalRequestMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 3764: public function testItCanAddGlobalRequestMiddleware() - line 3770: return Factory::response('expected content'); - line 3773: $this->factory->globalRequestMiddleware(function ($request) { - line 3776: $this->factory->post('http://forge.laravel.com'); - line 3777: $this->factory->post('http://laravel.com'); - line 3779: $this->assertSame(['Laravel Framework/1.0'], $requests[0]->header('User-Agent')); - line 3780: $this->assertSame(['Laravel Framework/1.0'], $requests[1]->header('User-Agent')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3783: public function testItCanAddGlobalResponseMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 3783: public function testItCanAddGlobalResponseMiddleware() - line 3787: return Factory::response('expected content'); - line 3790: $this->factory->globalResponseMiddleware(function ($response) { - line 3793: $responses[] = $this->factory->post('http://forge.laravel.com'); - line 3794: $responses[] = $this->factory->post('http://laravel.com'); - line 3796: $this->assertSame('Bar', $responses[0]->header('X-Foo')); - line 3797: $this->assertSame('Bar', $responses[1]->header('X-Foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3800: public function testItCanGetTheGlobalMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3800: public function testItCanGetTheGlobalMiddleware() - line 3802: $this->factory->globalMiddleware($middleware = fn () => null); - line 3804: $this->assertEquals([$middleware], $this->factory->getGlobalMiddleware()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3807: public function testItCanAddRequestMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 3807: public function testItCanAddRequestMiddleware() - line 3813: return Factory::response('expected content'); - line 3816: $this->factory->withRequestMiddleware(function ($request) { - line 3819: $this->factory->post('http://laravel.com'); - line 3821: $this->assertSame(['Laravel Framework/1.0'], $requests[0]->header('User-Agent')); - line 3822: $this->assertSame(['GuzzleHttp/7'], $requests[1]->header('User-Agent')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3825: public function testItCanAddResponseMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 3825: public function testItCanAddResponseMiddleware() - line 3829: return Factory::response('expected content'); - line 3832: $responses[] = $this->factory->withResponseMiddleware(function ($response) { - line 3835: $responses[] = $this->factory->post('http://laravel.com'); - line 3837: $this->assertSame('Bar', $responses[0]->header('X-Foo')); - line 3838: $this->assertSame('', $responses[1]->header('X-Foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3867: public function testItCanHaveGlobalDefaultValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3867: public function testItCanHaveGlobalDefaultValues() - line 3876: $headers = $request->headers(); - line 3886: $factory->globalOptions([ - line 3899: $factory->globalOptions(fn () => [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3914: public function testItCanCreatePendingRequest() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 3914: public function testItCanCreatePendingRequest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4243: public function testAfterResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4243: public function testAfterResponse() - line 4246: 'http://200.com*' => $this->factory::response('OK'), - line 4250: ->afterResponse(fn (Response $response): TestResponse => new TestResponse($response->toPsrResponse())) - line 4259: $this->assertSame('ok', $response->body()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4262: public function testAfterResponseWithThrows() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 4262: public function testAfterResponseWithThrows() - line 4265: 'http://500.com*' => $this->factory::response('oh no', 500), - line 4269: $this->factory->throw() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4262: public function testAfterResponseWithThrows() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4277: public function testAfterResponseWithAsync() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4277: public function testAfterResponseWithAsync() - line 4280: 'http://200.com*' => $this->factory::response('OK', 200), - line 4284: $o = $this->factory->pool(function (Pool $pool): void { - line 4292: $this->assertEquals('different', $o['401-response']->body()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Http/HttpJsonResponseTest.php - Test @ line 17: public function testSetAndRetrieveData($data) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 17: public function testSetAndRetrieveData($data) - line 21: $this->assertInstanceOf(stdClass::class, $response->getData()); - line 22: $this->assertSame('bar', $response->getData()->foo); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 36: public function testGetOriginalContent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 36: public function testGetOriginalContent() - line 39: $this->assertInstanceOf(JsonResponseTestArrayableObject::class, $response->getOriginalContent()); - line 42: $response->setData(new JsonResponseTestArrayableObject); - line 43: $this->assertInstanceOf(JsonResponseTestArrayableObject::class, $response->getOriginalContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 36: public function testGetOriginalContent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 46: public function testSetAndRetrieveOptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 46: public function testSetAndRetrieveOptions() - line 49: $response->setEncodingOptions(JSON_PRETTY_PRINT); - line 50: $this->assertSame(JSON_PRETTY_PRINT, $response->getEncodingOptions()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 59: public function testSetAndRetrieveStatusCode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 59: public function testSetAndRetrieveStatusCode() - line 62: $this->assertSame(404, $response->getStatusCode()); - line 65: $response->setStatusCode(404); - line 66: $this->assertSame(404, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 70: public function testInvalidArgumentExceptionOnJsonError($data) Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 70: public function testInvalidArgumentExceptionOnJsonError($data) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 78: public function testGracefullyHandledSomeJsonErrorsWithPartialOutputOnError($data) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 78: public function testGracefullyHandledSomeJsonErrorsWithPartialOutputOnError($data) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 78: public function testGracefullyHandledSomeJsonErrorsWithPartialOutputOnError($data) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 104: public function testFromJsonString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 104: public function testFromJsonString() - line 107: $response = JsonResponse::fromJsonString($json_string); - line 109: $this->assertSame('bar', $response->getData()->foo); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Http/HttpMimeTypeTest.php - Test @ line 21: public function testMimeTypeFromExtensionExistsTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 21: public function testMimeTypeFromExtensionExistsTrue() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 26: public function testMimeTypeFromExtensionExistsFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 26: public function testMimeTypeFromExtensionExistsFalse() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 31: public function testMimeTypeSymfonyInstance() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 31: public function testMimeTypeSymfonyInstance() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 36: public function testSearchExtensionFromMimeType() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 36: public function testSearchExtensionFromMimeType() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Http/HttpRedirectResponseTest.php - Test @ line 23: public function testHeaderOnRedirect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 23: public function testHeaderOnRedirect() - line 27: $response->header('foo', 'bar'); - line 29: $response->header('foo', 'baz', false); - line 31: $response->header('foo', 'baz'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 35: public function testWithOnRedirect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 35: public function testWithOnRedirect() - line 38: $response->setRequest(Request::create('/', 'GET', ['name' => 'Taylor', 'age' => 26])); - line 39: $response->setSession($session = m::mock(Store::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 39: $response->setSession($session = m::mock(Store::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 35: public function testWithOnRedirect() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 44: public function testWithCookieOnRedirect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 44: public function testWithCookieOnRedirect() - line 47: $this->assertCount(0, $response->headers->getCookies()); - line 48: $this->assertEquals($response, $response->withCookie(new Cookie('foo', 'bar'))); - line 49: $cookies = $response->headers->getCookies(); - line 51: $this->assertSame('foo', $cookies[0]->getName()); - line 52: $this->assertSame('bar', $cookies[0]->getValue()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 55: public function testFragmentIdentifierOnRedirect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 55: public function testFragmentIdentifierOnRedirect() - line 59: $response->withFragment('foo'); - line 60: $this->assertSame('foo', parse_url($response->getTargetUrl(), PHP_URL_FRAGMENT)); - line 62: $response->withFragment('#bar'); - line 63: $this->assertSame('bar', parse_url($response->getTargetUrl(), PHP_URL_FRAGMENT)); - line 65: $response->withoutFragment(); - line 66: $this->assertNull(parse_url($response->getTargetUrl(), PHP_URL_FRAGMENT)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 69: public function testInputOnRedirect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 69: public function testInputOnRedirect() - line 72: $response->setRequest(Request::create('/', 'GET', ['name' => 'Taylor', 'age' => 26])); - line 73: $response->setSession($session = m::mock(Store::class)); - line 75: $response->withInput(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 73: $response->setSession($session = m::mock(Store::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 69: public function testInputOnRedirect() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 78: public function testWithCookies() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 78: public function testWithCookies() - line 81: $response->setRequest(Request::create('/', 'GET', ['name' => 'Taylor', 'age' => 26])); - line 82: $response->withCookies([ - line 86: $this->assertEquals('name', $response->headers->getCookies()[0]->getName()); - line 87: $this->assertEquals('milwad', $response->headers->getCookies()[0]->getValue()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 90: public function testOnlyInputOnRedirect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 90: public function testOnlyInputOnRedirect() - line 93: $response->setRequest(Request::create('/', 'GET', ['name' => 'Taylor', 'age' => 26])); - line 94: $response->setSession($session = m::mock(Store::class)); - line 96: $response->onlyInput('name'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 94: $response->setSession($session = m::mock(Store::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 90: public function testOnlyInputOnRedirect() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 99: public function testExceptInputOnRedirect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 99: public function testExceptInputOnRedirect() - line 102: $response->setRequest(Request::create('/', 'GET', ['name' => 'Taylor', 'age' => 26])); - line 103: $response->setSession($session = m::mock(Store::class)); - line 105: $response->exceptInput('age'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 103: $response->setSession($session = m::mock(Store::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 99: public function testExceptInputOnRedirect() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 108: public function testFlashingErrorsOnRedirect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 108: public function testFlashingErrorsOnRedirect() - line 111: $response->setRequest(Request::create('/', 'GET', ['name' => 'Taylor', 'age' => 26])); - line 112: $response->setSession($session = m::mock(Store::class)); - line 117: $response->withErrors($provider); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 112: $response->setSession($session = m::mock(Store::class)); - line 115: $provider = m::mock(MessageProvider::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 108: public function testFlashingErrorsOnRedirect() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 120: public function testCanEnforceSameOriginWhenSameOrigin() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 120: public function testCanEnforceSameOriginWhenSameOrigin() - line 123: $response->setRequest(Request::create('https://example.com/baz/buzz')); - line 124: $response->enforceSameOrigin('fallback'); - line 126: $this->assertSame('https://example.com/foo/bar', $response->getTargetUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 129: public function testCanEnforceSameOriginWhenSameOriginAndCustomPort() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 129: public function testCanEnforceSameOriginWhenSameOriginAndCustomPort() - line 132: $response->setRequest(Request::create('https://example.com:1/baz/buzz')); - line 133: $response->enforceSameOrigin('fallback'); - line 135: $this->assertSame('https://example.com:1/foo/bar', $response->getTargetUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 138: public function testCanEnforceSameOriginWhenNotSameScheme() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 138: public function testCanEnforceSameOriginWhenNotSameScheme() - line 141: $response->setRequest(Request::create('http://example.com/baz/buzz')); - line 142: $response->enforceSameOrigin('fallback'); - line 144: $this->assertSame('fallback', $response->getTargetUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 147: public function testCanEnforceSameOriginWhenNotSameHostname() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 147: public function testCanEnforceSameOriginWhenNotSameHostname() - line 150: $response->setRequest(Request::create('https://example2.com/baz/buzz')); - line 151: $response->enforceSameOrigin('fallback'); - line 153: $this->assertSame('fallback', $response->getTargetUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 156: public function testCanEnforceSameOriginWhenNotSamePort() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 156: public function testCanEnforceSameOriginWhenNotSamePort() - line 159: $response->setRequest(Request::create('https://example.com:2/baz/buzz')); - line 160: $response->enforceSameOrigin('fallback'); - line 162: $this->assertSame('fallback', $response->getTargetUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 165: public function testCanEnforceSameOriginWhenNotSameSchemeAndSchemeValidationIsDisabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 165: public function testCanEnforceSameOriginWhenNotSameSchemeAndSchemeValidationIsDisabled() - line 168: $response->setRequest(Request::create('http://example.com/baz/buzz')); - line 169: $response->enforceSameOrigin('fallback', validateScheme: false); - line 171: $this->assertSame('https://example.com/foo/bar', $response->getTargetUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 174: public function testCanEnforceSameOriginWhenNotSamePortAndPortValidationIsDisabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 174: public function testCanEnforceSameOriginWhenNotSamePortAndPortValidationIsDisabled() - line 177: $response->setRequest(Request::create('https://example.com:2/baz/buzz')); - line 178: $response->enforceSameOrigin('fallback', validatePort: false); - line 180: $this->assertSame('https://example.com:1/foo/bar', $response->getTargetUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 183: public function testSettersGettersOnRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 183: public function testSettersGettersOnRequest() - line 186: $this->assertNull($response->getRequest()); - line 187: $this->assertNull($response->getSession()); - line 191: $response->setRequest($request); - line 192: $response->setSession($session); - line 193: $this->assertSame($request, $response->getRequest()); - line 194: $this->assertSame($session, $response->getSession()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 190: $session = m::mock(Store::class); - Test @ line 197: public function testRedirectWithErrorsArrayConvertsToMessageBag() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 197: public function testRedirectWithErrorsArrayConvertsToMessageBag() - line 200: $response->setRequest(Request::create('/', 'GET', ['name' => 'Taylor', 'age' => 26])); - line 201: $response->setSession($session = m::mock(Store::class)); - line 205: $response->withErrors($provider); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 201: $response->setSession($session = m::mock(Store::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 197: public function testRedirectWithErrorsArrayConvertsToMessageBag() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 208: public function testMagicCall() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 208: public function testMagicCall() - line 211: $response->setRequest(Request::create('/', 'GET', ['name' => 'Taylor', 'age' => 26])); - line 212: $response->setSession($session = m::mock(Store::class)); - line 214: $response->withFoo('bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 212: $response->setSession($session = m::mock(Store::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 208: public function testMagicCall() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 217: public function testMagicCallException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 217: public function testMagicCallException() - line 219: $this->expectException(BadMethodCallException::class); - line 220: $this->expectExceptionMessage('Call to undefined method Illuminate\Http\RedirectResponse::doesNotExist()'); - line 223: $response->doesNotExist('bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 217: public function testMagicCallException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Http/HttpRequestTest.php - Test @ line 33: public function testInstanceMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 33: public function testInstanceMethod() - line 35: $request = Request::create(''); - line 36: $this->assertSame($request, $request->instance()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 39: public function testMethodMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 39: public function testMethodMethod() - line 41: $request = Request::create('', 'GET'); - line 42: $this->assertSame('GET', $request->method()); - line 45: $this->assertSame('HEAD', $request->method()); - line 48: $this->assertSame('POST', $request->method()); - line 51: $this->assertSame('PUT', $request->method()); - line 54: $this->assertSame('PATCH', $request->method()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 63: public function testRootMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 63: public function testRootMethod() - line 65: $request = Request::create('http://example.com/foo/bar/script.php?test'); - line 66: $this->assertSame('http://example.com', $request->root()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 69: public function testPathMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 69: public function testPathMethod() - line 71: $request = Request::create(''); - line 72: $this->assertSame('/', $request->path()); - line 75: $this->assertSame('foo/bar', $request->path()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 78: public function testDecodedPathMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 78: public function testDecodedPathMethod() - line 80: $request = Request::create('/foo%20bar'); - line 81: $this->assertSame('foo bar', $request->decodedPath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 85: public function testSegmentMethod($path, $segment, $expected) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 85: public function testSegmentMethod($path, $segment, $expected) - line 87: $request = Request::create($path); - line 88: $this->assertEquals($expected, $request->segment($segment, 'default')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 102: public function testSegmentsMethod($path, $expected) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 102: public function testSegmentsMethod($path, $expected) - line 104: $request = Request::create($path); - line 105: $this->assertEquals($expected, $request->segments()); - line 108: $this->assertEquals(['foo', 'bar'], $request->segments()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 121: public function testUrlMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 121: public function testUrlMethod() - line 123: $request = Request::create('http://foo.com/foo/bar?name=taylor'); - line 124: $this->assertSame('http://foo.com/foo/bar', $request->url()); - line 127: $this->assertSame('http://foo.com/foo/bar', $request->url()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 130: public function testFullUrlMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 130: public function testFullUrlMethod() - line 132: $request = Request::create('http://foo.com/foo/bar?name=taylor'); - line 133: $this->assertSame('http://foo.com/foo/bar?name=taylor', $request->fullUrl()); - line 136: $this->assertSame('https://foo.com', $request->fullUrl()); - line 139: $this->assertSame('https://foo.com/?coupon=foo', $request->fullUrlWithQuery(['coupon' => 'foo'])); - line 142: $this->assertSame('https://foo.com/?a=b', $request->fullUrl()); - line 145: $this->assertSame('https://foo.com/?a=b&coupon=foo', $request->fullUrlWithQuery(['coupon' => 'foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 160: public function testIsMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 160: public function testIsMethod() - line 162: $request = Request::create('/foo/bar'); - line 164: $this->assertTrue($request->is('foo*')); - line 165: $this->assertFalse($request->is('bar*')); - line 166: $this->assertTrue($request->is('*bar*')); - line 167: $this->assertTrue($request->is('bar*', 'foo*', 'baz')); - line 171: $this->assertTrue($request->is('/')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 174: public function testFullUrlIsMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 174: public function testFullUrlIsMethod() - line 176: $request = Request::create('http://example.com/foo/bar'); - line 178: $this->assertTrue($request->fullUrlIs('http://example.com/foo/bar')); - line 179: $this->assertFalse($request->fullUrlIs('example.com*')); - line 180: $this->assertTrue($request->fullUrlIs('http://*')); - line 181: $this->assertTrue($request->fullUrlIs('*foo*')); - line 182: $this->assertTrue($request->fullUrlIs('*bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 186: public function testRouteIsMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 186: public function testRouteIsMethod() - line 188: $request = Request::create('/foo/bar'); - line 190: $this->assertFalse($request->routeIs('foo.bar')); - line 192: $request->setRouteResolver(function () use ($request) { - line 199: $this->assertTrue($request->routeIs('foo.bar')); - line 200: $this->assertTrue($request->routeIs('foo*', '*bar')); - line 201: $this->assertFalse($request->routeIs('foo.foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 204: public function testRouteMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 204: public function testRouteMethod() - line 206: $request = Request::create('/foo/bar'); - line 208: $request->setRouteResolver(function () use ($request) { - line 215: $this->assertSame('bar', $request->route('required')); - line 216: $this->assertSame('bar', $request->route('required', 'default')); - line 217: $this->assertNull($request->route('optional')); - line 218: $this->assertSame('default', $request->route('optional', 'default')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 221: public function testAjaxMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 221: public function testAjaxMethod() - line 223: $request = Request::create('/'); - line 224: $this->assertFalse($request->ajax()); - line 226: $this->assertTrue($request->ajax()); - line 229: $this->assertTrue($request->ajax()); - line 231: $this->assertFalse($request->ajax()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 234: public function testPrefetchMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 234: public function testPrefetchMethod() - line 236: $request = Request::create('/'); - line 237: $this->assertFalse($request->prefetch()); - line 240: $this->assertFalse($request->prefetch()); - line 242: $this->assertTrue($request->prefetch()); - line 244: $this->assertTrue($request->prefetch()); - line 246: $request->server->remove('HTTP_X_MOZ'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 265: public function testPjaxMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 265: public function testPjaxMethod() - line 267: $request = Request::create('/', 'GET', [], [], [], ['HTTP_X_PJAX' => 'true'], '{}'); - line 268: $this->assertTrue($request->pjax()); - line 270: $this->assertTrue($request->pjax()); - line 272: $this->assertFalse($request->pjax()); - line 274: $this->assertFalse($request->pjax()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 277: public function testSecureMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 277: public function testSecureMethod() - line 279: $request = Request::create('http://example.com'); - line 280: $this->assertFalse($request->secure()); - line 282: $this->assertTrue($request->secure()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 285: public function testUserAgentMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 285: public function testUserAgentMethod() - line 287: $request = Request::create('/', 'GET', [], [], [], [ - line 291: $this->assertSame('Laravel', $request->userAgent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 294: public function testHostMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 294: public function testHostMethod() - line 296: $request = Request::create('http://example.com'); - line 297: $this->assertSame('example.com', $request->host()); - line 300: $this->assertSame('example.com', $request->host()); - line 303: $this->assertSame('example.com', $request->host()); - line 306: $this->assertSame('example.com', $request->host()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 309: public function testHttpHostMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 309: public function testHttpHostMethod() - line 311: $request = Request::create('http://example.com'); - line 312: $this->assertSame('example.com', $request->httpHost()); - line 315: $this->assertSame('example.com', $request->httpHost()); - line 318: $this->assertSame('example.com:8080', $request->httpHost()); - line 321: $this->assertSame('example.com:8080', $request->httpHost()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 324: public function testSchemeAndHttpHostMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 324: public function testSchemeAndHttpHostMethod() - line 326: $request = Request::create('http://example.com'); - line 327: $this->assertSame('http://example.com', $request->schemeAndHttpHost()); - line 330: $this->assertSame('https://example.com', $request->schemeAndHttpHost()); - line 333: $this->assertSame('http://example.com:8080', $request->schemeAndHttpHost()); - line 336: $this->assertSame('https://example.com:8080', $request->schemeAndHttpHost()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 339: public function testHasMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 339: public function testHasMethod() - line 341: $request = Request::create('/', 'GET', ['name' => 'Taylor', 'age' => '', 'city' => null]); - line 342: $this->assertTrue($request->has('name')); - line 343: $this->assertTrue($request->has('age')); - line 344: $this->assertTrue($request->has('city')); - line 345: $this->assertFalse($request->has('foo')); - line 346: $this->assertFalse($request->has('name', 'email')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 365: public function testWhenHasMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 365: public function testWhenHasMethod() - line 367: $request = Request::create('/', 'GET', ['name' => 'Taylor', 'age' => '', 'city' => null]); - line 371: $request->whenHas('name', function ($value) use (&$name) { - line 375: $request->whenHas('age', function ($value) use (&$age) { - line 379: $request->whenHas('city', function ($value) use (&$city) { - line 383: $request->whenHas('foo', function () use (&$foo) { - line 387: $request->whenHas('bar', function () use (&$bar) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 365: public function testWhenHasMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 400: public function testWhenFilledMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 400: public function testWhenFilledMethod() - line 402: $request = Request::create('/', 'GET', ['name' => 'Taylor', 'age' => '', 'city' => null]); - line 406: $request->whenFilled('name', function ($value) use (&$name) { - line 410: $request->whenFilled('age', function ($value) use (&$age) { - line 414: $request->whenFilled('city', function ($value) use (&$city) { - line 418: $request->whenFilled('foo', function () use (&$foo) { - line 422: $request->whenFilled('bar', function () use (&$bar) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 400: public function testWhenFilledMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 435: public function testMissingMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 435: public function testMissingMethod() - line 437: $request = Request::create('/', 'GET', ['name' => 'Taylor', 'age' => '', 'city' => null]); - line 438: $this->assertFalse($request->missing('name')); - line 439: $this->assertFalse($request->missing('age')); - line 440: $this->assertFalse($request->missing('city')); - line 441: $this->assertTrue($request->missing('foo')); - line 442: $this->assertTrue($request->missing('name', 'email')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 461: public function testWhenMissingMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 461: public function testWhenMissingMethod() - line 463: $request = Request::create('/', 'GET', ['bar' => null]); - line 467: $request->whenMissing('name', function ($value) use (&$name) { - line 471: $request->whenMissing('age', function ($value) use (&$age) { - line 475: $request->whenMissing('city', function ($value) use (&$city) { - line 479: $request->whenMissing('foo', function () use (&$foo) { - line 483: $request->whenMissing('bar', function () use (&$bar) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 461: public function testWhenMissingMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 496: public function testHasAnyMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 496: public function testHasAnyMethod() - line 498: $request = Request::create('/', 'GET', ['name' => 'Taylor', 'age' => '', 'city' => null]); - line 499: $this->assertTrue($request->hasAny('name')); - line 500: $this->assertTrue($request->hasAny('age')); - line 501: $this->assertTrue($request->hasAny('city')); - line 502: $this->assertFalse($request->hasAny('foo')); - line 503: $this->assertTrue($request->hasAny('name', 'email')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 518: public function testFilledMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 518: public function testFilledMethod() - line 520: $request = Request::create('/', 'GET', ['name' => 'Taylor', 'age' => '', 'city' => null]); - line 521: $this->assertTrue($request->filled('name')); - line 522: $this->assertFalse($request->filled('age')); - line 523: $this->assertFalse($request->filled('city')); - line 524: $this->assertFalse($request->filled('foo')); - line 525: $this->assertFalse($request->filled('name', 'email')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 540: public function testIsNotFilledMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 540: public function testIsNotFilledMethod() - line 542: $request = Request::create('/', 'GET', ['name' => 'Taylor', 'age' => '', 'city' => null]); - line 543: $this->assertFalse($request->isNotFilled('name')); - line 544: $this->assertTrue($request->isNotFilled('age')); - line 545: $this->assertTrue($request->isNotFilled('city')); - line 546: $this->assertTrue($request->isNotFilled('foo')); - line 547: $this->assertFalse($request->isNotFilled(['name', 'email'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 557: public function testFilledAnyMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 557: public function testFilledAnyMethod() - line 559: $request = Request::create('/', 'GET', ['name' => 'Taylor', 'age' => '', 'city' => null]); - line 561: $this->assertTrue($request->anyFilled(['name'])); - line 562: $this->assertTrue($request->anyFilled('name')); - line 564: $this->assertFalse($request->anyFilled(['age'])); - line 565: $this->assertFalse($request->anyFilled('age')); - line 567: $this->assertFalse($request->anyFilled(['foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 583: public function testInputMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 583: public function testInputMethod() - line 585: $request = Request::create('/', 'GET', ['name' => 'Taylor']); - line 586: $this->assertSame('Taylor', $request->input('name')); - line 588: $this->assertSame('Bob', $request->input('foo', 'Bob')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 594: public function testFluentMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 594: public function testFluentMethod() - line 596: $request = Request::create('/', 'GET', [ - line 603: $this->assertSame(['name' => 'Michael', 'role' => 'admin'], $request->fluent('user')->toArray()); - line 604: $this->assertSame([], $request->fluent('users')->toArray()); - line 605: $this->assertSame([], $request->fluent('not_found')->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 608: public function testStringMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 608: public function testStringMethod() - line 610: $request = Request::create('/', 'GET', [ - line 621: $this->assertTrue($request->string('int') instanceof Stringable); - line 622: $this->assertTrue($request->string('unknown_key') instanceof Stringable); - line 623: $this->assertSame('123', $request->string('int')->value()); - line 624: $this->assertSame('456', $request->string('int_str')->value()); - line 625: $this->assertSame('123.456', $request->string('float')->value()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 634: public function testBooleanMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 634: public function testBooleanMethod() - line 636: $request = Request::create('/', 'GET', ['with_trashed' => 'false', 'download' => true, 'checked' => 1, 'unchecked' => '0', 'with_on' => 'on', 'with_yes' => 'yes']); - line 637: $this->assertTrue($request->boolean('checked')); - line 638: $this->assertTrue($request->boolean('download')); - line 639: $this->assertFalse($request->boolean('unchecked')); - line 640: $this->assertFalse($request->boolean('with_trashed')); - line 641: $this->assertFalse($request->boolean('some_undefined_key')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 646: public function testIntegerMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 646: public function testIntegerMethod() - line 648: $request = Request::create('/', 'GET', [ - line 658: $this->assertSame(123, $request->integer('int')); - line 659: $this->assertSame(456, $request->integer('raw_int')); - line 660: $this->assertSame(78, $request->integer('zero_padded')); - line 661: $this->assertSame(901, $request->integer('space_padded')); - line 662: $this->assertSame(0, $request->integer('nan')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 670: public function testFloatMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 670: public function testFloatMethod() - line 672: $request = Request::create('/', 'GET', [ - line 683: $this->assertSame(1.23, $request->float('float')); - line 684: $this->assertSame(45.6, $request->float('raw_float')); - line 685: $this->assertSame(.6, $request->float('decimal_only')); - line 686: $this->assertSame(0.78, $request->float('zero_padded')); - line 687: $this->assertSame(90.1, $request->float('space_padded')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 696: public function testArrayMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 696: public function testArrayMethod() - line 698: $request = Request::create('/', 'GET', []); - line 699: $this->assertIsArray($request->array()); - line 700: $this->assertEmpty($request->array()); - line 708: $this->assertEmpty($request->array('missing')); - line 709: $this->assertEmpty($request->array(['missing'])); - line 710: $this->assertEquals([1, 2, 3], $request->array('users')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 721: public function testCollectMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 721: public function testCollectMethod() - line 723: $request = Request::create('/', 'GET', ['users' => [1, 2, 3]]); - line 725: $this->assertInstanceOf(Collection::class, $request->collect('users')); - line 726: $this->assertTrue($request->collect('developers')->isEmpty()); - line 727: $this->assertEquals([1, 2, 3], $request->collect('users')->all()); - line 728: $this->assertEquals(['users' => [1, 2, 3]], $request->collect()->all()); - line 731: $this->assertEquals(['text-payload'], $request->collect()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 750: public function testDateMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 750: public function testDateMethod() - line 752: $request = Request::create('/', 'GET', [ - line 766: $this->assertNull($request->date('as_null')); - line 767: $this->assertNull($request->date('doesnt_exists')); - line 769: $this->assertEquals($current, $request->date('as_datetime')); - line 770: $this->assertEquals($current->format('Y-m-d H:i:s P'), $request->date('as_format', 'U')->format('Y-m-d H:i:s P')); - line 771: $this->assertEquals($current, $request->date('as_timezone', null, 'America/Santiago')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 777: public function testDateMethodExceptionWhenValueInvalid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 777: public function testDateMethodExceptionWhenValueInvalid() - line 779: $this->expectException(InvalidArgumentException::class); - line 785: $request->date('date'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 777: public function testDateMethodExceptionWhenValueInvalid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 788: public function testDateMethodExceptionWhenFormatInvalid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 788: public function testDateMethodExceptionWhenFormatInvalid() - line 790: $this->expectException(InvalidArgumentException::class); - line 796: $request->date('date', 'invalid_format'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 788: public function testDateMethodExceptionWhenFormatInvalid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 799: public function testEnumMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 799: public function testEnumMethod() - line 801: $request = Request::create('/', 'GET', [ - line 819: $this->assertNull($request->enum('doesnt_exist', TestEnumBacked::class)); - line 821: $this->assertEquals(TestEnumBacked::test, $request->enum('invalid_enum_value', TestEnumBacked::class, TestEnumBacked::test)); - line 822: $this->assertEquals(TestEnumBacked::test, $request->enum('missing_key', TestEnumBacked::class, TestEnumBacked::test)); - line 824: $this->assertEquals(TestEnumBacked::test, $request->enum('valid_enum_value', TestEnumBacked::class)); - line 826: $this->assertNull($request->enum('invalid_enum_value', TestEnumBacked::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 840: public function testEnumsMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 840: public function testEnumsMethod() - line 842: $request = Request::create('/', 'GET', [ - line 860: $this->assertEmpty($request->enums('doesnt_exist', TestEnumBacked::class)); - line 862: $this->assertEquals([TestEnumBacked::test, TestEnumBacked::test], $request->enums('valid_enum_values', TestEnumBacked::class)); - line 864: $this->assertEmpty($request->enums('invalid_enum_value', TestEnumBacked::class)); - line 865: $this->assertEmpty($request->enums('empty_value_request', TestEnumBacked::class)); - line 866: $this->assertEmpty($request->enums('valid_enum_value', TestEnum::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 878: public function testArrayAccess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 878: public function testArrayAccess() - line 880: $request = Request::create('/', 'GET', ['name' => null, 'foo' => ['bar' => null, 'baz' => '']]); - line 882: $request->setRouteResolver(function () use ($request) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 919: public function testAllMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 919: public function testAllMethod() - line 921: $request = Request::create('/', 'GET', ['name' => 'Taylor', 'age' => null]); - line 922: $this->assertEquals(['name' => 'Taylor', 'age' => null, 'email' => null], $request->all('name', 'age', 'email')); - line 923: $this->assertEquals(['name' => 'Taylor'], $request->all('name')); - line 924: $this->assertEquals(['name' => 'Taylor', 'age' => null], $request->all()); - line 927: $this->assertEquals(['developer' => ['name' => 'Taylor', 'skills' => null]], $request->all('developer.name', 'developer.skills')); - line 928: $this->assertEquals(['developer' => ['name' => 'Taylor', 'skills' => null]], $request->all(['developer.name', 'developer.skills'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 934: public function testKeysMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 934: public function testKeysMethod() - line 936: $request = Request::create('/', 'GET', ['name' => 'Taylor', 'age' => null]); - line 937: $this->assertEquals(['name', 'age'], $request->keys()); - line 949: $this->assertEquals(['foo'], $request->keys()); - line 952: $this->assertEquals(['name', 'foo'], $request->keys()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 955: public function testOnlyMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 955: public function testOnlyMethod() - line 957: $request = Request::create('/', 'GET', ['name' => 'Taylor', 'age' => null]); - line 958: $this->assertEquals(['name' => 'Taylor', 'age' => null], $request->only('name', 'age', 'email')); - line 961: $this->assertEquals(['developer' => ['name' => 'Taylor']], $request->only('developer.name', 'developer.skills')); - line 962: $this->assertEquals(['developer' => ['age' => null]], $request->only('developer.age')); - line 963: $this->assertEquals([], $request->only('developer.skills')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 966: public function testExceptMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 966: public function testExceptMethod() - line 968: $request = Request::create('/', 'GET', ['name' => 'Taylor', 'age' => 25]); - line 969: $this->assertEquals(['name' => 'Taylor'], $request->except('age')); - line 970: $this->assertEquals([], $request->except('age', 'name')); - line 971: $this->assertEquals([], $request->except(['age', 'name'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 974: public function testQueryMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 974: public function testQueryMethod() - line 976: $request = Request::create('/', 'GET', ['name' => 'Taylor']); - line 977: $this->assertSame(['name' => 'Taylor'], $request->query()); - line 978: $this->assertSame('Taylor', $request->query('name')); - line 979: $this->assertSame('Taylor', $request->query('name', 'Amir')); - line 980: $this->assertSame('Bob', $request->query('foo', 'Bob')); - line 981: $all = $request->query(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 993: public function testPostMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 993: public function testPostMethod() - line 995: $request = Request::create('/', 'POST', ['name' => 'Taylor']); - line 996: $this->assertSame(['name' => 'Taylor'], $request->post()); - line 997: $this->assertSame('Taylor', $request->post('name')); - line 998: $this->assertSame('Taylor', $request->post('name', 'Amir')); - line 999: $this->assertSame('Bob', $request->post('foo', 'Bob')); - line 1000: $all = $request->post(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1004: public function testCookieMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1004: public function testCookieMethod() - line 1006: $request = Request::create('/', 'GET', [], ['name' => 'Taylor']); - line 1007: $this->assertSame(['name' => 'Taylor'], $request->cookie()); - line 1008: $this->assertSame('Taylor', $request->cookie('name')); - line 1009: $this->assertSame('Taylor', $request->cookie('name', 'Amir')); - line 1010: $this->assertSame('Bob', $request->cookie('foo', 'Bob')); - line 1011: $all = $request->cookie(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1015: public function testHasCookieMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1015: public function testHasCookieMethod() - line 1017: $request = Request::create('/', 'GET', [], ['foo' => 'bar']); - line 1018: $this->assertTrue($request->hasCookie('foo')); - line 1019: $this->assertFalse($request->hasCookie('qu')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1022: public function testFileMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1022: public function testFileMethod() - line 1033: $request = Request::create('/', 'GET', [], [], $files); - line 1034: $this->assertInstanceOf(SymfonyUploadedFile::class, $request->file('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1022: public function testFileMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1037: public function testHasFileMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1037: public function testHasFileMethod() - line 1039: $request = Request::create('/', 'GET', [], [], []); - line 1040: $this->assertFalse($request->hasFile('foo')); - line 1052: $this->assertTrue($request->hasFile('foo')); - line 1053: $this->assertFalse($request->hasFile('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1056: public function testServerMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1056: public function testServerMethod() - line 1058: $request = Request::create('/', 'GET', [], [], [], ['foo' => 'bar']); - line 1059: $this->assertSame('bar', $request->server('foo')); - line 1060: $this->assertSame('bar', $request->server('foo.doesnt.exist', 'bar')); - line 1061: $all = $request->server(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1065: public function testMergeMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1065: public function testMergeMethod() - line 1067: $request = Request::create('/', 'GET', ['name' => 'Taylor']); - line 1069: $request->merge($merge); - line 1070: $this->assertSame('Taylor', $request->input('name')); - line 1071: $this->assertSame('Dayle', $request->input('buddy')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1074: public function testMergeIfMissingMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 1074: public function testMergeIfMissingMethod() - line 1076: $request = Request::create('/', 'GET', ['name' => 'Taylor']); - line 1078: $request->mergeIfMissing($merge); - line 1079: $this->assertSame('Taylor', $request->input('name')); - line 1080: $this->assertSame(0, $request->input('boolean_setting')); - line 1084: $request->mergeIfMissing($merge); - line 1085: $this->assertSame('Taylor', $request->input('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1099: public function testReplaceMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1099: public function testReplaceMethod() - line 1101: $request = Request::create('/', 'GET', ['name' => 'Taylor']); - line 1103: $request->replace($replace); - line 1104: $this->assertNull($request->input('name')); - line 1105: $this->assertSame('Dayle', $request->input('buddy')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1108: public function testOffsetUnsetMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1108: public function testOffsetUnsetMethod() - line 1110: $request = Request::create('/', 'HEAD', ['name' => 'Taylor']); - line 1111: $request->offsetUnset('name'); - line 1112: $this->assertNull($request->input('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1108: public function testOffsetUnsetMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1115: public function testHeaderMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1115: public function testHeaderMethod() - line 1117: $request = Request::create('/', 'GET', [], [], [], ['HTTP_DO_THIS' => 'foo']); - line 1118: $this->assertSame('foo', $request->header('do-this')); - line 1119: $this->assertSame('default', $request->header('do-that', 'default')); - line 1120: $all = $request->header(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1124: public function testBearerTokenMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 1124: public function testBearerTokenMethod() - line 1126: $request = Request::create('/', 'GET', [], [], [], ['HTTP_AUTHORIZATION' => 'Bearer fooBearerbar']); - line 1127: $this->assertSame('fooBearerbar', $request->bearerToken()); - line 1130: $this->assertSame('fooBearerbar', $request->bearerToken()); - line 1133: $this->assertSame('bar', $request->bearerToken()); - line 1136: $this->assertSame('foo', $request->bearerToken()); - line 1139: $this->assertSame('foo', $request->bearerToken()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1145: public function testJSONMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1145: public function testJSONMethod() - line 1148: $request = Request::create('/', 'GET', [], [], [], ['CONTENT_TYPE' => 'application/json'], json_encode($payload)); - line 1149: $this->assertSame('taylor', $request->json('name')); - line 1150: $this->assertSame('taylor', $request->json('name', 'Otwell')); - line 1151: $this->assertSame('Moharami', $request->json('family', 'Moharami')); - line 1152: $this->assertSame('taylor', $request->input('name')); - line 1153: $data = $request->json()->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1157: public function testJSONEmulatingPHPBuiltInServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1157: public function testJSONEmulatingPHPBuiltInServer() - line 1161: $request = Request::create('/', 'GET', [], [], [], ['HTTP_CONTENT_TYPE' => 'application/json', 'HTTP_CONTENT_LENGTH' => strlen($content)], $content); - line 1162: $this->assertTrue($request->isJson()); - line 1163: $data = $request->json()->all(); - line 1166: $data = $request->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1205: public function testAllInputReturnsInputAndFiles() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1205: public function testAllInputReturnsInputAndFiles() - line 1207: $file = $this->getMockBuilder(UploadedFile::class)->setConstructorArgs([__FILE__, 'photo.jpg'])->getMock(); - line 1209: $this->assertEquals(['foo' => 'bar', 'baz' => $file, 'boom' => 'breeze'], $request->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1212: public function testAllInputReturnsNestedInputAndFiles() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1212: public function testAllInputReturnsNestedInputAndFiles() - line 1214: $file = $this->getMockBuilder(UploadedFile::class)->setConstructorArgs([__FILE__, 'photo.jpg'])->getMock(); - line 1216: $this->assertEquals(['foo' => ['bar' => 'baz', 'photo' => $file], 'boom' => 'breeze'], $request->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1219: public function testAllInputReturnsInputAfterReplace() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1219: public function testAllInputReturnsInputAfterReplace() - line 1221: $request = Request::create('/?boom=breeze', 'GET', ['foo' => ['bar' => 'baz']]); - line 1222: $request->replace(['foo' => ['bar' => 'baz'], 'boom' => 'breeze']); - line 1223: $this->assertEquals(['foo' => ['bar' => 'baz'], 'boom' => 'breeze'], $request->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1226: public function testAllInputWithNumericKeysReturnsInputAfterReplace() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1226: public function testAllInputWithNumericKeysReturnsInputAfterReplace() - line 1228: $request1 = Request::create('/', 'POST', [0 => 'A', 1 => 'B', 2 => 'C']); - line 1229: $request1->replace([0 => 'A', 1 => 'B', 2 => 'C']); - line 1230: $this->assertEquals([0 => 'A', 1 => 'B', 2 => 'C'], $request1->all()); - line 1233: $request2->replace([1 => 'A', 2 => 'B', 3 => 'C']); - line 1234: $this->assertEquals([1 => 'A', 2 => 'B', 3 => 'C'], $request2->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1237: public function testInputWithEmptyFilename() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1237: public function testInputWithEmptyFilename() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1254: public function testMultipleFileUploadWithEmptyValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1254: public function testMultipleFileUploadWithEmptyValue() - line 1266: $baseRequest = SymfonyRequest::create('/?boom=breeze', 'GET', ['foo' => ['bar' => 'baz']], [], $invalidFiles); - line 1270: $this->assertEmpty($request->files->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1254: public function testMultipleFileUploadWithEmptyValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1273: public function testOldMethodCallsSession() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1273: public function testOldMethodCallsSession() - line 1275: $request = Request::create('/'); - line 1278: $request->setLaravelSession($session); - line 1279: $this->assertSame('boom', $request->old('foo', 'bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1276: $session = m::mock(Store::class); - Test @ line 1282: public function testOldMethodCallsSessionWhenDefaultIsArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1282: public function testOldMethodCallsSessionWhenDefaultIsArray() - line 1284: $request = Request::create('/'); - line 1287: $request->setLaravelSession($session); - line 1288: $this->assertSame(['bar'], $request->old('foo', ['bar'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1285: $session = m::mock(Store::class); - Test @ line 1291: public function testOldMethodCanGetDefaultValueFromModelByKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1291: public function testOldMethodCanGetDefaultValueFromModelByKey() - line 1293: $request = Request::create('/'); - line 1298: $request->setLaravelSession($session); - line 1299: $this->assertSame('foobar', $request->old('name', $model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1294: $model = m::mock(Price::class); - line 1296: $session = m::mock(Store::class); - Test @ line 1302: public function testFlushMethodCallsSession() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1302: public function testFlushMethodCallsSession() - line 1304: $request = Request::create('/'); - line 1307: $request->setLaravelSession($session); - line 1308: $request->flush(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1305: $session = m::mock(Store::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1302: public function testFlushMethodCallsSession() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1311: public function testExpectsJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 1311: public function testExpectsJson() - line 1313: $request = Request::create('/', 'GET', [], [], [], ['HTTP_ACCEPT' => 'application/json']); - line 1314: $this->assertTrue($request->expectsJson()); - line 1317: $this->assertFalse($request->expectsJson()); - line 1320: $this->assertTrue($request->expectsJson()); - line 1323: $this->assertTrue($request->expectsJson()); - line 1326: $this->assertFalse($request->expectsJson()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1338: public function testFormatReturnsAcceptableFormat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 1338: public function testFormatReturnsAcceptableFormat() - line 1340: $request = Request::create('/', 'GET', [], [], [], ['HTTP_ACCEPT' => 'application/json']); - line 1341: $this->assertSame('json', $request->format()); - line 1342: $this->assertTrue($request->wantsJson()); - line 1345: $this->assertSame('json', $request->format()); - line 1346: $this->assertTrue($request->wantsJson()); - line 1349: $this->assertSame('atom', $request->format()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1357: public function testFormatReturnsAcceptsJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 1357: public function testFormatReturnsAcceptsJson() - line 1359: $request = Request::create('/', 'GET', [], [], [], ['HTTP_ACCEPT' => 'application/json']); - line 1360: $this->assertSame('json', $request->format()); - line 1361: $this->assertTrue($request->accepts('application/json')); - line 1362: $this->assertTrue($request->accepts('application/baz+json')); - line 1363: $this->assertTrue($request->acceptsJson()); - line 1364: $this->assertFalse($request->acceptsHtml()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1376: public function testFormatReturnsAcceptsHtml() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 1376: public function testFormatReturnsAcceptsHtml() - line 1378: $request = Request::create('/', 'GET', [], [], [], ['HTTP_ACCEPT' => 'text/html']); - line 1379: $this->assertSame('html', $request->format()); - line 1380: $this->assertTrue($request->accepts('text/html')); - line 1381: $this->assertTrue($request->acceptsHtml()); - line 1382: $this->assertFalse($request->acceptsJson()); - line 1385: $this->assertTrue($request->accepts('text/html')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1389: public function testFormatReturnsAcceptsAll() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 1389: public function testFormatReturnsAcceptsAll() - line 1391: $request = Request::create('/', 'GET', [], [], [], ['HTTP_ACCEPT' => '*/*']); - line 1392: $this->assertSame('html', $request->format()); - line 1393: $this->assertTrue($request->accepts('text/html')); - line 1394: $this->assertTrue($request->accepts('foo/bar')); - line 1395: $this->assertTrue($request->accepts('application/baz+xml')); - line 1396: $this->assertTrue($request->acceptsHtml()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1408: public function testFormatReturnsAcceptsMultiple() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1408: public function testFormatReturnsAcceptsMultiple() - line 1410: $request = Request::create('/', 'GET', [], [], [], ['HTTP_ACCEPT' => 'application/json,text/*']); - line 1411: $this->assertTrue($request->accepts(['text/html', 'application/json'])); - line 1412: $this->assertTrue($request->accepts('text/html')); - line 1413: $this->assertTrue($request->accepts('text/foo')); - line 1414: $this->assertTrue($request->accepts('application/json')); - line 1415: $this->assertTrue($request->accepts('application/baz+json')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1418: public function testFormatReturnsAcceptsCharset() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1418: public function testFormatReturnsAcceptsCharset() - line 1420: $request = Request::create('/', 'GET', [], [], [], ['HTTP_ACCEPT' => 'application/json; charset=utf-8']); - line 1421: $this->assertTrue($request->accepts(['text/html', 'application/json'])); - line 1422: $this->assertFalse($request->accepts('text/html')); - line 1423: $this->assertFalse($request->accepts('text/foo')); - line 1424: $this->assertTrue($request->accepts('application/json')); - line 1425: $this->assertTrue($request->accepts('application/baz+json')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1428: public function testWantsJsonRespectsHeaderChanges() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1428: public function testWantsJsonRespectsHeaderChanges() - line 1430: $request = Request::create('/', 'GET', [], [], [], ['HTTP_ACCEPT' => '*/*']); - line 1432: $this->assertFalse($request->wantsJson()); - line 1434: $this->assertTrue($request->acceptsAnyContentType()); - line 1438: $this->assertTrue($request->wantsJson(), 'wantsJson() should return true after Accept header is changed to application/json'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1441: public function testAcceptsJsonRespectsHeaderChanges() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1441: public function testAcceptsJsonRespectsHeaderChanges() - line 1443: $request = Request::create('/', 'GET', [], [], [], ['HTTP_ACCEPT' => '*/*']); - line 1445: $this->assertTrue($request->acceptsAnyContentType()); - line 1449: $this->assertTrue($request->acceptsJson(), 'acceptsJson() should return true after Accept header is changed to application/json'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1452: public function testPrefersRespectsHeaderChanges() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1452: public function testPrefersRespectsHeaderChanges() - line 1454: $request = Request::create('/', 'GET', [], [], [], ['HTTP_ACCEPT' => '*/*']); - line 1456: $this->assertTrue($request->acceptsAnyContentType()); - line 1460: $this->assertSame('json', $request->prefers(['html', 'json']), 'prefers() should return json after Accept header is changed to application/json'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1463: public function testWantsJsonWorksWhenHeaderSetBeforeFirstCall() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1463: public function testWantsJsonWorksWhenHeaderSetBeforeFirstCall() - line 1465: $request = Request::create('/', 'GET', [], [], [], []); - line 1469: $this->assertTrue($request->wantsJson(), 'wantsJson() should return true when Accept header is set to application/json'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1472: public function testCacheClearedWhenTransitioningFromUnsetToSetHeader() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1472: public function testCacheClearedWhenTransitioningFromUnsetToSetHeader() - line 1474: $request = Request::create('/', 'GET', [], [], [], []); - line 1476: $request->getAcceptableContentTypes(); - line 1480: $this->assertTrue($request->wantsJson(), 'wantsJson() should return true after Accept header is set from null to application/json'); - line 1482: $this->assertTrue($request->acceptsJson(), 'acceptsJson() should return true after Accept header is set from null to application/json'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1485: public function testAcceptsJsonWorksWhenHeaderChangedMultipleTimes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1485: public function testAcceptsJsonWorksWhenHeaderChangedMultipleTimes() - line 1487: $request = Request::create('/', 'GET', [], [], [], ['HTTP_ACCEPT' => 'text/html']); - line 1489: $this->assertFalse($request->acceptsJson()); - line 1492: $this->assertTrue($request->acceptsJson()); - line 1495: $this->assertFalse($request->acceptsJson()); - line 1498: $this->assertTrue($request->acceptsJson()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1501: public function testBadAcceptHeader() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 1501: public function testBadAcceptHeader() - line 1503: $request = Request::create('/', 'GET', [], [], [], ['HTTP_ACCEPT' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-PT; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)']); - line 1504: $this->assertFalse($request->accepts(['text/html', 'application/json'])); - line 1505: $this->assertFalse($request->accepts('text/html')); - line 1506: $this->assertFalse($request->accepts('text/foo')); - line 1507: $this->assertFalse($request->accepts('application/json')); - line 1508: $this->assertFalse($request->accepts('application/baz+json')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1522: public function testCaseInsensitiveAcceptHeader() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1522: public function testCaseInsensitiveAcceptHeader() - line 1524: $request = Request::create('/', 'GET', [], [], [], ['HTTP_ACCEPT' => 'APPLICATION/JSON']); - line 1525: $this->assertTrue($request->accepts(['text/html', 'application/json'])); - line 1528: $this->assertTrue($request->accepts(['text/html', 'application/json'])); - line 1531: $this->assertTrue($request->accepts(['text/html', 'application/json'])); - line 1534: $this->assertTrue($request->expectsJson()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1537: public function testSessionMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1537: public function testSessionMethod() - line 1539: $this->expectException(RuntimeException::class); - line 1540: $this->expectExceptionMessage('Session store not set on request.'); - line 1543: $request->session(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1537: public function testSessionMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1546: public function testHasSessionMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1546: public function testHasSessionMethod() - line 1548: $request = Request::create('/'); - line 1550: $this->assertFalse($request->hasSession()); - line 1553: $request->setLaravelSession($session); - line 1555: $this->assertTrue($request->hasSession()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1552: $session = m::mock(Store::class); - Test @ line 1558: public function testGetSessionMethodWithLaravelSession() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1558: public function testGetSessionMethodWithLaravelSession() - line 1560: $request = Request::create('/'); - line 1563: $request->setLaravelSession($laravelSession); - line 1565: $session = $request->getSession(); - line 1569: $session->start(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1562: $laravelSession = m::mock(Store::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1558: public function testGetSessionMethodWithLaravelSession() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1572: public function testGetSessionMethodWithoutLaravelSession() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1572: public function testGetSessionMethodWithoutLaravelSession() - line 1574: $this->expectException(SessionNotFoundException::class); - line 1575: $this->expectExceptionMessage('There is currently no session available.'); - line 1579: $request->getSession(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1572: public function testGetSessionMethodWithoutLaravelSession() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1582: public function testUserResolverMakesUserAvailableAsMagicProperty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1582: public function testUserResolverMakesUserAvailableAsMagicProperty() - line 1584: $request = Request::create('/', 'GET', [], [], [], ['HTTP_ACCEPT' => 'application/json']); - line 1585: $request->setUserResolver(function () { - line 1588: $this->assertSame('user', $request->user()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1591: public function testFingerprintMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1591: public function testFingerprintMethod() - line 1593: $request = Request::create('/', 'GET', [], [], [], []); - line 1594: $request->setRouteResolver(function () use ($request) { - line 1601: $this->assertEquals(40, mb_strlen($request->fingerprint())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1604: public function testFingerprintWithoutRoute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1604: public function testFingerprintWithoutRoute() - line 1606: $this->expectException(RuntimeException::class); - line 1607: $this->expectExceptionMessage('Unable to generate fingerprint. Route unavailable.'); - line 1610: $request->fingerprint(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1604: public function testFingerprintWithoutRoute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1618: public function testJsonRequestFillsRequestBodyParams() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1618: public function testJsonRequestFillsRequestBodyParams() - line 1629: $base = SymfonyRequest::create('/', 'GET', [], [], [], $server, json_encode($body)); - line 1633: $this->assertEquals($request->request->all(), $body); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1641: public function testNonJsonRequestDoesntFillRequestBodyParams() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1641: public function testNonJsonRequestDoesntFillRequestBodyParams() - line 1645: $getRequest = Request::create('/', 'GET', $params, [], [], []); - line 1646: $this->assertEquals($getRequest->request->all(), []); - line 1647: $this->assertEquals($getRequest->query->all(), $params); - line 1650: $this->assertEquals($postRequest->request->all(), $params); - line 1651: $this->assertEquals($postRequest->query->all(), []); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1659: public function testMagicMethods() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1659: public function testMagicMethods() - line 1662: $request = Request::create('/', 'GET', ['foo' => 'bar', 'empty' => '']); - line 1681: $request->setRouteResolver(function () use ($request) { - line 1707: $request->setRouteResolver(function () use ($request) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1729: public function testHttpRequestFlashCallsSessionFlashInputWithInputData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1729: public function testHttpRequestFlashCallsSessionFlashInputWithInputData() - line 1731: $session = m::mock(Store::class); - line 1734: $request->setLaravelSession($session); - line 1735: $request->flash(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1731: $session = m::mock(Store::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1729: public function testHttpRequestFlashCallsSessionFlashInputWithInputData() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1738: public function testHttpRequestFlashOnlyCallsFlashWithProperParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1738: public function testHttpRequestFlashOnlyCallsFlashWithProperParameters() - line 1740: $session = m::mock(Store::class); - line 1743: $request->setLaravelSession($session); - line 1744: $request->flashOnly(['name']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1740: $session = m::mock(Store::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1738: public function testHttpRequestFlashOnlyCallsFlashWithProperParameters() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1747: public function testHttpRequestFlashExceptCallsFlashWithProperParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1747: public function testHttpRequestFlashExceptCallsFlashWithProperParameters() - line 1749: $session = m::mock(Store::class); - line 1752: $request->setLaravelSession($session); - line 1753: $request->flashExcept(['email']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1749: $session = m::mock(Store::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1747: public function testHttpRequestFlashExceptCallsFlashWithProperParameters() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1756: public function testGeneratingJsonRequestFromParentRequestUsesCorrectType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1756: public function testGeneratingJsonRequestFromParentRequestUsesCorrectType() - line 1762: $base = SymfonyRequest::create('/', 'POST', server: ['CONTENT_TYPE' => 'application/json'], content: '{"hello":"world"}'); - line 1766: $this->assertInstanceOf(InputBag::class, $request->getPayload()); - line 1767: $this->assertSame('world', $request->getPayload()->get('hello')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1770: public function testJsonRequestsCanMergeDataIntoJsonRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1770: public function testJsonRequestsCanMergeDataIntoJsonRequest() - line 1776: $base = SymfonyRequest::create('/', 'POST', server: ['CONTENT_TYPE' => 'application/json'], content: '{"first":"Taylor","last":"Otwell"}'); - line 1779: $request->merge([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1800: public function testItDoesNotGenerateJsonErrorsForEmptyContent() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1800: public function testItDoesNotGenerateJsonErrorsForEmptyContent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Http/HttpResponseTest.php - Test @ line 30: public function testJsonResponsesAreConvertedAndHeadersAreSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 30: public function testJsonResponsesAreConvertedAndHeadersAreSet() - line 33: $this->assertSame('{"foo":"bar"}', $response->getContent()); - line 37: $this->assertSame('foo', $response->getContent()); - line 41: $this->assertSame('{"foo":"bar"}', $response->getContent()); - line 45: $response->setContent(['foo' => 'bar']); - line 46: $this->assertSame('{"foo":"bar"}', $response->getContent()); - line 50: $this->assertSame('{"foo":"bar"}', $response->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 62: public function testRenderablesAreRendered() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 62: public function testRenderablesAreRendered() - line 64: $mock = m::mock(Renderable::class); - line 67: $this->assertSame('foo', $response->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 64: $mock = m::mock(Renderable::class); - Test @ line 70: public function testHeader() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 70: public function testHeader() - line 74: $response->header('foo', 'bar'); - line 76: $response->header('foo', 'baz', false); - line 78: $response->header('foo', 'baz'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 82: public function testWithCookie() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 82: public function testWithCookie() - line 85: $this->assertCount(0, $response->headers->getCookies()); - line 86: $this->assertEquals($response, $response->withCookie(new Cookie('foo', 'bar'))); - line 87: $cookies = $response->headers->getCookies(); - line 89: $this->assertSame('foo', $cookies[0]->getName()); - line 90: $this->assertSame('bar', $cookies[0]->getValue()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 93: public function testResponseCookiesInheritRequestSecureState() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 93: public function testResponseCookiesInheritRequestSecureState() - line 95: $cookie = Cookie::create('foo', 'bar'); - line 98: $response->headers->setCookie($cookie); - line 101: $response->prepare($request); - line 103: $this->assertFalse($cookie->isSecure()); - line 106: $response->prepare($request); - line 108: $this->assertTrue($cookie->isSecure()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 111: public function testGetOriginalContent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 111: public function testGetOriginalContent() - line 115: $response->setContent($arr); - line 116: $this->assertSame($arr, $response->getOriginalContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 127: public function testSetAndRetrieveStatusCode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 127: public function testSetAndRetrieveStatusCode() - line 130: $response->setStatusCode(404); - line 131: $this->assertSame(404, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 134: public function testSetStatusCodeAndRetrieveStatusText() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 134: public function testSetStatusCodeAndRetrieveStatusText() - line 137: $response->setStatusCode(404); - line 138: $this->assertSame('Not Found', $response->statusText()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 141: public function testOnlyInputOnRedirect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 141: public function testOnlyInputOnRedirect() - line 144: $response->setRequest(Request::create('/', 'GET', ['name' => 'Taylor', 'age' => 26])); - line 145: $response->setSession($session = m::mock(Store::class)); - line 147: $response->onlyInput('name'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 145: $response->setSession($session = m::mock(Store::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 141: public function testOnlyInputOnRedirect() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 150: public function testExceptInputOnRedirect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 150: public function testExceptInputOnRedirect() - line 153: $response->setRequest(Request::create('/', 'GET', ['name' => 'Taylor', 'age' => 26])); - line 154: $response->setSession($session = m::mock(Store::class)); - line 156: $response->exceptInput('age'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 154: $response->setSession($session = m::mock(Store::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 150: public function testExceptInputOnRedirect() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 159: public function testFlashingErrorsOnRedirect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 159: public function testFlashingErrorsOnRedirect() - line 162: $response->setRequest(Request::create('/', 'GET', ['name' => 'Taylor', 'age' => 26])); - line 163: $response->setSession($session = m::mock(Store::class)); - line 168: $response->withErrors($provider); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 163: $response->setSession($session = m::mock(Store::class)); - line 166: $provider = m::mock(MessageProvider::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 159: public function testFlashingErrorsOnRedirect() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 171: public function testSettersGettersOnRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 171: public function testSettersGettersOnRequest() - line 174: $this->assertNull($response->getRequest()); - line 175: $this->assertNull($response->getSession()); - line 179: $response->setRequest($request); - line 180: $response->setSession($session); - line 181: $this->assertSame($request, $response->getRequest()); - line 182: $this->assertSame($session, $response->getSession()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 178: $session = m::mock(Store::class); - Test @ line 185: public function testRedirectWithErrorsArrayConvertsToMessageBag() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 185: public function testRedirectWithErrorsArrayConvertsToMessageBag() - line 188: $response->setRequest(Request::create('/', 'GET', ['name' => 'Taylor', 'age' => 26])); - line 189: $response->setSession($session = m::mock(Store::class)); - line 193: $response->withErrors($provider); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 189: $response->setSession($session = m::mock(Store::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 185: public function testRedirectWithErrorsArrayConvertsToMessageBag() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 196: public function testWithHeaders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 196: public function testWithHeaders() - line 201: $response->withHeaders(['foo' => 'BAR', 'bar' => 'baz']); - line 206: $response->withHeaders($responseMessageBag); - line 211: $response->withHeaders($headerBag); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 216: public function testMagicCall() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 216: public function testMagicCall() - line 219: $response->setRequest(Request::create('/', 'GET', ['name' => 'Taylor', 'age' => 26])); - line 220: $response->setSession($session = m::mock(Store::class)); - line 222: $response->withFoo('bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 220: $response->setSession($session = m::mock(Store::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 216: public function testMagicCall() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 225: public function testMagicCallException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 225: public function testMagicCallException() - line 227: $this->expectException(BadMethodCallException::class); - line 228: $this->expectExceptionMessage('Call to undefined method Illuminate\Http\RedirectResponse::doesNotExist()'); - line 231: $response->doesNotExist('bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 225: public function testMagicCallException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Http/HttpTestingFileFactoryTest.php - Test @ line 16: public function testImagePng() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 16: public function testImagePng() - line 18: if (! $this->isGDSupported('PNG Support')) { - line 22: $image = (new FileFactory)->image('test.png', 15, 20); - line 24: $info = getimagesize($image->getRealPath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 16: public function testImagePng() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 31: public function testImageJpeg() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 31: public function testImageJpeg() - line 33: if (! $this->isGDSupported('JPEG Support')) { - line 37: $jpeg = (new FileFactory)->image('test.jpeg', 15, 20); - line 38: $jpg = (new FileFactory)->image('test.jpg'); - line 40: $info = getimagesize($jpeg->getRealPath()); - line 47: mime_content_type($jpg->getRealPath()) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 51: public function testImageGif() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 51: public function testImageGif() - line 53: if (! $this->isGDSupported('GIF Create Support')) { - line 57: $image = (new FileFactory)->image('test.gif'); - line 61: mime_content_type($image->getRealPath()) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 65: public function testImageWebp() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 65: public function testImageWebp() - line 67: if (! $this->isGDSupported('WebP Support')) { - line 71: $image = (new FileFactory)->image('test.webp'); - line 75: mime_content_type($image->getRealPath()) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 79: public function testImageWbmp() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 79: public function testImageWbmp() - line 81: if (! $this->isGDSupported('WBMP Support')) { - line 85: $image = (new FileFactory)->image('test.wbmp'); - line 89: getimagesize($image->getRealPath())['mime'] Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 93: public function testImageBmp() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 93: public function testImageBmp() - line 95: $image = (new FileFactory)->image('test.bmp'); - line 97: $imagePath = $image->getRealPath(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 93: public function testImageBmp() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 123: public function testCallingCreateWithoutGDLoadedThrowsAnException(string $fileExtension, string $driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 123: public function testCallingCreateWithoutGDLoadedThrowsAnException(string $fileExtension, string $driver) - line 125: if ($this->isGDSupported($driver)) { - line 129: $this->expectException(\LogicException::class); - line 130: (new FileFactory)->image("test.{$fileExtension}"); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 123: public function testCallingCreateWithoutGDLoadedThrowsAnException(string $fileExtension, string $driver) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Http/HttpUploadedFileTest.php - Test @ line 11: public function testUploadedFileCanRetrieveContentsFromTextFile() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 11: public function testUploadedFileCanRetrieveContentsFromTextFile() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 24: public function testUploadedFileInRequestContainsOriginalPathAndName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 24. Evidence: - line 24: public function testUploadedFileInRequestContainsOriginalPathAndName() - line 27: $this->assertSame('', $symfonyFile->getClientOriginalName()); - line 28: $this->assertSame('', $symfonyFile->getClientOriginalPath()); - line 30: $this->assertSame('', $file->getClientOriginalName()); - line 31: $this->assertSame('', $file->getClientOriginalPath()); - line 34: $this->assertSame('test.txt', $symfonyFile->getClientOriginalName()); - line 35: $this->assertSame('test.txt', $symfonyFile->getClientOriginalPath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Http/JsonResourceTest.php - Test @ line 13: public function testJsonResourceNullAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 13: public function testJsonResourceNullAttributes() - line 18: $model->setAttribute('relation_sum_column', null); - line 19: $model->setAttribute('relation_count', null); - line 20: $model->setAttribute('relation_exists', null); - line 24: $this->assertNotInstanceOf(MissingValue::class, $resource->whenAggregated('relation', 'column', 'sum')); - line 25: $this->assertNotInstanceOf(MissingValue::class, $resource->whenCounted('relation')); - line 26: $this->assertNotInstanceOf(MissingValue::class, $resource->whenExistsLoaded('relation')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 13: public function testJsonResourceNullAttributes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Http/Middleware/CacheTest.php - Test @ line 16: public function testItCanGenerateDefinitionViaStaticMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 16: public function testItCanGenerateDefinitionViaStaticMethod() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 40: public function testDoNotSetHeaderWhenMethodNotCacheable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 40: public function testDoNotSetHeaderWhenMethodNotCacheable() - line 43: $request->setMethod('PUT'); - line 49: $this->assertNull($response->getMaxAge()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 40: public function testDoNotSetHeaderWhenMethodNotCacheable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 52: public function testDoNotSetHeaderWhenNoContent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 52: public function testDoNotSetHeaderWhenNoContent() - line 53: { - line 58: $this->assertNull($response->getMaxAge()); - line 59: $this->assertNull($response->getEtag()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 52: public function testDoNotSetHeaderWhenNoContent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 62: public function testSetHeaderToFileResponseEvenWithNoContent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 62: public function testSetHeaderToFileResponseEvenWithNoContent() - line 63: { - line 70: $this->assertNotNull($response->getMaxAge()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 62: public function testSetHeaderToFileResponseEvenWithNoContent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 73: public function testSetHeaderToDownloadResponseEvenWithNoContent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 73: public function testSetHeaderToDownloadResponseEvenWithNoContent() - line 74: { - line 82: $this->assertNotNull($response->getMaxAge()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 73: public function testSetHeaderToDownloadResponseEvenWithNoContent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 85: public function testAddHeaders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 85: public function testAddHeaders() - line 86: { - line 91: $this->assertSame('"ABC"', $response->getEtag()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 95: public function testAddHeadersUsingArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 95: public function testAddHeadersUsingArray() - line 96: { - line 101: $this->assertSame('"ABC"', $response->getEtag()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 105: public function testGenerateEtag() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 105: public function testGenerateEtag() - line 106: { - line 111: $this->assertSame('"4f1b32bff4356281946800d355007128"', $response->getEtag()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 115: public function testDoesNotOverrideEtag() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 115: public function testDoesNotOverrideEtag() - line 116: { - line 121: $this->assertSame('"XYZ"', $response->getEtag()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 124: public function testIsNotModified() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 124: public function testIsNotModified() - line 127: $request->headers->set('If-None-Match', '"4f1b32bff4356281946800d355007128"'); - line 133: $this->assertSame(304, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 136: public function testInvalidOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 136: public function testInvalidOption() - line 138: $this->expectException(InvalidArgumentException::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 136: public function testInvalidOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 145: public function testLastModifiedUnixTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 145: public function testLastModifiedUnixTime() - line 147: $time = time(); - line 153: $this->assertSame($time, $response->getLastModified()->getTimestamp()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 156: public function testLastModifiedStringDate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 156: public function testLastModifiedStringDate() - line 158: $birthdate = '1973-04-09 10:10:10'; - line 163: $this->assertSame(Carbon::parse($birthdate)->timestamp, $response->getLastModified()->getTimestamp()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 166: public function testTrailingDelimiterIgnored() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 166: public function testTrailingDelimiterIgnored() - line 168: $time = time(); - line 174: $this->assertSame($time, $response->getLastModified()->getTimestamp()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 177: public function testItDoesNotSetEtagHeadersForBinaryContent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 177: public function testItDoesNotSetEtagHeadersForBinaryContent() - line 178: { - line 183: $this->assertNull($response->getEtag()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 177: public function testItDoesNotSetEtagHeadersForBinaryContent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Http/Middleware/TrimStringsTest.php - Test @ line 14: public function test_no_zero_width_space_character_returns_the_same_string() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 14: public function test_no_zero_width_space_character_returns_the_same_string() - line 18: $request->merge([ - line 22: $middleware = new TrimStrings; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 14: public function test_no_zero_width_space_character_returns_the_same_string() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 32: public function test_leading_zero_width_space_character_is_trimmed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 32: public function test_leading_zero_width_space_character_is_trimmed() - line 36: $request->merge([ - line 40: $middleware = new TrimStrings; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 32: public function test_leading_zero_width_space_character_is_trimmed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 47: public function test_trim_strings_can_globally_ignore_certain_inputs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 47: public function test_trim_strings_can_globally_ignore_certain_inputs() - line 51: $request->merge([ - line 57: $middleware = new TrimStrings; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 47: public function test_trim_strings_can_globally_ignore_certain_inputs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 67: public function test_trailing_zero_width_space_character_is_trimmed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 67: public function test_trailing_zero_width_space_character_is_trimmed() - line 71: $request->merge([ - line 75: $middleware = new TrimStrings; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 67: public function test_trailing_zero_width_space_character_is_trimmed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 85: public function test_leading_zero_width_non_breakable_space_character_is_trimmed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 85: public function test_leading_zero_width_non_breakable_space_character_is_trimmed() - line 89: $request->merge([ - line 93: $middleware = new TrimStrings; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 85: public function test_leading_zero_width_non_breakable_space_character_is_trimmed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 103: public function test_leading_multiple_zero_width_non_breakable_space_characters_are_trimmed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 103: public function test_leading_multiple_zero_width_non_breakable_space_characters_are_trimmed() - line 107: $request->merge([ - line 111: $middleware = new TrimStrings; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 103: public function test_leading_multiple_zero_width_non_breakable_space_characters_are_trimmed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 121: public function test_combination_of_leading_and_trailing_zero_width_non_breakable_space_and_zero_width_space_characters_are_trimmed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 121: public function test_combination_of_leading_and_trailing_zero_width_non_breakable_space_and_zero_width_space_characters_are_trimmed() - line 125: $request->merge([ - line 129: $middleware = new TrimStrings; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 121: public function test_combination_of_leading_and_trailing_zero_width_non_breakable_space_and_zero_width_space_characters_are_trimmed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 139: public function test_leading_invisible_characters_are_trimmed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 139: public function test_leading_invisible_characters_are_trimmed() - line 143: $request->merge([ - line 147: $middleware = new TrimStrings; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 139: public function test_leading_invisible_characters_are_trimmed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 157: public function test_trailing_invisible_characters_are_trimmed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 157: public function test_trailing_invisible_characters_are_trimmed() - line 161: $request->merge([ - line 165: $middleware = new TrimStrings; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 157: public function test_trailing_invisible_characters_are_trimmed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 175: public function test_leading_multiple_invisible_characters_are_trimmed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 175: public function test_leading_multiple_invisible_characters_are_trimmed() - line 179: $request->merge([ - line 183: $middleware = new TrimStrings; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 175: public function test_leading_multiple_invisible_characters_are_trimmed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 193: public function test_trailing_multiple_invisible_characters_are_trimmed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 193: public function test_trailing_multiple_invisible_characters_are_trimmed() - line 197: $request->merge([ - line 201: $middleware = new TrimStrings; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 193: public function test_trailing_multiple_invisible_characters_are_trimmed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 211: public function test_combination_of_leading_and_trailing_multiple_invisible_characters_are_trimmed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 211: public function test_combination_of_leading_and_trailing_multiple_invisible_characters_are_trimmed() - line 215: $request->merge([ - line 219: $middleware = new TrimStrings; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 211: public function test_combination_of_leading_and_trailing_multiple_invisible_characters_are_trimmed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 226: public function test_trim_strings_can_ignore_nested_attributes_using_wildcards() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 226: public function test_trim_strings_can_ignore_nested_attributes_using_wildcards() - line 230: $request->merge([ - line 259: }; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Http/Middleware/TrustProxiesTest.php - Test @ line 25: public function test_request_does_not_trust() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 25: public function test_request_does_not_trust() - line 27: $req = $this->createProxiedRequest(); - line 29: $this->assertSame('192.168.10.10', $req->getClientIp(), 'Assert untrusted proxy x-forwarded-for header not used'); - line 30: $this->assertSame('http', $req->getScheme(), 'Assert untrusted proxy x-forwarded-proto header not used'); - line 31: $this->assertSame('localhost', $req->getHost(), 'Assert untrusted proxy x-forwarded-host header not used'); - line 32: $this->assertEquals(8888, $req->getPort(), 'Assert untrusted proxy x-forwarded-port header not used'); - line 33: $this->assertSame('', $req->getBaseUrl(), 'Assert untrusted proxy x-forwarded-prefix header not used'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 42: public function test_does_trust_trusted_proxy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 42: public function test_does_trust_trusted_proxy() - line 44: $req = $this->createProxiedRequest(); - line 45: $req->setTrustedProxies(['192.168.10.10'], $this->headerAll); - line 47: $this->assertSame('173.174.200.38', $req->getClientIp(), 'Assert trusted proxy x-forwarded-for header used'); - line 48: $this->assertSame('https', $req->getScheme(), 'Assert trusted proxy x-forwarded-proto header used'); - line 49: $this->assertSame('serversforhackers.com', $req->getHost(), 'Assert trusted proxy x-forwarded-host header used'); - line 50: $this->assertEquals(443, $req->getPort(), 'Assert trusted proxy x-forwarded-port header used'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 58: public function test_trusted_proxy_sets_trusted_proxies_with_wildcard() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 58: public function test_trusted_proxy_sets_trusted_proxies_with_wildcard() - line 60: $trustedProxy = $this->createTrustedProxy($this->headerAll, '*'); - line 61: $request = $this->createProxiedRequest(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 72: public function test_trusted_proxy_sets_trusted_proxies_with_double_wildcard_for_backwards_compat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 72: public function test_trusted_proxy_sets_trusted_proxies_with_double_wildcard_for_backwards_compat() - line 74: $trustedProxy = $this->createTrustedProxy($this->headerAll, '**'); - line 75: $request = $this->createProxiedRequest(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 86: public function test_trusted_proxy_sets_trusted_proxies_with_REMOTE_ADDR() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 86: public function test_trusted_proxy_sets_trusted_proxies_with_REMOTE_ADDR() - line 88: $trustedProxy = $this->createTrustedProxy($this->headerAll, 'REMOTE_ADDR'); - line 89: $request = $this->createProxiedRequest(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 100: public function test_trusted_proxy_sets_trusted_proxies() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 100: public function test_trusted_proxy_sets_trusted_proxies() - line 102: $trustedProxy = $this->createTrustedProxy($this->headerAll, ['192.168.10.10']); - line 103: $request = $this->createProxiedRequest(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 113: public function test_get_client_ips() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 113: public function test_get_client_ips() - line 115: $trustedProxy = $this->createTrustedProxy($this->headerAll, ['192.168.10.10']); - line 125: $request = $this->createProxiedRequest(['HTTP_X_FORWARDED_FOR' => $forwardedForHeader]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 113: public function test_get_client_ips() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 137: public function test_get_client_ip_with_multiple_ip_addresses_some_of_which_are_trusted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 137: public function test_get_client_ip_with_multiple_ip_addresses_some_of_which_are_trusted() - line 139: $trustedProxy = $this->createTrustedProxy($this->headerAll, ['192.168.10.10', '192.0.2.199']); - line 149: $request = $this->createProxiedRequest(['HTTP_X_FORWARDED_FOR' => $forwardedForHeader]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 160: public function test_get_client_ip_with_multiple_ip_addresses_all_proxies_are_trusted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 160: public function test_get_client_ip_with_multiple_ip_addresses_all_proxies_are_trusted() - line 162: $trustedProxy = $this->createTrustedProxy($this->headerAll, '*'); - line 172: $request = $this->createProxiedRequest(['HTTP_X_FORWARDED_FOR' => $forwardedForHeader]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 183: public function test_can_distrust_headers() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 183: public function test_can_distrust_headers() - line 185: $trustedProxy = $this->createTrustedProxy(Request::HEADER_FORWARDED, ['192.168.10.10']); - line 187: $request = $this->createProxiedRequest([ - line 193: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 209: public function test_x_forwarded_for_header_only_trusted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 209: public function test_x_forwarded_for_header_only_trusted() - line 211: $trustedProxy = $this->createTrustedProxy(Request::HEADER_X_FORWARDED_FOR, '*'); - line 213: $request = $this->createProxiedRequest(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 230: public function test_x_forwarded_host_header_only_trusted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 230: public function test_x_forwarded_host_header_only_trusted() - line 232: $trustedProxy = $this->createTrustedProxy(Request::HEADER_X_FORWARDED_HOST, '*'); - line 234: $request = $this->createProxiedRequest(['HTTP_X_FORWARDED_HOST' => 'serversforhackers.com:8888']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 251: public function test_x_forwarded_port_header_only_trusted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 251: public function test_x_forwarded_port_header_only_trusted() - line 253: $trustedProxy = $this->createTrustedProxy(Request::HEADER_X_FORWARDED_PORT, '*'); - line 255: $request = $this->createProxiedRequest(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 272: public function test_x_forwarded_prefix_header_only_trusted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 272: public function test_x_forwarded_prefix_header_only_trusted() - line 274: $trustedProxy = $this->createTrustedProxy(Request::HEADER_X_FORWARDED_PREFIX, '*'); - line 276: $request = $this->createProxiedRequest(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 293: public function test_x_forwarded_proto_header_only_trusted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 293: public function test_x_forwarded_proto_header_only_trusted() - line 295: $trustedProxy = $this->createTrustedProxy(Request::HEADER_X_FORWARDED_PROTO, '*'); - line 297: $request = $this->createProxiedRequest(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 314: public function test_x_forwarded_multiple_individual_headers_trusted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 314: public function test_x_forwarded_multiple_individual_headers_trusted() - line 316: $trustedProxy = $this->createTrustedProxy( - line 322: $request = $this->createProxiedRequest(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 339: public function test_is_reading_text_based_configurations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 339: public function test_is_reading_text_based_configurations() - line 341: $request = $this->createProxiedRequest(); - line 344: $trustedProxy = $this->createTrustedProxy('HEADER_X_FORWARDED_ALL', '192.168.1.1, 192.168.1.2'); - line 354: $trustedProxy = $this->createTrustedProxy('HEADER_FORWARDED', '192.168.1.1, 192.168.1.2'); - line 364: $trustedProxy = $this->createTrustedProxy('HEADER_X_FORWARDED_AWS_ELB', '192.168.1.1, 192.168.1.2'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Http/Middleware/VitePreloadingTest.php - Test @ line 22: public function testItDoesNotSetLinkTagWhenNoTagsHaveBeenPreloaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 22: public function testItDoesNotSetLinkTagWhenNoTagsHaveBeenPreloaded() - line 25: $app->instance(Vite::class, new class extends Vite - line 29: Facade::setFacadeApplication($app); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 22: public function testItDoesNotSetLinkTagWhenNoTagsHaveBeenPreloaded() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 38: public function testItAddsPreloadLinkHeader() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 38: public function testItAddsPreloadLinkHeader() - line 41: $app->instance(Vite::class, new class extends Vite - line 50: Facade::setFacadeApplication($app); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 62: public function testItDoesNotAttachHeadersToNonIlluminateResponses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 62: public function testItDoesNotAttachHeadersToNonIlluminateResponses() - line 65: $app->instance(Vite::class, new class extends Vite - line 74: Facade::setFacadeApplication($app); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 62: public function testItDoesNotAttachHeadersToNonIlluminateResponses() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 83: public function testItDoesNotOverwriteOtherLinkHeaders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 83: public function testItDoesNotOverwriteOtherLinkHeaders() - line 86: $app->instance(Vite::class, new class extends Vite - line 95: Facade::setFacadeApplication($app); - line 106: $response->headers->all('Link'), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 110: public function testItCanLimitNumberOfAssetsPreloaded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 110: public function testItCanLimitNumberOfAssetsPreloaded() - line 113: $app->instance(Vite::class, new class extends Vite - line 134: Facade::setFacadeApplication($app); - line 142: $response->headers->all('Link'), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Http/Resources/JsonApi/JsonApiResourceTest.php - Test @ line 18: public function testResponseWrapperIsHardCodedToData() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 18: public function testResponseWrapperIsHardCodedToData() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 25: public function testUnableToSetWrapper() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 25: public function testUnableToSetWrapper() - line 27: $this->expectException(BadMethodCallException::class); - line 28: $this->expectExceptionMessage('Using Illuminate\Http\Resources\JsonApi\JsonApiResource::wrap() method is not allowed.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 25: public function testUnableToSetWrapper() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 33: public function testUnableToUnsetWrapper() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 33: public function testUnableToUnsetWrapper() - line 35: $this->expectException(BadMethodCallException::class); - line 36: $this->expectExceptionMessage('Using Illuminate\Http\Resources\JsonApi\JsonApiResource::withoutWrapping() method is not allowed.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 33: public function testUnableToUnsetWrapper() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Auth/ApiAuthenticationWithEloquentTest.php - Test @ line 38: public function testAuthenticationViaApiWithEloquentUsingWrongDatabaseCredentialsShouldNotCauseInfiniteLoop() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 38: public function testAuthenticationViaApiWithEloquentUsingWrongDatabaseCredentialsShouldNotCauseInfiniteLoop() - line 42: })->middleware('auth:api'); - line 44: $this->expectException(QueryException::class); - line 46: $this->expectExceptionMessage("Access denied for user 'root'@"); - line 49: $this->withoutExceptionHandling()->get('/auth', ['Authorization' => 'Bearer whatever']); - line 51: if (Str::startsWith($e->getMessage(), 'SQLSTATE[HY000] [2002]')) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 38: public function testAuthenticationViaApiWithEloquentUsingWrongDatabaseCredentialsShouldNotCauseInfiniteLoop() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Auth/AuthenticationTest.php - Test @ line 76: public function testBasicAuthPassesOnCorrectCredentials() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 76: public function testBasicAuthPassesOnCorrectCredentials() - line 77: { - line 83: $this->assertSame('email', $response->json()['email']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 86: public function testBasicAuthRespectsAdditionalConditions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 86: public function testBasicAuthRespectsAdditionalConditions() - line 88: AuthenticationTestUser::create([ - line 93: ]); - line 97: ])->assertStatus(401); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 111: public function testLoggingInFailsViaAttempt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 111: public function testLoggingInFailsViaAttempt() - line 116: $this->app['auth']->attempt(['email' => 'wrong', 'password' => 'password']) - line 119: $this->assertFalse($this->app['auth']->check()); - line 120: $this->assertNull($this->app['auth']->user()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 139: public function testLoggingInSucceedsViaAttempt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 139: public function testLoggingInSucceedsViaAttempt() - line 144: $this->app['auth']->attempt(['email' => 'email', 'password' => 'password']) - line 146: $this->assertInstanceOf(AuthenticationTestUser::class, $this->app['auth']->user()); - line 147: $this->assertTrue($this->app['auth']->check()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 175: public function testLoggingInUsingId() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 175: public function testLoggingInUsingId() - line 177: $this->app['auth']->loginUsingId(1); - line 178: $this->assertEquals(1, $this->app['auth']->user()->id); - line 180: $this->assertFalse($this->app['auth']->loginUsingId(1000)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 183: public function testLoggingOut() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 183: public function testLoggingOut() - line 187: $this->app['auth']->loginUsingId(1); - line 188: $this->assertEquals(1, $this->app['auth']->user()->id); - line 190: $this->app['auth']->logout(); - line 191: $this->assertNull($this->app['auth']->user()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 200: public function testLoggingOutOtherDevices() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 200: public function testLoggingOutOtherDevices() - line 204: $this->app['auth']->loginUsingId(1); - line 206: $user = $this->app['auth']->user(); - line 210: $this->app['auth']->logoutOtherDevices('password'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 221: public function testPasswordMustBeValidToLogOutOtherDevices() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 221: public function testPasswordMustBeValidToLogOutOtherDevices() - line 223: $this->expectException(InvalidArgumentException::class); - line 224: $this->expectExceptionMessage('current password'); - line 226: $this->app['auth']->loginUsingId(1); - line 228: $user = $this->app['auth']->user(); - line 232: $this->app['auth']->logoutOtherDevices('adifferentpassword'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 235: public function testLoggingInOutViaAttemptRemembering() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 235: public function testLoggingInOutViaAttemptRemembering() - line 238: $this->app['auth']->attempt(['email' => 'email', 'password' => 'password'], true) - line 240: $this->assertInstanceOf(AuthenticationTestUser::class, $this->app['auth']->user()); - line 241: $this->assertTrue($this->app['auth']->check()); - line 242: $this->assertNotNull($this->app['auth']->user()->getRememberToken()); - line 244: $oldToken = $this->app['auth']->user()->getRememberToken(); - line 245: $user = $this->app['auth']->user(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 253: public function testLoggingInOutCurrentDeviceViaRemembering() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 253: public function testLoggingInOutCurrentDeviceViaRemembering() - line 256: $this->app['auth']->attempt(['email' => 'email', 'password' => 'password'], true) - line 258: $this->assertInstanceOf(AuthenticationTestUser::class, $this->app['auth']->user()); - line 259: $this->assertTrue($this->app['auth']->check()); - line 260: $this->assertNotNull($this->app['auth']->user()->getRememberToken()); - line 262: $oldToken = $this->app['auth']->user()->getRememberToken(); - line 263: $user = $this->app['auth']->user(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 271: public function testAuthViaAttemptRemembering() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 271: public function testAuthViaAttemptRemembering() - line 275: $user = AuthenticationTestUser::create([ - line 283: $this->assertEquals($user->id, $provider->retrieveByToken($user->id, $token)->id); - line 285: $user->update([ - line 289: $this->assertNull($provider->retrieveByToken($user->id, $token)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 292: public function testDispatcherChangesIfThereIsOneOnTheAuthGuard() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 292: public function testDispatcherChangesIfThereIsOneOnTheAuthGuard() - line 294: $this->assertInstanceOf(SessionGuard::class, $this->app['auth']->guard()); - line 295: $this->assertInstanceOf(Dispatcher::class, $this->app['auth']->guard()->getDispatcher()); - line 299: $this->assertInstanceOf(SessionGuard::class, $this->app['auth']->guard()); - line 300: $this->assertInstanceOf(EventFake::class, $this->app['auth']->guard()->getDispatcher()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 292: public function testDispatcherChangesIfThereIsOneOnTheAuthGuard() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 303: public function testDispatcherChangesIfThereIsOneOnTheCustomAuthGuard() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 303: public function testDispatcherChangesIfThereIsOneOnTheCustomAuthGuard() - line 310: Auth::extend('myCustomDriver', function () { - line 314: $this->assertInstanceOf(MyCustomGuardStub::class, $this->app['auth']->guard('myGuard')); - line 315: $this->assertInstanceOf(Dispatcher::class, $this->app['auth']->guard()->getDispatcher()); - line 319: $this->assertInstanceOf(MyCustomGuardStub::class, $this->app['auth']->guard('myGuard')); - line 320: $this->assertInstanceOf(EventFake::class, $this->app['auth']->guard()->getDispatcher()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 303: public function testDispatcherChangesIfThereIsOneOnTheCustomAuthGuard() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 323: public function testHasNoProblemIfThereIsNoDispatchingTheAuthCustomGuard() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 323: public function testHasNoProblemIfThereIsNoDispatchingTheAuthCustomGuard() - line 330: Auth::extend('myCustomDriver', function () { - line 334: $this->assertInstanceOf(MyDispatcherLessCustomGuardStub::class, $this->app['auth']->guard('myGuard')); - line 338: $this->assertInstanceOf(MyDispatcherLessCustomGuardStub::class, $this->app['auth']->guard('myGuard')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 323: public function testHasNoProblemIfThereIsNoDispatchingTheAuthCustomGuard() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Auth/ForgotPasswordTest.php - Test @ line 48: public function testItCanSendForgotPasswordEmail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 48: public function testItCanSendForgotPasswordEmail() - line 52: UserFactory::new()->create(); - line 56: Password::broker()->sendResetLink([ - line 63: $message = $notification->toMail($user); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 71: public function testItCanTriggerPasswordResetSentEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 71: public function testItCanTriggerPasswordResetSentEvent() - line 75: UserFactory::new()->create(); - line 79: Password::broker()->sendResetLink([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 90: public function testItCanSendForgotPasswordEmailViaCreateUrlUsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 90: public function testItCanSendForgotPasswordEmailViaCreateUrlUsing() - line 94: ResetPassword::createUrlUsing(function ($user, string $token) { - line 98: UserFactory::new()->create(); - line 102: Password::broker()->sendResetLink([ - line 109: $message = $notification->toMail($user); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 117: public function testItCanSendForgotPasswordEmailViaToMailUsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 117: public function testItCanSendForgotPasswordEmailViaToMailUsing() - line 123: ->subject(__('Reset Password Notification')) - line 129: UserFactory::new()->create(); - line 133: Password::broker()->sendResetLink([ - line 140: $message = $notification->toMail($user); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Auth/ForgotPasswordWithoutDefaultRoutesTest.php - Test @ line 42: public function testItCannotSendForgotPasswordEmail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 42: public function testItCannotSendForgotPasswordEmail() - line 44: $this->expectException('Symfony\Component\Routing\Exception\RouteNotFoundException'); - line 45: $this->expectExceptionMessage('Route [password.reset] not defined.'); - line 49: UserFactory::new()->create(); - line 53: Password::broker()->sendResetLink([ - line 60: $message = $notification->toMail($user); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 68: public function testItCanSendForgotPasswordEmailViaCreateUrlUsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 68: public function testItCanSendForgotPasswordEmailViaCreateUrlUsing() - line 72: ResetPassword::createUrlUsing(function ($user, string $token) { - line 76: UserFactory::new()->create(); - line 80: Password::broker()->sendResetLink([ - line 87: $message = $notification->toMail($user); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 95: public function testItCanSendForgotPasswordEmailViaToMailUsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 95: public function testItCanSendForgotPasswordEmailViaToMailUsing() - line 101: ->subject(__('Reset Password Notification')) - line 107: UserFactory::new()->create(); - line 111: Password::broker()->sendResetLink([ - line 118: $message = $notification->toMail($user); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Auth/GatePolicyResolutionTest.php - Test @ line 27: public function testPolicyCanBeGuessedUsingClassConventions() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 27: public function testPolicyCanBeGuessedUsingClassConventions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 44: public function testPolicyCanBeGuessedForParallelClassHierarchies() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 44: public function testPolicyCanBeGuessedForParallelClassHierarchies() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 57: public function testPolicyCanBeGuessedUsingCallback() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 57: public function testPolicyCanBeGuessedUsingCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 69: public function testPolicyCanBeGuessedMultipleTimes() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 69: public function testPolicyCanBeGuessedMultipleTimes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Auth/Middleware/RedirectIfAuthenticatedTest.php - Test @ line 50: public function testWhenDashboardNamedRouteIsAvailable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 50: public function testWhenDashboardNamedRouteIsAvailable() - line 54: })->name('dashboard'); - line 56: $response = $this->actingAs($this->user)->get('/login'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 61: public function testWhenHomeNamedRouteIsAvailable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 61: public function testWhenHomeNamedRouteIsAvailable() - line 65: })->name('home'); - line 67: $response = $this->actingAs($this->user)->get('/login'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 83: public function testWhenHomeSlugIsAvailable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 83: public function testWhenHomeSlugIsAvailable() - line 87: })->name('home'); - line 89: $response = $this->actingAs($this->user)->get('/login'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Auth/Middleware/RequirePasswordTest.php - Test @ line 27: public function testUserSeesTheWantedPageIfThePasswordWasRecentlyConfirmed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 27: public function testUserSeesTheWantedPageIfThePasswordWasRecentlyConfirmed() - line 29: $this->withoutExceptionHandling(); - line 32: $router = $this->app->make(Registrar::class); - line 36: })->middleware([StartSession::class, RequirePassword::class]); - line 38: $response = $this->withSession(['auth.password_confirmed_at' => time()])->get('test-route'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 44: public function testUserIsRedirectedToThePasswordConfirmRouteIfThePasswordWasNotRecentlyConfirmed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 44: public function testUserIsRedirectedToThePasswordConfirmRouteIfThePasswordWasNotRecentlyConfirmed() - line 46: $this->withoutExceptionHandling(); - line 49: $router = $this->app->make(Registrar::class); - line 53: })->name('password.confirm'); - line 57: })->middleware([StartSession::class, RequirePassword::class]); - line 59: $response = $this->withSession(['auth.password_confirmed_at' => time() - 10801])->get('test-route'); - line 62: $response->assertRedirect($this->app->make(UrlGenerator::class)->route('password.confirm')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 65: public function testUserIsRedirectedToACustomRouteIfThePasswordWasNotRecentlyConfirmedAndTheCustomRouteIsSpecified() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 65: public function testUserIsRedirectedToACustomRouteIfThePasswordWasNotRecentlyConfirmedAndTheCustomRouteIsSpecified() - line 67: $this->withoutExceptionHandling(); - line 70: $router = $this->app->make(Registrar::class); - line 74: })->name('my-password.confirm'); - line 78: })->middleware([StartSession::class, RequirePassword::class.':my-password.confirm']); - line 80: $response = $this->withSession(['auth.password_confirmed_at' => time() - 10801])->get('test-route'); - line 83: $response->assertRedirect($this->app->make(UrlGenerator::class)->route('my-password.confirm')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 86: public function testAuthPasswordTimeoutIsConfigurable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 86: public function testAuthPasswordTimeoutIsConfigurable() - line 88: $this->withoutExceptionHandling(); - line 91: $router = $this->app->make(Registrar::class); - line 95: })->name('password.confirm'); - line 99: })->middleware([StartSession::class, RequirePassword::class]); - line 101: $this->app->make(Repository::class)->set('auth.password_timeout', 500); - line 103: $response = $this->withSession(['auth.password_confirmed_at' => time() - 495])->get('test-route'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Auth/RehashOnLogoutOtherDevicesTest.php - Test @ line 28: public function testItRehashThePasswordUsingLogoutOtherDevices() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 28: public function testItRehashThePasswordUsingLogoutOtherDevices() - line 30: $this->withoutExceptionHandling(); - line 32: $user = UserFactory::new()->create(); - line 36: $this->actingAs($user); - line 42: $user->refresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Broadcasting/BroadcastManagerTest.php - Test @ line 68: public function testUniqueEventsCanBeBroadcast() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 68: public function testUniqueEventsCanBeBroadcast() - line 73: Broadcast::queue(new TestEventUnique); - line 79: $this->assertFalse($this->app->get(Cache::class)->lock($lockKey, 10)->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 82: public function testUniqueEventsCanBeBroadcastWithUniqueIdFromProperty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 82: public function testUniqueEventsCanBeBroadcastWithUniqueIdFromProperty() - line 87: Broadcast::queue(new TestEventUniqueWithIdProperty); - line 93: $this->assertFalse($this->app->get(Cache::class)->lock($lockKey, 10)->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 96: public function testUniqueEventsCanBeBroadcastWithUniqueIdFromMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 96: public function testUniqueEventsCanBeBroadcastWithUniqueIdFromMethod() - line 101: Broadcast::queue(new TestEventUniqueWithIdMethod); - line 107: $this->assertFalse($this->app->get(Cache::class)->lock($lockKey, 10)->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 110: public function testThrowExceptionWhenUnknownStoreIsUsed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 110: public function testThrowExceptionWhenUnknownStoreIsUsed() - line 112: $this->expectException(InvalidArgumentException::class); - line 113: $this->expectExceptionMessage('Broadcast connection [alien_connection] is not defined.'); - line 125: $app = $this->getApp($userConfig); - line 129: $broadcastManager->connection('alien_connection'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 110: public function testThrowExceptionWhenUnknownStoreIsUsed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 132: public function testThrowExceptionWhenDriverCreationFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 132: public function testThrowExceptionWhenDriverCreationFails() - line 144: $app = $this->getApp($userConfig); - line 145: $app->singleton(\Psr\Log\LoggerInterface::class, function () { - line 152: $broadcastManager->connection('log_connection_1'); - line 153: $this->fail('Expected BroadcastException was not thrown'); - line 155: $this->assertStringContainsString('Failed to create broadcaster for connection "log_connection_1"', $e->getMessage()); - line 156: $this->assertStringContainsString('Logger service not available', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 132: public function testThrowExceptionWhenDriverCreationFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Broadcasting/SendingBroadcastsViaAnonymousEventTest.php - Test @ line 15: public function testBroadcastIsSent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 15: public function testBroadcastIsSent() - line 21: ->as('test-event') - line 25: return (new ReflectionClass($event))->getProperty('connection')->getValue($event) === null && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 15: public function testBroadcastIsSent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 32: public function testBroadcastIsSentNow() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 32: public function testBroadcastIsSentNow() - line 38: ->as('test-event') - line 42: return (new ReflectionClass($event))->getProperty('connection')->getValue($event) === null && Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 32: public function testBroadcastIsSentNow() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 47: public function testDefaultNameIsSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 47: public function testDefaultNameIsSet() - line 53: ->send(); - line 56: return $event->broadcastAs() === 'AnonymousEvent'; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 47: public function testDefaultNameIsSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 60: public function testDefaultPayloadIsSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 60: public function testDefaultPayloadIsSet() - line 64: BroadcastFacade::on('test-channel')->send(); - line 67: return $event->broadcastWith() === []; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 60: public function testDefaultPayloadIsSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 71: public function testSendToMultipleChannels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 71: public function testSendToMultipleChannels() - line 79: ])->send(); - line 82: [$one, $two, $three] = $event->broadcastOn(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 71: public function testSendToMultipleChannels() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 91: public function testSendViaANonDefaultConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 91: public function testSendViaANonDefaultConnection() - line 96: ->via('pusher') - line 100: return (new ReflectionClass($event))->getProperty('connection')->getValue($event) === 'pusher'; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 91: public function testSendViaANonDefaultConnection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 104: public function testSendToOthersOnly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 104: public function testSendToOthersOnly() - line 108: $this->app['request']->headers->add(['X-Socket-ID' => '12345']); - line 110: BroadcastFacade::on('test-channel')->send(); - line 117: ->toOthers() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 104: public function testSendToOthersOnly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 125: public function testSendToPrivateChannel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 125: public function testSendToPrivateChannel() - line 129: BroadcastFacade::private('test-channel')->send(); - line 132: $channel = $event->broadcastOn()[0]; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 125: public function testSendToPrivateChannel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 138: public function testSendToPresenceChannel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 138: public function testSendToPresenceChannel() - line 142: BroadcastFacade::presence('test-channel')->send(); - line 145: $channel = $event->broadcastOn()[0]; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 138: public function testSendToPresenceChannel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Cache/DynamoDbStoreTest.php - Test @ line 16: public function testItemsCanBeStoredAndRetrieved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 16: public function testItemsCanBeStoredAndRetrieved() - line 18: Cache::driver('dynamodb')->put('name', 'Taylor', 10); - line 21: Cache::driver('dynamodb')->put(['name' => 'Abigail', 'age' => 28], 10); - line 29: ], Cache::driver('dynamodb')->many(['name', 'age', 'height'])); - line 31: Cache::driver('dynamodb')->forget('name'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 35: public function testItemsCanBeAtomicallyAdded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 35: public function testItemsCanBeAtomicallyAdded() - line 37: $key = Str::random(6); - line 39: $this->assertTrue(Cache::driver('dynamodb')->add($key, 'Taylor', 10)); - line 40: $this->assertFalse(Cache::driver('dynamodb')->add($key, 'Taylor', 10)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 43: public function testItemsCanBeIncrementedAndDecremented() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 43: public function testItemsCanBeIncrementedAndDecremented() - line 45: Cache::driver('dynamodb')->put('counter', 0, 10); - line 46: Cache::driver('dynamodb')->increment('counter'); - line 47: Cache::driver('dynamodb')->increment('counter', 4); - line 51: Cache::driver('dynamodb')->decrement('counter', 5); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Cache/FileCacheLockTest.php - Test @ line 24: public function testLocksCanBeAcquiredAndReleased() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 24: public function testLocksCanBeAcquiredAndReleased() - line 29: $lock->release(); - line 34: Cache::lock('foo')->release(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 37: public function testLocksCanBlockForSeconds() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 37: public function testLocksCanBlockForSeconds() - line 39: $this->assertSame('taylor', Cache::lock('foo', 10)->block(1, function () { - line 43: Cache::lock('foo')->forceRelease(); - line 44: $this->assertTrue(Cache::lock('foo', 10)->block(1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 47: public function testConcurrentLocksAreReleasedSafely() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 47: public function testConcurrentLocksAreReleasedSafely() - line 53: Sleep::for(2)->seconds(); - line 58: $firstLock->release(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 82: public function testLocksCanBeReleasedUsingOwnerToken() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 82: public function testLocksCanBeReleasedUsingOwnerToken() - line 86: $owner = $firstLock->owner(); - line 88: $secondLock = Cache::store('file')->restoreLock('foo', $owner); - line 89: $secondLock->release(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 94: public function testOwnerStatusCanBeCheckedAfterRestoringLock() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 94: public function testOwnerStatusCanBeCheckedAfterRestoringLock() - line 98: $owner = $firstLock->owner(); - line 100: $secondLock = Cache::store('file')->restoreLock('foo', $owner); - line 101: $this->assertTrue($secondLock->isOwnedByCurrentProcess()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 116: public function testOtherOwnerDoesNotOwnLockAfterRestore() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 116: public function testOtherOwnerDoesNotOwnLockAfterRestore() - line 119: $this->assertTrue($firstLock->isOwnedBy(null)); - line 121: $this->assertTrue($firstLock->isOwnedBy($firstLock->owner())); - line 123: $secondLock = Cache::store('file')->restoreLock('foo', 'other_owner'); - line 124: $this->assertTrue($secondLock->isOwnedBy($firstLock->owner())); - line 125: $this->assertFalse($secondLock->isOwnedByCurrentProcess()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 128: public function testExceptionIfBlockCanNotAcquireLock() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 128: public function testExceptionIfBlockCanNotAcquireLock() - line 136: $this->expectException(LockTimeoutException::class); - line 137: Cache::lock('foo', 10)->block(5); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 128: public function testExceptionIfBlockCanNotAcquireLock() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Cache/MemcachedCacheLockTestCase.php - Test @ line 12: public function testMemcachedLocksCanBeAcquiredAndReleased() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 12: public function testMemcachedLocksCanBeAcquiredAndReleased() - line 14: Cache::store('memcached')->lock('foo')->forceRelease(); - line 15: $this->assertTrue(Cache::store('memcached')->lock('foo', 10)->get()); - line 16: $this->assertFalse(Cache::store('memcached')->lock('foo', 10)->get()); - line 17: Cache::store('memcached')->lock('foo')->forceRelease(); - line 18: $this->assertTrue(Cache::store('memcached')->lock('foo', 10)->get()); - line 19: $this->assertFalse(Cache::store('memcached')->lock('foo', 10)->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 23: public function testMemcachedLocksCanBlockForSeconds() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 23: public function testMemcachedLocksCanBlockForSeconds() - line 25: Cache::store('memcached')->lock('foo')->forceRelease(); - line 26: $this->assertSame('taylor', Cache::store('memcached')->lock('foo', 10)->block(1, function () { - line 30: Cache::store('memcached')->lock('foo')->release(); - line 31: $this->assertTrue(Cache::store('memcached')->lock('foo', 10)->block(1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 34: public function testLocksCanRunCallbacks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 34: public function testLocksCanRunCallbacks() - line 36: Cache::store('memcached')->lock('foo')->forceRelease(); - line 37: $this->assertSame('taylor', Cache::store('memcached')->lock('foo', 10)->get(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 42: public function testLocksThrowTimeoutIfBlockExpires() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 42: public function testLocksThrowTimeoutIfBlockExpires() - line 44: $this->expectException(LockTimeoutException::class); - line 46: Cache::store('memcached')->lock('foo')->release(); - line 47: Cache::store('memcached')->lock('foo', 5)->get(); - line 48: $this->assertSame('taylor', Cache::store('memcached')->lock('foo', 10)->block(1, function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 53: public function testConcurrentMemcachedLocksAreReleasedSafely() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 53: public function testConcurrentMemcachedLocksAreReleasedSafely() - line 55: Cache::store('memcached')->lock('bar')->forceRelease(); - line 57: $firstLock = Cache::store('memcached')->lock('bar', 1); - line 58: $this->assertTrue($firstLock->acquire()); - line 61: $secondLock = Cache::store('memcached')->lock('bar', 10); - line 62: $this->assertTrue($secondLock->acquire()); - line 64: $firstLock->release(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 69: public function testMemcachedLocksCanBeReleasedUsingOwnerToken() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 69: public function testMemcachedLocksCanBeReleasedUsingOwnerToken() - line 71: Cache::store('memcached')->lock('foo')->forceRelease(); - line 73: $firstLock = Cache::store('memcached')->lock('foo', 10); - line 75: $owner = $firstLock->owner(); - line 77: $secondLock = Cache::store('memcached')->restoreLock('foo', $owner); - line 78: $secondLock->release(); - line 80: $this->assertTrue(Cache::store('memcached')->lock('foo')->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 83: public function testOwnerStatusCanBeCheckedAfterRestoringLock() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 83: public function testOwnerStatusCanBeCheckedAfterRestoringLock() - line 85: Cache::store('memcached')->lock('foo')->forceRelease(); - line 87: $firstLock = Cache::store('memcached')->lock('foo', 10); - line 89: $owner = $firstLock->owner(); - line 91: $secondLock = Cache::store('memcached')->restoreLock('foo', $owner); - line 92: $this->assertTrue($secondLock->isOwnedByCurrentProcess()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 95: public function testOtherOwnerDoesNotOwnLockAfterRestore() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 95: public function testOtherOwnerDoesNotOwnLockAfterRestore() - line 97: Cache::store('memcached')->lock('foo')->forceRelease(); - line 99: $firstLock = Cache::store('memcached')->lock('foo', 10); - line 100: $this->assertTrue($firstLock->isOwnedBy(null)); - line 102: $this->assertTrue($firstLock->isOwnedBy($firstLock->owner())); - line 104: $secondLock = Cache::store('memcached')->restoreLock('foo', 'other_owner'); - line 105: $this->assertTrue($secondLock->isOwnedBy($firstLock->owner())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Cache/MemcachedTaggedCacheTestCase.php - Test @ line 11: public function testMemcachedCanStoreAndRetrieveTaggedCacheItems() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 11: public function testMemcachedCanStoreAndRetrieveTaggedCacheItems() - line 15: $store->tags(['people', 'artists'])->put('John', 'foo', 2); - line 16: $store->tags(['people', 'authors'])->put('Anne', 'bar', 2); - line 18: $this->assertSame('foo', $store->tags(['people', 'artists'])->get('John')); - line 19: $this->assertSame('bar', $store->tags(['people', 'authors'])->get('Anne')); - line 21: $store->tags(['people', 'artists'])->put('John', 'baz'); - line 22: $store->tags(['people', 'authors'])->put('Anne', 'qux'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 34: public function testMemcachedCanStoreManyTaggedCacheItems() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 34: public function testMemcachedCanStoreManyTaggedCacheItems() - line 38: $store->tags(['people', 'artists'])->putMany(['John' => 'foo', 'Jane' => 'bar'], 2); - line 40: $this->assertSame('foo', $store->tags(['people', 'artists'])->get('John')); - line 41: $this->assertSame('bar', $store->tags(['people', 'artists'])->get('Jane')); - line 43: $store->tags(['people', 'artists'])->putMany(['John' => 'baz', 'Jane' => 'qux']); - line 45: $this->assertSame('baz', $store->tags(['people', 'artists'])->get('John')); - line 46: $this->assertSame('qux', $store->tags(['people', 'artists'])->get('Jane')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 54: public function testMemcachedCanStoreAndFlushTaggedCacheItems() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 54: public function testMemcachedCanStoreAndFlushTaggedCacheItems() - line 58: $this->assertTrue($store->supportsTags()); - line 62: $store->put('foo', 'bar'); - line 66: $this->assertNull($store->tags(['bar'])->get('x')); - line 68: $store->tags(['bar'])->put('x', 'y'); - line 70: $this->assertSame('y', $store->tags(['bar'])->get('x')); - line 72: $store->tags(['bar'])->flush(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Cache/MemoizedStoreTest.php - Test @ line 49: public function test_it_can_memoize_when_retrieving_single_value() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 49: public function test_it_can_memoize_when_retrieving_single_value() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 66: public function test_null_values_are_memoized_when_retrieving_single_value() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 66: public function test_null_values_are_memoized_when_retrieving_single_value() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 81: public function test_it_can_memoize_when_retrieving_multiple_values() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 81: public function test_it_can_memoize_when_retrieving_multiple_values() - line 87: $memoized = Cache::memo()->getMultiple(['name.0', 'name.1']); - line 95: $memoized = Cache::memo()->getMultiple(['name.0', 'name.1']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 100: public function test_it_uses_correct_keys_for_getMultiple() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 100: public function test_it_uses_correct_keys_for_getMultiple() - line 110: $memoValue = Cache::memo()->many(['a', '1.1', '1', 2]); - line 122: $memoValue = Cache::memo()->many(['a', '1.1', '1', 2]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 127: public function test_it_uses_correct_keys_for_getMultiple_with_empty_prefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 127: public function test_it_uses_correct_keys_for_getMultiple_with_empty_prefix() - line 137: $this->assertSame($data, Cache::memo()->many(array_keys($data))); - line 139: $this->assertSame($data, Cache::memo()->many(array_keys($data))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 142: public function test_null_values_are_memoized_when_retrieving_multiple_values() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 142: public function test_null_values_are_memoized_when_retrieving_multiple_values() - line 145: $memoized = Cache::memo()->getMultiple(['name.0', 'name.1']); - line 153: $memoized = Cache::memo()->getMultiple(['name.0', 'name.1']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 177: public function test_put_forgets_memoized_value() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 177: public function test_put_forgets_memoized_value() - line 186: Cache::memo()->put('name.0', 'MacDonald'); - line 187: Cache::memo()->put('name.1', 'Otwell'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 195: public function test_put_many_forgets_memoized_value() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 195: public function test_put_many_forgets_memoized_value() - line 197: Cache::memo()->put(['name.0' => 'Tim', 'name.1' => 'Taylor'], 60); - line 204: Cache::memo()->put(['name.0' => 'MacDonald'], 60); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 297: public function test_memoized_driver_uses_underlying_drivers_prefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 297: public function test_memoized_driver_uses_underlying_drivers_prefix() - line 299: $this->assertSame('laravel_cache_', Cache::memo()->getPrefix()); - line 301: Cache::driver('redis')->setPrefix('foo'); - line 303: $this->assertSame('foo', Cache::memo()->getPrefix()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 306: public function test_memoized_keys_are_prefixed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 306: public function test_memoized_keys_are_prefixed() - line 310: $redis->setPrefix('aaaa'); - line 311: $redis->put('name', 'Tim', 60); - line 312: $redis->setPrefix('zzzz'); - line 313: $redis->put('name', 'Taylor', 60); - line 315: $redis->setPrefix('aaaa'); - line 319: $redis->setPrefix('zzzz'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 306: public function test_memoized_keys_are_prefixed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 324: public function test_it_dispatches_decorated_driver_events_only() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 324: public function test_it_dispatches_decorated_driver_events_only() - line 345: Cache::memo('redis')->many(['name']); - line 348: Cache::memo('redis')->many(['name.0', 'name.1']); - line 360: Cache::memo('redis')->many(['name.0', 'name.1']); - line 363: Cache::memo('redis')->put('name', 'Tim', 1); - line 372: Cache::memo('redis')->putMany(['name.0' => 'Tim', 'name.1' => 'Taylor']); - line 387: Cache::memo('redis')->increment('count'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 324: public function test_it_dispatches_decorated_driver_events_only() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 433: public function test_it_throws_when_underlying_store_does_not_support_locks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 433: public function test_it_throws_when_underlying_store_does_not_support_locks() - line 435: $this->freezeTime(); - line 495: $this->travel(11)->seconds(); - line 496: Cache::memo('no-lock')->flexible('key', [10, 20], 'value-2'); - line 497: defer()->invoke(); - line 502: $this->assertSame('This cache store does not support locks.', $exceptions[0]->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 440: Config::set('cache.stores.no-lock', ['driver' => 'no-lock']); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - Test @ line 505: public function test_it_supports_with_flexible() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 505: public function test_it_supports_with_flexible() - line 507: $this->freezeTime(); - line 510: $this->travel(11)->seconds(); - line 511: Cache::memo()->flexible('key', [10, 20], 'value-2'); - line 512: defer()->invoke(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Cache/NoLockTest.php - Test @ line 13: public function testLocksCanAlwaysBeAcquiredAndReleased() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 13: public function testLocksCanAlwaysBeAcquiredAndReleased() - line 15: Cache::lock('foo')->forceRelease(); - line 20: $this->assertTrue($lock->release()); - line 21: $this->assertTrue($lock->release()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 24: public function testLocksCanBlockForSeconds() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 24: public function testLocksCanBlockForSeconds() - line 26: Cache::lock('foo')->forceRelease(); - line 27: $this->assertSame('taylor', Cache::lock('foo', 10)->block(1, function () { - line 31: Cache::lock('foo')->forceRelease(); - line 32: $this->assertTrue(Cache::lock('foo', 10)->block(1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Cache/PhpRedisBackoffTest.php - Test @ line 96: public function testItFailsWithAnInvalidPhpRedisAlgorithm() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 96: public function testItFailsWithAnInvalidPhpRedisAlgorithm() - line 98: $this->expectException(InvalidArgumentException::class); - line 99: $this->expectExceptionMessage('Algorithm [foo] is not a valid PhpRedis backoff algorithm'); - line 110: ]))->connection(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 96: public function testItFailsWithAnInvalidPhpRedisAlgorithm() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Cache/PhpRedisCacheLockTest.php - Test @ line 37: public function testRedisLockCanBeAcquiredAndReleasedWithoutSerializationAndCompression() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 37: public function testRedisLockCanBeAcquiredAndReleasedWithoutSerializationAndCompression() - line 46: $client = $store->lockConnection()->client(); - line 48: $client->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE); - line 49: $store->lock('foo')->forceRelease(); - line 50: $this->assertNull($store->lockConnection()->get($store->getPrefix().'foo')); - line 51: $lock = $store->lock('foo', 10); - line 53: $this->assertFalse($store->lock('foo', 10)->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 58: public function testRedisLockCanBeAcquiredAndReleasedWithPhpSerialization() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 58: public function testRedisLockCanBeAcquiredAndReleasedWithPhpSerialization() - line 67: $client = $store->lockConnection()->client(); - line 69: $client->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP); - line 70: $store->lock('foo')->forceRelease(); - line 71: $this->assertNull($store->lockConnection()->get($store->getPrefix().'foo')); - line 72: $lock = $store->lock('foo', 10); - line 74: $this->assertFalse($store->lock('foo', 10)->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 79: public function testRedisLockCanBeAcquiredAndReleasedWithJsonSerialization() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 79: public function testRedisLockCanBeAcquiredAndReleasedWithJsonSerialization() - line 88: $client = $store->lockConnection()->client(); - line 90: $client->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_JSON); - line 91: $store->lock('foo')->forceRelease(); - line 92: $this->assertNull($store->lockConnection()->get($store->getPrefix().'foo')); - line 93: $lock = $store->lock('foo', 10); - line 95: $this->assertFalse($store->lock('foo', 10)->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 100: public function testRedisLockCanBeAcquiredAndReleasedWithIgbinarySerialization() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 100: public function testRedisLockCanBeAcquiredAndReleasedWithIgbinarySerialization() - line 103: $this->markTestSkipped('Redis extension is not configured to support the igbinary serializer.'); - line 113: $client = $store->lockConnection()->client(); - line 115: $client->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_IGBINARY); - line 116: $store->lock('foo')->forceRelease(); - line 117: $this->assertNull($store->lockConnection()->get($store->getPrefix().'foo')); - line 118: $lock = $store->lock('foo', 10); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 125: public function testRedisLockCanBeAcquiredAndReleasedWithMsgpackSerialization() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 125: public function testRedisLockCanBeAcquiredAndReleasedWithMsgpackSerialization() - line 128: $this->markTestSkipped('Redis extension is not configured to support the msgpack serializer.'); - line 138: $client = $store->lockConnection()->client(); - line 140: $client->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_MSGPACK); - line 141: $store->lock('foo')->forceRelease(); - line 142: $this->assertNull($store->lockConnection()->get($store->getPrefix().'foo')); - line 143: $lock = $store->lock('foo', 10); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 151: public function testRedisLockCanBeAcquiredAndReleasedWithLzfCompression() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 151: public function testRedisLockCanBeAcquiredAndReleasedWithLzfCompression() - line 154: $this->markTestSkipped('Redis extension is not configured to support the lzf compression.'); - line 164: $client = $store->lockConnection()->client(); - line 166: $client->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE); - line 167: $client->setOption(Redis::OPT_COMPRESSION, Redis::COMPRESSION_LZF); - line 168: $store->lock('foo')->forceRelease(); - line 169: $this->assertNull($store->lockConnection()->get($store->getPrefix().'foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 178: public function testRedisLockCanBeAcquiredAndReleasedWithZstdCompression() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 18. Evidence: - line 178: public function testRedisLockCanBeAcquiredAndReleasedWithZstdCompression() - line 181: $this->markTestSkipped('Redis extension is not configured to support the zstd compression.'); - line 191: $client = $store->lockConnection()->client(); - line 193: $client->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE); - line 194: $client->setOption(Redis::OPT_COMPRESSION, Redis::COMPRESSION_ZSTD); - line 195: $client->setOption(Redis::OPT_COMPRESSION_LEVEL, Redis::COMPRESSION_ZSTD_DEFAULT); - line 196: $store->lock('foo')->forceRelease(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 215: public function testRedisLockCanBeAcquiredAndReleasedWithLz4Compression() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 25. Evidence: - line 215: public function testRedisLockCanBeAcquiredAndReleasedWithLz4Compression() - line 218: $this->markTestSkipped('Redis extension is not configured to support the lz4 compression.'); - line 227: $client = $store->lockConnection()->client(); - line 229: $client->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE); - line 230: $client->setOption(Redis::OPT_COMPRESSION, Redis::COMPRESSION_LZ4); - line 231: $client->setOption(Redis::OPT_COMPRESSION_LEVEL, 1); - line 232: $store->lock('foo')->forceRelease(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 260: public function testRedisLockCanBeAcquiredAndReleasedWithSerializationAndCompression() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 260: public function testRedisLockCanBeAcquiredAndReleasedWithSerializationAndCompression() - line 263: $this->markTestSkipped('Redis extension is not configured to support the lzf compression.'); - line 273: $client = $store->lockConnection()->client(); - line 275: $client->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP); - line 276: $client->setOption(Redis::OPT_COMPRESSION, Redis::COMPRESSION_LZF); - line 277: $store->lock('foo')->forceRelease(); - line 278: $this->assertNull($store->lockConnection()->get($store->getPrefix().'foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Cache/RedisCacheIntegrationTest.php - Test @ line 34: public function testRedisCacheAddTwice($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 34: public function testRedisCacheAddTwice($driver) - line 38: $this->assertTrue($repository->add('k', 'v', 3600)); - line 39: $this->assertFalse($repository->add('k', 'v', 3600)); - line 40: $this->assertGreaterThan(3500, $this->redis[$driver]->connection()->ttl('k')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 47: public function testRedisCacheRateLimiter($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 47: public function testRedisCacheRateLimiter($driver) - line 53: $this->assertFalse($rateLimiter->tooManyAttempts('key', 1)); - line 54: $this->assertEquals(1, $rateLimiter->hit('key', 60)); - line 55: $this->assertTrue($rateLimiter->tooManyAttempts('key', 1)); - line 56: $this->assertFalse($rateLimiter->tooManyAttempts('key', 2)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 65: public function testRedisCacheAddFalse($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 65: public function testRedisCacheAddFalse($driver) - line 69: $repository->forever('k', false); - line 70: $this->assertFalse($repository->add('k', 'v', 60)); - line 71: $this->assertEquals(-1, $this->redis[$driver]->connection()->ttl('k')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 80: public function testRedisCacheAddNull($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 80: public function testRedisCacheAddNull($driver) - line 84: $repository->forever('k', null); - line 85: $this->assertFalse($repository->add('k', 'v', 60)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Cache/RedisCacheLockTest.php - Test @ line 28: public function testRedisLocksCanBeAcquiredAndReleased() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 28: public function testRedisLocksCanBeAcquiredAndReleased() - line 30: Cache::store('redis')->lock('foo')->forceRelease(); - line 32: $lock = Cache::store('redis')->lock('foo', 10); - line 34: $this->assertFalse(Cache::store('redis')->lock('foo', 10)->get()); - line 35: $lock->release(); - line 37: $lock = Cache::store('redis')->lock('foo', 10); - line 39: $this->assertFalse(Cache::store('redis')->lock('foo', 10)->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 50: public function testRedisLocksCanBlockForSeconds() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 50: public function testRedisLocksCanBlockForSeconds() - line 52: Cache::store('redis')->lock('foo')->forceRelease(); - line 53: $this->assertSame('taylor', Cache::store('redis')->lock('foo', 10)->block(1, function () { - line 57: Cache::store('redis')->lock('foo')->forceRelease(); - line 58: $this->assertTrue(Cache::store('redis')->lock('foo', 10)->block(1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 61: public function testConcurrentRedisLocksAreReleasedSafely() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 61: public function testConcurrentRedisLocksAreReleasedSafely() - line 63: Cache::store('redis')->lock('foo')->forceRelease(); - line 65: $firstLock = Cache::store('redis')->lock('foo', 1); - line 69: $secondLock = Cache::store('redis')->lock('foo', 10); - line 72: $firstLock->release(); - line 74: $this->assertFalse(Cache::store('redis')->lock('foo')->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 77: public function testRedisLocksWithFailedBlockCallbackAreReleased() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 77: public function testRedisLocksWithFailedBlockCallbackAreReleased() - line 79: Cache::store('redis')->lock('foo')->forceRelease(); - line 81: $firstLock = Cache::store('redis')->lock('foo', 10); - line 84: $firstLock->block(1, function () { - line 93: $secondLock = Cache::store('redis')->lock('foo', 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 98: public function testRedisLocksCanBeReleasedUsingOwnerToken() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 98: public function testRedisLocksCanBeReleasedUsingOwnerToken() - line 100: Cache::store('redis')->lock('foo')->forceRelease(); - line 102: $firstLock = Cache::store('redis')->lock('foo', 10); - line 104: $owner = $firstLock->owner(); - line 106: $secondLock = Cache::store('redis')->restoreLock('foo', $owner); - line 107: $secondLock->release(); - line 109: $this->assertTrue(Cache::store('redis')->lock('foo')->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 112: public function testOwnerStatusCanBeCheckedAfterRestoringLock() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 112: public function testOwnerStatusCanBeCheckedAfterRestoringLock() - line 114: Cache::store('redis')->lock('foo')->forceRelease(); - line 116: $firstLock = Cache::store('redis')->lock('foo', 10); - line 118: $owner = $firstLock->owner(); - line 120: $secondLock = Cache::store('redis')->restoreLock('foo', $owner); - line 121: $this->assertTrue($secondLock->isOwnedByCurrentProcess()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 124: public function testOtherOwnerDoesNotOwnLockAfterRestore() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 124: public function testOtherOwnerDoesNotOwnLockAfterRestore() - line 126: Cache::store('redis')->lock('foo')->forceRelease(); - line 128: $firstLock = Cache::store('redis')->lock('foo', 10); - line 129: $this->assertTrue($firstLock->isOwnedBy(null)); - line 131: $this->assertTrue($firstLock->isOwnedBy($firstLock->owner())); - line 133: $secondLock = Cache::store('redis')->restoreLock('foo', 'other_owner'); - line 134: $this->assertTrue($secondLock->isOwnedBy($firstLock->owner())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Cache/RedisStoreTest.php - Test @ line 61: public function testItCanStoreInfinite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 61: public function testItCanStoreInfinite() - line 63: Cache::store('redis')->clear(); - line 65: $result = Cache::store('redis')->put('foo', INF); - line 69: $result = Cache::store('redis')->put('bar', -INF); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 74: public function testItCanStoreNan() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 74: public function testItCanStoreNan() - line 76: Cache::store('redis')->clear(); - line 78: $result = Cache::store('redis')->put('foo', NAN); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 83: public function testItCanExpireWithZeroTTL() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 83: public function testItCanExpireWithZeroTTL() - line 85: Cache::store('redis')->clear(); - line 87: $result = Cache::store('redis')->put('foo', 10, 10); - line 90: $result = Cache::store('redis')->put('foo', 10, 0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 99: public function testTagsCanBeAccessed(string $cachePrefix) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 99: public function testTagsCanBeAccessed(string $cachePrefix) - line 103: Cache::store('redis')->clear(); - line 105: Cache::store('redis')->tags(['people', 'author'])->put('name', 'Sally', 5); - line 106: Cache::store('redis')->tags(['people', 'author'])->put('age', 30, 5); - line 108: $this->assertEquals('Sally', Cache::store('redis')->tags(['people', 'author'])->get('name')); - line 109: $this->assertEquals(30, Cache::store('redis')->tags(['people', 'author'])->get('age')); - line 111: Cache::store('redis')->tags(['people', 'author'])->flush(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 117: public function testTagEntriesCanBeStoredForever() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 117: public function testTagEntriesCanBeStoredForever() - line 119: Cache::store('redis')->clear(); - line 121: Cache::store('redis')->tags(['people', 'author'])->forever('name', 'Sally'); - line 122: Cache::store('redis')->tags(['people', 'author'])->forever('age', 30); - line 124: $this->assertEquals('Sally', Cache::store('redis')->tags(['people', 'author'])->get('name')); - line 125: $this->assertEquals(30, Cache::store('redis')->tags(['people', 'author'])->get('age')); - line 127: Cache::store('redis')->tags(['people', 'author'])->flush(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 133: public function testTagEntriesCanBeIncremented() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 133: public function testTagEntriesCanBeIncremented() - line 135: Cache::store('redis')->clear(); - line 137: Cache::store('redis')->tags(['votes'])->put('person-1', 0, 5); - line 138: Cache::store('redis')->tags(['votes'])->increment('person-1'); - line 139: Cache::store('redis')->tags(['votes'])->increment('person-1'); - line 141: $this->assertEquals(2, Cache::store('redis')->tags(['votes'])->get('person-1')); - line 143: Cache::store('redis')->tags(['votes'])->decrement('person-1'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 149: public function testIncrementedTagEntriesProperlyTurnStale() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 149: public function testIncrementedTagEntriesProperlyTurnStale() - line 151: Cache::store('redis')->clear(); - line 153: Cache::store('redis')->tags(['votes'])->add('person-1', 0, $seconds = 1); - line 154: Cache::store('redis')->tags(['votes'])->increment('person-1'); - line 155: Cache::store('redis')->tags(['votes'])->increment('person-1'); - line 159: Cache::store('redis')->tags(['votes'])->flushStale(); - line 161: $keyCount = Cache::store('redis')->connection()->keys('*'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 165: public function testPastTtlTagEntriesAreNotAdded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 165: public function testPastTtlTagEntriesAreNotAdded() - line 167: Cache::store('redis')->clear(); - line 169: Cache::store('redis')->tags(['votes'])->add('person-1', 0, new DateTime('yesterday')); - line 171: $value = Cache::store('redis')->tags(['votes'])->get('person-1'); - line 174: $keyCount = Cache::store('redis')->connection()->keys('*'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 165: public function testPastTtlTagEntriesAreNotAdded() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 178: public function testPutPastTtlTagEntriesProperlyTurnStale() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 178: public function testPutPastTtlTagEntriesProperlyTurnStale() - line 180: Cache::store('redis')->clear(); - line 182: Cache::store('redis')->tags(['votes'])->put('person-1', 0, new DateTime('yesterday')); - line 183: Cache::store('redis')->tags(['votes'])->flushStale(); - line 185: $keyCount = Cache::store('redis')->connection()->keys('*'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 189: public function testTagsCanBeFlushedBySingleKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 189: public function testTagsCanBeFlushedBySingleKey() - line 191: Cache::store('redis')->clear(); - line 193: Cache::store('redis')->tags(['people', 'author'])->put('person-1', 'Sally', 5); - line 194: Cache::store('redis')->tags(['people', 'artist'])->put('person-2', 'John', 5); - line 196: Cache::store('redis')->tags(['artist'])->flush(); - line 198: $this->assertEquals('Sally', Cache::store('redis')->tags(['people', 'author'])->get('person-1')); - line 199: $this->assertNull(Cache::store('redis')->tags(['people', 'artist'])->get('person-2')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 205: public function testStaleEntriesCanBeFlushed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 205: public function testStaleEntriesCanBeFlushed() - line 207: Cache::store('redis')->clear(); - line 209: Cache::store('redis')->tags(['people', 'author'])->put('person-1', 'Sally', 1); - line 210: Cache::store('redis')->tags(['people', 'artist'])->put('person-2', 'John', 1); - line 215: Cache::store('redis')->tags(['people', 'author'])->put('person-3', 'Jennifer', 5); - line 217: Cache::store('redis')->tags(['people'])->flushStale(); - line 219: $keyCount = Cache::store('redis')->connection()->keys('*'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 223: public function testMultipleItemsCanBeSetAndRetrieved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 223: public function testMultipleItemsCanBeSetAndRetrieved() - line 226: $result = $store->put('foo', 'bar', 10); - line 227: $resultMany = $store->putMany([ - line 238: ], $store->many(['foo', 'fizz', 'quz', 'norf'])); - line 240: $this->assertEquals([], $store->many([])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 243: public function testPutManyCallsPutWhenClustered() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 243: public function testPutManyCallsPutWhenClustered() - line 245: $store = m::mock(RedisStore::class)->makePartial(); - line 251: $store->putMany([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 245: $store = m::mock(RedisStore::class)->makePartial(); - line 246: $store->expects('connection')->andReturn(m::mock(PhpRedisClusterConnection::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 243: public function testPutManyCallsPutWhenClustered() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 257: public function testIncrementWithSerializationEnabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 257: public function testIncrementWithSerializationEnabled() - line 259: $this->markTestSkipped('Test makes no sense anymore. Application must explicitly wrap such code in runClean() when used with serialization/compression enabled.'); - line 264: $client = $store->connection()->client(); - line 265: $client->setOption(\Redis::OPT_SERIALIZER, \Redis::SERIALIZER_PHP); - line 267: $store->flush(); - line 268: $store->add('foo', 1, 10); - line 271: $store->increment('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 275: public function testTagsCanBeFlushedWithLargeNumberOfKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 275: public function testTagsCanBeFlushedWithLargeNumberOfKeys() - line 277: Cache::store('redis')->clear(); - line 282: Cache::store('redis')->tags($tags)->put("key:{$i}", "value:{$i}", 300); - line 285: $this->assertEquals('value:1', Cache::store('redis')->tags($tags)->get('key:1')); - line 286: $this->assertEquals('value:2500', Cache::store('redis')->tags($tags)->get('key:2500')); - line 287: $this->assertEquals('value:5000', Cache::store('redis')->tags($tags)->get('key:5000')); - line 289: Cache::store('redis')->tags($tags)->flush(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Cache/RepositoryTest.php - Test @ line 157: public function testItHandlesStrayTtlKeyAfterMainKeyIsForgotten() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 157: public function testItHandlesStrayTtlKeyAfterMainKeyIsForgotten() - line 162: $value = $cache->flexible('count', [5, 10], function () use (&$count) { - line 171: $cache->forget('count'); - line 173: $value = $cache->flexible('count', [5, 10], function () use (&$count) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 157: public function testItHandlesStrayTtlKeyAfterMainKeyIsForgotten() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 182: public function testItImplicitlyClearsTtlKeysFromDatabaseCache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 182: public function testItImplicitlyClearsTtlKeysFromDatabaseCache() - line 184: $this->freezeTime(); - line 187: $cache->flexible('count', [5, 10], fn () => 1); - line 189: $this->assertTrue($cache->has('count')); - line 190: $this->assertTrue($cache->has('illuminate:cache:flexible:created:count')); - line 192: $cache->forget('count'); - line 194: $this->assertEmpty($cache->getConnection()->table('cache')->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 211: public function testItImplicitlyClearsTtlKeysFromFileDriver() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 17. Evidence: - line 211: public function testItImplicitlyClearsTtlKeysFromFileDriver() - line 213: $this->freezeTime(); - line 216: $cache->flexible('count', [5, 10], fn () => 1); - line 218: $this->assertTrue($cache->has('count')); - line 219: $this->assertTrue($cache->has('illuminate:cache:flexible:created:count')); - line 221: $cache->forget('count'); - line 223: $this->assertFalse($cache->getFilesystem()->exists($cache->path('count'))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 241: public function testItCanAlwaysDefer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 241: public function testItCanAlwaysDefer() - line 243: $this->freezeTime(); - line 248: $cache->flexible('foo', [10, 20], function () use (&$count) { - line 255: Carbon::setTestNow(now()->addSeconds(11)); - line 258: $cache->flexible('foo', [10, 20], function () use (&$count) { - line 263: $this->assertTrue(defer()->first()->always); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 266: public function testItRoundsDateTimeValuesToAccountForTimePassedDuringScriptExecution() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 266: public function testItRoundsDateTimeValuesToAccountForTimePassedDuringScriptExecution() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Concurrency/ConcurrencyTest.php - Test @ line 46: public function testRunHandlerProcessErrorCode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 46: public function testRunHandlerProcessErrorCode() - line 48: $this->expectException(Exception::class); - line 50: $processDriver = new ProcessDriver($app->make(ProcessFactory::class)); - line 51: $processDriver->run([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 46: public function testRunHandlerProcessErrorCode() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 56: public function testOutputIsMappedToArrayInput() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 56: public function testOutputIsMappedToArrayInput() - line 63: $processOutput = Concurrency::driver('process')->run($input); - line 69: $syncOutput = Concurrency::driver('sync')->run($input); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 89: public function testRunHandlerProcessErrorWithDefaultExceptionWithoutParam() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 89: public function testRunHandlerProcessErrorWithDefaultExceptionWithoutParam() - line 91: $this->expectException(Exception::class); - line 92: $this->expectExceptionMessage('This is a different exception'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 89: public function testRunHandlerProcessErrorWithDefaultExceptionWithoutParam() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 101: public function testRunHandlerProcessErrorWithCustomExceptionWithoutParam() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 101: public function testRunHandlerProcessErrorWithCustomExceptionWithoutParam() - line 103: $this->expectException(ExceptionWithoutParam::class); - line 104: $this->expectExceptionMessage('Test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 101: public function testRunHandlerProcessErrorWithCustomExceptionWithoutParam() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 110: public function testRunHandlerProcessErrorWithCustomExceptionWithParam() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 110: public function testRunHandlerProcessErrorWithCustomExceptionWithParam() - line 112: $this->expectException(ExceptionWithParam::class); - line 113: $this->expectExceptionMessage('API request to https://api.example.com failed with status 400 Bad Request'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 110: public function testRunHandlerProcessErrorWithCustomExceptionWithParam() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 135: public function testRunPreservesCallbackOrder(string $driver) Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 135: public function testRunPreservesCallbackOrder(string $driver) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Concurrency/Console/InvokeSerializedClosureCommandTest.php - Test @ line 32: public function testItCanInvokeSerializedClosureFromArgument() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 32: public function testItCanInvokeSerializedClosureFromArgument() - line 39: $output = new BufferedOutput; - line 47: $result = json_decode($output->fetch(), true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 54: public function testItCanInvokeSerializedClosureFromEnvironment() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 54: public function testItCanInvokeSerializedClosureFromEnvironment() - line 64: $output = new BufferedOutput; - line 70: $result = json_decode($output->fetch(), true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 61: $_SERVER['LARAVEL_INVOKABLE_CLOSURE'] = base64_encode($serialized); - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 77: unset($_SERVER['LARAVEL_INVOKABLE_CLOSURE']); - Test @ line 80: public function testItReturnsNullWhenNoClosureIsProvided() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 80: public function testItReturnsNullWhenNoClosureIsProvided() - line 83: $output = new BufferedOutput; - line 89: $result = json_decode($output->fetch(), true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 96: public function testItHandlesExceptionsGracefully() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 96: public function testItHandlesExceptionsGracefully() - line 103: $output = new BufferedOutput; - line 111: $result = json_decode($output->fetch(), true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 119: public function testItHandlesCustomExceptionWithParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 119: public function testItHandlesCustomExceptionWithParameters() - line 126: $output = new BufferedOutput; - line 134: $result = json_decode($output->fetch(), true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Console/Events/EventListCommandTest.php - Test @ line 24: public function testDisplayEmptyList() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 24: public function testDisplayEmptyList() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 31: public function testDisplayEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 31: public function testDisplayEvents() - line 33: $this->dispatcher->subscribe(ExampleSubscriber::class); - line 34: $this->dispatcher->listen(ExampleEvent::class, ExampleListener::class); - line 35: $this->dispatcher->listen(ExampleEvent::class, ExampleQueueListener::class); - line 36: $this->dispatcher->listen(ExampleBroadcastEvent::class, ExampleBroadcastListener::class); - line 37: $this->dispatcher->listen(ExampleEvent::class, fn () => ''); - line 39: $unixFilePath = str_replace('\\', '/', __FILE__); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 31: public function testDisplayEvents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 51: public function testDisplayFilteredEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 51: public function testDisplayFilteredEvent() - line 53: $this->dispatcher->subscribe(ExampleSubscriber::class); - line 54: $this->dispatcher->listen(ExampleEvent::class, ExampleListener::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 51: public function testDisplayFilteredEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 71: public function testDisplayEventsAsJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 71: public function testDisplayEventsAsJson() - line 73: $this->dispatcher->subscribe(ExampleSubscriber::class); - line 74: $this->dispatcher->listen(ExampleEvent::class, ExampleListener::class); - line 75: $this->dispatcher->listen(ExampleEvent::class, ExampleQueueListener::class); - line 76: $this->dispatcher->listen(ExampleBroadcastEvent::class, ExampleBroadcastListener::class); - line 77: $this->dispatcher->listen(ExampleEvent::class, fn () => ''); - line 81: $this->withoutMockingConsoleOutput()->artisan(EventListCommand::class, ['--json' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 93: public function testDisplayFilteredEventAsJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 93: public function testDisplayFilteredEventAsJson() - line 95: $this->dispatcher->subscribe(ExampleSubscriber::class); - line 96: $this->dispatcher->listen(ExampleEvent::class, ExampleListener::class); - line 98: $this->withoutMockingConsoleOutput()->artisan(EventListCommand::class, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Console/Scheduling/CallbackEventTest.php - Test @ line 13: public function testDefaultResultIsSuccess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 13: public function testDefaultResultIsSuccess() - line 18: }))->onSuccess(function () use (&$success) { - line 24: $event->run($this->app); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 17: $event = (new CallbackEvent(m::mock(EventMutex::class), function () { - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 13: public function testDefaultResultIsSuccess() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 29: public function testFalseResponseIsFailure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 29: public function testFalseResponseIsFailure() - line 35: }))->onSuccess(function () use (&$success) { - line 41: $event->run($this->app); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 33: $event = (new CallbackEvent(m::mock(EventMutex::class), function () { - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 29: public function testFalseResponseIsFailure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 46: public function testExceptionIsFailure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 46: public function testExceptionIsFailure() - line 52: }))->onSuccess(function () use (&$success) { - line 59: $event->run($this->app); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 50: $event = (new CallbackEvent(m::mock(EventMutex::class), function () { - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 46: public function testExceptionIsFailure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 66: public function testExceptionBubbles() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 66: public function testExceptionBubbles() - line 68: $event = new CallbackEvent(m::mock(EventMutex::class), function () { - line 72: $this->expectException(Exception::class); - line 74: $event->run($this->app); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 68: $event = new CallbackEvent(m::mock(EventMutex::class), function () { - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 66: public function testExceptionBubbles() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Console/Scheduling/EventPingTest.php - Test @ line 19: public function testPingRescuesTransferExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 19: public function testPingRescuesTransferExceptions() - line 24: ->with(m::type(ServerException::class)); - line 32: $this->swap(HttpClient::class, $httpMock); - line 38: $event->pingBefore('https://httpstat.us/500') - line 43: $event->callBeforeCallbacks($this->app->make(Container::class)); - line 44: $event->callAfterCallbacks($this->app->make(Container::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 34: $event = new Event(m::mock(EventMutex::class), 'php -i'); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 19: public function testPingRescuesTransferExceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Console/Scheduling/ScheduleGroupTest.php - Test @ line 16: public function testGroupCanSetScheduleCronExpression() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 16: public function testGroupCanSetScheduleCronExpression() - line 21: ->daily() - line 26: $events = $schedule->events(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 124: public function testGroupedScheduleExecution($time, $expected, $description) Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 124: public function testGroupedScheduleExecution($time, $expected, $description) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 185: public function testGroupedPendingEventAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 185: public function testGroupedPendingEventAttribute() - line 188: $schedule->weekdays()->group(function ($schedule) { - line 194: $events = $schedule->events(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 200: public function testGroupedPendingEventAttributesWithoutOverlapping() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 200: public function testGroupedPendingEventAttributesWithoutOverlapping() - line 203: $schedule->weekdays()->withoutOverlapping()->group(function ($schedule) { - line 210: $events = $schedule->events(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Console/Scheduling/ScheduleListCommandTest.php - Test @ line 28: public function testDisplayEmptySchedule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 28: public function testDisplayEmptySchedule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 44: public function testDisplaySchedule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 44: public function testDisplaySchedule() - line 46: $this->schedule->command(FooCommand::class)->quarterly(); - line 47: $this->schedule->command('inspire')->twiceDaily(14, 18); - line 48: $this->schedule->command('foobar', ['a' => 'b'])->everyMinute(); - line 49: $this->schedule->job(FooJob::class)->everyMinute(); - line 50: $this->schedule->job(new FooParamJob('test'))->everyMinute(); - line 51: $this->schedule->job(FooJob::class)->name('foo-named-job')->everyMinute(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 44: public function testDisplaySchedule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 78: public function testDisplayScheduleAsJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 78: public function testDisplayScheduleAsJson() - line 80: $this->schedule->command(FooCommand::class)->quarterly(); - line 81: $this->schedule->command('inspire')->twiceDaily(14, 18); - line 82: $this->schedule->command('foobar', ['a' => 'b'])->everyMinute(); - line 83: $this->schedule->job(FooJob::class)->everyMinute(); - line 84: $this->schedule->job(new FooParamJob('test'))->everyMinute(); - line 85: $this->schedule->job(FooJob::class)->name('foo-named-job')->everyMinute(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 122: public function testDisplayScheduleAsJsonWithSpecificEnvironment() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 122: public function testDisplayScheduleAsJsonWithSpecificEnvironment() - line 125: $this->schedule->command(FooCommand::class)->quarterly()->environments($environment); - line 127: $this->withoutMockingConsoleOutput()->artisan(ScheduleListCommand::class, ['--json' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 140: public function testDisplayScheduleWithSortAsJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 140: public function testDisplayScheduleWithSortAsJson() - line 142: $this->schedule->command(FooCommand::class)->quarterly(); - line 143: $this->schedule->command('inspire')->twiceDaily(14, 18); - line 144: $this->schedule->command('foobar', ['a' => 'b'])->everyMinute(); - line 146: $this->withoutMockingConsoleOutput()->artisan(ScheduleListCommand::class, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 171: public function testDisplayScheduleAsJsonWithTimezone() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 171: public function testDisplayScheduleAsJsonWithTimezone() - line 173: $this->schedule->command('inspire')->daily(); - line 175: $this->withoutMockingConsoleOutput()->artisan(ScheduleListCommand::class, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 191: public function testDisplayScheduleAsJsonInVerboseMode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 191: public function testDisplayScheduleAsJsonInVerboseMode() - line 193: $this->schedule->command(FooCommand::class)->quarterly(); - line 194: $this->schedule->command('inspire')->everyMinute(); - line 195: $this->schedule->call(fn () => '')->everyMinute(); - line 197: $this->withoutMockingConsoleOutput()->artisan(ScheduleListCommand::class, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 220: public function testDisplayScheduleWithSort() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 220: public function testDisplayScheduleWithSort() - line 222: $this->schedule->command(FooCommand::class)->quarterly(); - line 223: $this->schedule->command('inspire')->twiceDaily(14, 18); - line 224: $this->schedule->command('foobar', ['a' => 'b'])->everyMinute(); - line 225: $this->schedule->job(FooJob::class)->everyMinute(); - line 226: $this->schedule->job(new FooParamJob('test'))->everyMinute(); - line 227: $this->schedule->job(FooJob::class)->name('foo-named-job')->everyMinute(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 220: public function testDisplayScheduleWithSort() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 254: public function testDisplayScheduleInVerboseMode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 254: public function testDisplayScheduleInVerboseMode() - line 256: $this->schedule->command(FooCommand::class)->everyMinute(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 254: public function testDisplayScheduleInVerboseMode() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 264: public function testDisplayScheduleSubMinute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 264: public function testDisplayScheduleSubMinute() - line 266: $this->schedule->command('inspire')->weekly()->everySecond(); - line 267: $this->schedule->command('inspire')->everyTwoSeconds(); - line 268: $this->schedule->command('inspire')->everyFiveSeconds(); - line 269: $this->schedule->command('inspire')->everyTenSeconds(); - line 270: $this->schedule->command('inspire')->everyFifteenSeconds(); - line 271: $this->schedule->command('inspire')->everyTwentySeconds(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 264: public function testDisplayScheduleSubMinute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 285: public function testClosureCommandsMayBeScheduled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 285: public function testClosureCommandsMayBeScheduled() - line 290: Artisan::command('one', $closure)->weekly()->everySecond(); - line 291: Artisan::command('two', $closure)->everyTwoSeconds(); - line 292: Artisan::command('three', $closure)->everyFiveSeconds(); - line 293: Artisan::command('four', $closure)->everyTenSeconds(); - line 294: Artisan::command('five', $closure)->everyFifteenSeconds(); - line 295: Artisan::command('six', $closure)->everyTwentySeconds()->hourly(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 285: public function testClosureCommandsMayBeScheduled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Console/Scheduling/ScheduleRunCommandTest.php - Test @ line 31: public function test_failing_command_in_foreground_triggers_event() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 31: public function test_failing_command_in_foreground_triggers_event() - line 40: $schedule = $this->app->make(Schedule::class); - line 41: $task = $schedule->exec('exit 1') - line 45: $task->when(function () { - line 47: }); - line 57: $event->exception->getMessage() === 'Scheduled command [exit 1] failed with exit code [1].'; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 64: public function test_failing_command_in_background_does_not_trigger_event() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 64: public function test_failing_command_in_background_does_not_trigger_event() - line 73: $schedule = $this->app->make(Schedule::class); - line 74: $task = $schedule->exec('exit 1') - line 79: $task->when(function () { - line 81: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 95: public function test_successful_command_does_not_trigger_event() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 95: public function test_successful_command_does_not_trigger_event() - line 104: $schedule = $this->app->make(Schedule::class); - line 105: $task = $schedule->exec('exit 0') - line 109: $task->when(function () { - line 111: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 125: public function test_command_with_no_explicit_return_does_not_trigger_event() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 125: public function test_command_with_no_explicit_return_does_not_trigger_event() - line 134: $schedule = $this->app->make(Schedule::class); - line 136: $task = $schedule->exec($command) - line 140: $task->when(function () { - line 142: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 156: public function test_successful_command_in_background_does_not_trigger_event() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 156: public function test_successful_command_in_background_does_not_trigger_event() - line 165: $schedule = $this->app->make(Schedule::class); - line 166: $task = $schedule->exec('exit 0') - line 171: $task->when(function () { - line 173: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 187: public function test_command_with_no_explicit_return_in_background_does_not_trigger_event() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 187: public function test_command_with_no_explicit_return_in_background_does_not_trigger_event() - line 196: $schedule = $this->app->make(Schedule::class); - line 197: $task = $schedule->exec('true') - line 202: $task->when(function () { - line 204: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Console/Scheduling/ScheduleTestCommandTest.php - Test @ line 25: public function testRunNoDefinedCommands() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 25: public function testRunNoDefinedCommands() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 32: public function testRunNoMatchingCommand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 32: public function testRunNoMatchingCommand() - line 34: $this->schedule->command(BarCommandStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 32: public function testRunNoMatchingCommand() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 41: public function testRunUsingNameOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 41: public function testRunUsingNameOption() - line 43: $this->schedule->command(BarCommandStub::class)->name('bar-command'); - line 44: $this->schedule->job(BarJobStub::class); - line 45: $this->schedule->call(fn () => true)->name('callback'); - line 49: : "Running ['artisan' bar:command]"; - line 53: ->expectsOutputToContain($expectedOutput); - line 57: ->expectsOutputToContain(sprintf('Running [%s]', BarJobStub::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 41: public function testRunUsingNameOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 64: public function testRunUsingChoices() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 64: public function testRunUsingChoices() - line 66: $this->schedule->command(BarCommandStub::class)->name('bar-command'); - line 67: $this->schedule->job(BarJobStub::class); - line 68: $this->schedule->call(fn () => true)->name('callback'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 64: public function testRunUsingChoices() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Console/Scheduling/SubMinuteSchedulingTest.php - Test @ line 23: public function test_it_doesnt_wait_for_sub_minute_events_when_nothing_is_scheduled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 23: public function test_it_doesnt_wait_for_sub_minute_events_when_nothing_is_scheduled() - line 25: Carbon::setTestNow(now()->startOfMinute()); - line 26: Sleep::fake(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function test_it_doesnt_wait_for_sub_minute_events_when_nothing_is_scheduled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 34: public function test_it_doesnt_wait_for_sub_minute_events_when_none_are_scheduled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 34: public function test_it_doesnt_wait_for_sub_minute_events_when_none_are_scheduled() - line 37: ->call(fn () => true) - line 40: Carbon::setTestNow(now()->startOfMinute()); - line 41: Sleep::fake(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function test_it_doesnt_wait_for_sub_minute_events_when_none_are_scheduled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 50: public function test_it_runs_sub_minute_callbacks($frequency, $expectedRuns) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 50: public function test_it_runs_sub_minute_callbacks($frequency, $expectedRuns) - line 53: $this->schedule->call(function () use (&$runs) { - line 57: Carbon::setTestNow(now()->startOfMinute()); - line 59: Sleep::whenFakingSleep(fn ($duration) => Carbon::setTestNow(now()->add($duration))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 50: public function test_it_runs_sub_minute_callbacks($frequency, $expectedRuns) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 68: public function test_it_runs_multiple_sub_minute_callbacks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 68: public function test_it_runs_multiple_sub_minute_callbacks() - line 71: $this->schedule->call(function () use (&$everySecondRuns) { - line 76: $this->schedule->call(function () use (&$everyThirtySecondsRuns) { - line 80: Carbon::setTestNow(now()->startOfMinute()); - line 82: Sleep::whenFakingSleep(fn ($duration) => Carbon::setTestNow(now()->add($duration))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 68: public function test_it_runs_multiple_sub_minute_callbacks() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 92: public function test_sub_minute_scheduling_can_be_interrupted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 92: public function test_sub_minute_scheduling_can_be_interrupted() - line 95: $this->schedule->call(function () use (&$runs) { - line 99: Carbon::setTestNow(now()->startOfMinute()); - line 101: Sleep::fake(); - line 109: }); - line 116: $this->assertEquals(30, $startedAt->diffInSeconds(now())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 119: public function test_sub_minute_events_stop_for_the_rest_of_the_minute_once_maintenance_mode_is_enabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 119: public function test_sub_minute_events_stop_for_the_rest_of_the_minute_once_maintenance_mode_is_enabled() - line 122: $this->schedule->call(function () use (&$runs) { - line 128: Carbon::setTestNow(now()->startOfMinute()); - line 130: Sleep::fake(); - line 141: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 126: Config::set('app.maintenance.driver', 'cache'); - line 127: Config::set('app.maintenance.store', 'array'); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 119: public function test_sub_minute_events_stop_for_the_rest_of_the_minute_once_maintenance_mode_is_enabled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 150: public function test_sub_minute_events_can_be_run_in_maintenance_mode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 150: public function test_sub_minute_events_can_be_run_in_maintenance_mode() - line 153: $this->schedule->call(function () use (&$runs) { - line 159: Carbon::setTestNow(now()->startOfMinute()); - line 161: Sleep::fake(); - line 168: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 157: Config::set('app.maintenance.driver', 'cache'); - line 158: Config::set('app.maintenance.store', 'array'); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 150: public function test_sub_minute_events_can_be_run_in_maintenance_mode() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 177: public function test_sub_minute_scheduling_respects_filters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 177: public function test_sub_minute_scheduling_respects_filters() - line 180: $this->schedule->call(function () use (&$runs) { - line 184: Carbon::setTestNow(now()->startOfMinute()); - line 186: Sleep::whenFakingSleep(fn ($duration) => Carbon::setTestNow(now()->add($duration))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 177: public function test_sub_minute_scheduling_respects_filters() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 195: public function test_sub_minute_scheduling_can_run_on_one_server() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 195: public function test_sub_minute_scheduling_can_run_on_one_server() - line 198: $this->schedule->call(function () use (&$runs) { - line 202: $startedAt = now()->startOfMinute(); - line 205: Sleep::whenFakingSleep(fn ($duration) => Carbon::setTestNow(now()->add($duration))); - line 207: $this->app->instance(Schedule::class, clone $this->schedule); - line 217: $this->app->instance(Schedule::class, clone $this->schedule); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 195: public function test_sub_minute_scheduling_can_run_on_one_server() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Cookie/CookieTest.php - Test @ line 17: public function test_cookie_is_sent_back_with_proper_expire_time_when_should_expire_on_close() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 17: public function test_cookie_is_sent_back_with_proper_expire_time_when_should_expire_on_close() - line 23: })->middleware('web'); - line 26: $this->assertCount(2, $response->headers->getCookies()); - line 27: $this->assertEquals(0, $response->headers->getCookies()[1]->getExpiresTime()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 30: public function test_cookie_is_sent_back_with_proper_expire_time_with_respect_to_lifetime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 30: public function test_cookie_is_sent_back_with_proper_expire_time_with_respect_to_lifetime() - line 37: })->middleware('web'); - line 39: Carbon::setTestNow(Carbon::now()); - line 41: $this->assertCount(2, $response->headers->getCookies()); - line 42: $this->assertEquals(Carbon::now()->getTimestamp() + 60, $response->headers->getCookies()[1]->getExpiresTime()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/AfterQueryTest.php - Test @ line 36: public function testAfterQueryOnEloquentBuilder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 36: public function testAfterQueryOnEloquentBuilder() - line 38: AfterQueryUser::create(); - line 44: ->afterQuery(function (Collection $users) use ($afterQueryIds) { - line 54: $this->assertEqualsCanonicalizing($afterQueryIds->toArray(), $users->pluck('id')->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 57: public function testAfterQueryOnBaseBuilder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 57: public function testAfterQueryOnBaseBuilder() - line 59: AfterQueryUser::create(); - line 65: ->toBase() - line 76: $this->assertEqualsCanonicalizing($afterQueryIds->toArray(), $users->pluck('id')->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 79: public function testAfterQueryOnEloquentCursor() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 79: public function testAfterQueryOnEloquentCursor() - line 81: AfterQueryUser::create(); - line 87: ->afterQuery(function (Collection $users) use ($afterQueryIds) { - line 97: $this->assertEqualsCanonicalizing($afterQueryIds->toArray(), $users->pluck('id')->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 100: public function testAfterQueryOnBaseBuilderCursor() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 100: public function testAfterQueryOnBaseBuilderCursor() - line 102: AfterQueryUser::create(); - line 108: ->toBase() - line 119: $this->assertEqualsCanonicalizing($afterQueryIds->toArray(), $users->pluck('id')->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 122: public function testAfterQueryOnEloquentPluck() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 122: public function testAfterQueryOnEloquentPluck() - line 124: AfterQueryUser::create(); - line 130: ->afterQuery(function (Collection $userIds) use ($afterQueryIds) { - line 140: $this->assertEqualsCanonicalizing($afterQueryIds->toArray(), $userIds->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 143: public function testAfterQueryOnBaseBuilderPluck() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 143: public function testAfterQueryOnBaseBuilderPluck() - line 145: AfterQueryUser::create(); - line 151: ->toBase() - line 162: $this->assertEqualsCanonicalizing($afterQueryIds->toArray(), $userIds->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 165: public function testAfterQueryHookOnBelongsToManyRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 165: public function testAfterQueryHookOnBelongsToManyRelationship() - line 167: $user = AfterQueryUser::create(); - line 171: $user->posts()->attach($firstPost); - line 172: $user->posts()->attach($secondPost); - line 176: $posts = $user->posts() - line 187: $this->assertEqualsCanonicalizing($afterQueryIds->toArray(), $posts->pluck('id')->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 165: public function testAfterQueryHookOnBelongsToManyRelationship() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 190: public function testAfterQueryHookOnHasManyThroughRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 190: public function testAfterQueryHookOnHasManyThroughRelationship() - line 192: $user = AfterQueryUser::create(); - line 200: $teamMates = $user->teamMates() - line 211: $this->assertEqualsCanonicalizing($afterQueryIds->toArray(), $teamMates->pluck('id')->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 190: public function testAfterQueryHookOnHasManyThroughRelationship() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 214: public function testAfterQueryOnEloquentBuilderCanAlterReturnedResult() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 214: public function testAfterQueryOnEloquentBuilderCanAlterReturnedResult() - line 216: $firstUser = AfterQueryUser::create(); - line 220: ->afterQuery(function () { - line 228: ->afterQuery(function () { - line 236: ->afterQuery(function ($users) use ($firstUser) { - line 241: $this->assertEquals(collect(['foo', 'bar']), $users->collect()); - line 244: ->afterQuery(function ($users) use ($firstUser) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 280: public function testAfterQueryOnBaseBuilderCanAlterReturnedResult() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 280: public function testAfterQueryOnBaseBuilderCanAlterReturnedResult() - line 282: $firstUser = AfterQueryUser::create(); - line 286: ->toBase() - line 295: ->toBase() - line 304: ->toBase() - line 310: $this->assertEquals(collect(['foo', 'bar']), $users->collect()); - line 313: ->toBase() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/ConnectionThreadsCountTest.php - Test @ line 9: public function testGetThreadsCount() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 9: public function testGetThreadsCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/DatabaseCacheStoreTest.php - Test @ line 14: public function testValueCanStoreNewCache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 14: public function testValueCanStoreNewCache() - line 16: $store = $this->getStore(); - line 18: $store->put('foo', 'bar', 60); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 23: public function testPutOperationShouldNotStoreExpired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 23: public function testPutOperationShouldNotStoreExpired() - line 25: $store = $this->getStore(); - line 27: $store->put('foo', 'bar', 0); - line 29: $this->assertDatabaseMissing($this->getCacheTableName(), ['key' => $this->withCachePrefix('foo')]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 32: public function testValueCanUpdateExistCache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 32: public function testValueCanUpdateExistCache() - line 34: $store = $this->getStore(); - line 36: $store->put('foo', 'bar', 60); - line 37: $store->put('foo', 'new-bar', 60); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 42: public function testValueCanUpdateExistCacheInTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 42: public function testValueCanUpdateExistCacheInTransaction() - line 44: $store = $this->getStore(); - line 46: $store->put('foo', 'bar', 60); - line 49: $store->put('foo', 'new-bar', 60); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 55: public function testAddOperationShouldNotStoreExpired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 55: public function testAddOperationShouldNotStoreExpired() - line 57: $store = $this->getStore(); - line 59: $result = $store->add('foo', 'bar', 0); - line 62: $this->assertDatabaseMissing($this->getCacheTableName(), ['key' => $this->withCachePrefix('foo')]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 65: public function testAddOperationCanStoreNewCache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 65: public function testAddOperationCanStoreNewCache() - line 67: $store = $this->getStore(); - line 69: $result = $store->add('foo', 'bar', 60); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 75: public function testAddOperationShouldNotUpdateExistCache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 75: public function testAddOperationShouldNotUpdateExistCache() - line 77: $store = $this->getStore(); - line 79: $store->add('foo', 'bar', 60); - line 80: $result = $store->add('foo', 'new-bar', 60); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 86: public function testAddOperationShouldNotUpdateExistCacheInTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 86: public function testAddOperationShouldNotUpdateExistCacheInTransaction() - line 88: $store = $this->getStore(); - line 90: $store->add('foo', 'bar', 60); - line 93: $result = $store->add('foo', 'new-bar', 60); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 100: public function testAddOperationCanUpdateIfCacheExpired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 100: public function testAddOperationCanUpdateIfCacheExpired() - line 102: $store = $this->getStore(); - line 104: $this->insertToCacheTable('foo', 'bar', 0); - line 105: $result = $store->add('foo', 'new-bar', 60); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 111: public function testAddOperationCanUpdateIfCacheExpiredInTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 111: public function testAddOperationCanUpdateIfCacheExpiredInTransaction() - line 113: $store = $this->getStore(); - line 115: $this->insertToCacheTable('foo', 'bar', 0); - line 118: $result = $store->add('foo', 'new-bar', 60); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 125: public function testGetOperationReturnNullIfExpired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 125: public function testGetOperationReturnNullIfExpired() - line 127: $store = $this->getStore(); - line 129: $this->insertToCacheTable('foo', 'bar', 0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 125: public function testGetOperationReturnNullIfExpired() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 136: public function testGetOperationCanDeleteExpired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 136: public function testGetOperationCanDeleteExpired() - line 138: $store = $this->getStore(); - line 140: $this->insertToCacheTable('foo', 'bar', 0); - line 144: $this->assertDatabaseMissing($this->getCacheTableName(), ['key' => $this->withCachePrefix('foo')]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 147: public function testForgetIfExpiredOperationCanDeleteExpired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 147: public function testForgetIfExpiredOperationCanDeleteExpired() - line 149: $store = $this->getStore(); - line 151: $this->insertToCacheTable('foo', 'bar', 0); - line 153: $store->forgetIfExpired('foo'); - line 155: $this->assertDatabaseMissing($this->getCacheTableName(), ['key' => $this->withCachePrefix('foo')]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 158: public function testForgetIfExpiredOperationShouldNotDeleteUnExpired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 158: public function testForgetIfExpiredOperationShouldNotDeleteUnExpired() - line 160: $store = $this->getStore(); - line 162: $store->put('foo', 'bar', 60); - line 164: $store->forgetIfExpired('foo'); - line 166: $this->assertDatabaseHas($this->getCacheTableName(), ['key' => $this->withCachePrefix('foo')]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 169: public function testMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 169: public function testMany() - line 171: $this->insertToCacheTable('first', 'a', 60); - line 172: $this->insertToCacheTable('second', 'b', 60); - line 174: $store = $this->getStore(); - line 186: ], $store->many(['first', 'second', 'third'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 189: public function testManyWithExpiredKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 189: public function testManyWithExpiredKeys() - line 191: $this->insertToCacheTable('first', 'a', 0); - line 192: $this->insertToCacheTable('second', 'b', 60); - line 198: ], $this->getStore()->many(['first', 'second', 'third'])); - line 200: $this->assertDatabaseMissing($this->getCacheTableName(), ['key' => $this->withCachePrefix('first')]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 203: public function testManyAsAssociativeArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 203: public function testManyAsAssociativeArray() - line 205: $this->insertToCacheTable('first', 'cached', 60); - line 207: $result = $this->getStore()->many([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 220: public function testPutMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 220: public function testPutMany() - line 222: $store = $this->getStore(); - line 224: $store->putMany($data = [ - line 229: $this->assertEquals($data, $store->many(['first', 'second'])); - line 230: $this->assertDatabaseHas($this->getCacheTableName(), [ - line 234: $this->assertDatabaseHas($this->getCacheTableName(), [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 240: public function testResolvingSQLiteConnectionDoesNotThrowExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 240: public function testResolvingSQLiteConnectionDoesNotThrowExceptions() - line 247: $store = $this->getStore(); - line 248: $this->assertInstanceOf(SQLiteConnection::class, $store->getConnection()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 240: public function testResolvingSQLiteConnectionDoesNotThrowExceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/DatabaseConnectionsTest.php - Test @ line 17: public function testBuildDatabaseConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 17: public function testBuildDatabaseConnection() - line 20: $manager = $this->app->make(DatabaseManager::class); - line 22: $connection = $manager->build([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 17: public function testBuildDatabaseConnection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 30: public function testEstablishDatabaseConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 30: public function testEstablishDatabaseConnection() - line 33: $manager = $this->app->make(DatabaseManager::class); - line 35: $connection = $manager->connectUsing('my-phpunit-connection', [ - line 40: $connection->statement('CREATE TABLE test_1 (id INTEGER PRIMARY KEY)'); - line 42: $connection->statement('INSERT INTO test_1 (id) VALUES (1)'); - line 44: $result = $connection->selectOne('SELECT COUNT(*) as total FROM test_1'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 30: public function testEstablishDatabaseConnection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 49: public function testThrowExceptionIfConnectionAlreadyExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 49: public function testThrowExceptionIfConnectionAlreadyExists() - line 52: $manager = $this->app->make(DatabaseManager::class); - line 54: $manager->connectUsing('my-phpunit-connection', [ - line 59: $this->expectException(RuntimeException::class); - line 61: $manager->connectUsing('my-phpunit-connection', [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testThrowExceptionIfConnectionAlreadyExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 67: public function testOverrideExistingConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 67: public function testOverrideExistingConnection() - line 70: $manager = $this->app->make(DatabaseManager::class); - line 72: $connection = $manager->connectUsing('my-phpunit-connection', [ - line 77: $connection->statement('CREATE TABLE test_1 (id INTEGER PRIMARY KEY)'); - line 79: $resultBeforeOverride = $connection->select("SELECT name FROM sqlite_master WHERE type='table';"); - line 81: $connection = $manager->connectUsing('my-phpunit-connection', [ - line 89: $resultAfterOverride = $connection->select("SELECT name FROM sqlite_master WHERE type='table';"); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 67: public function testOverrideExistingConnection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 96: public function testEstablishingAConnectionWillDispatchAnEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 96: public function testEstablishingAConnectionWillDispatchAnEvent() - line 99: $dispatcher = $this->app->make(Dispatcher::class); - line 103: $dispatcher->listen(ConnectionEstablished::class, function (ConnectionEstablished $e) use (&$event) { - line 108: $manager = $this->app->make(DatabaseManager::class); - line 110: $manager->connectUsing('my-phpunit-connection', [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 96: public function testEstablishingAConnectionWillDispatchAnEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 139: public function testDynamicConnectionDoesntFailOnReconnect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 139: public function testDynamicConnectionDoesntFailOnReconnect() - line 147: $this->expectNotToPerformAssertions(); - line 150: $connection->reconnect(); - line 152: if ($e->getMessage() === 'Database connection [projects] not configured.') { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 139: public function testDynamicConnectionDoesntFailOnReconnect() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 158: public function testDynamicConnectionWithNoNameDoesntFailOnReconnect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 158: public function testDynamicConnectionWithNoNameDoesntFailOnReconnect() - line 165: $this->expectNotToPerformAssertions(); - line 168: $connection->reconnect(); - line 170: if ($e->getMessage() === 'Database connection [projects] not configured.') { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 158: public function testDynamicConnectionWithNoNameDoesntFailOnReconnect() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/DatabaseCustomCastsTest.php - Test @ line 40: public function test_custom_casting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 40: public function test_custom_casting() - line 48: $model->password = Hash::make('secret'); - line 50: $model->save(); - line 52: $model = $model->fresh(); - line 54: $this->assertEquals(['name' => 'Taylor'], $model->array_object->toArray()); - line 55: $this->assertEquals(['name' => 'Taylor'], $model->array_object_json->toArray()); - line 56: $this->assertEquals(['name' => 'Taylor'], $model->collection->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 89: public function test_custom_casting_using_create() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 89: public function test_custom_casting_using_create() - line 91: $model = TestEloquentModelWithCustomCasts::create([ - line 99: $model->save(); - line 101: $model = $model->fresh(); - line 103: $this->assertEquals(['name' => 'Taylor'], $model->array_object->toArray()); - line 104: $this->assertEquals(['name' => 'Taylor'], $model->array_object_json->toArray()); - line 105: $this->assertEquals(['name' => 'Taylor'], $model->collection->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 110: public function test_custom_casting_nullable_values() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 110: public function test_custom_casting_nullable_values() - line 119: $model->save(); - line 121: $model = $model->fresh(); - line 136: $model->save(); - line 138: $model = $model->fresh(); - line 145: $model->array_object->toArray() - line 153: $model->array_object_json->toArray() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 157: public function test_as_collection_with_map_into() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 157: public function test_as_collection_with_map_into() - line 160: $model->mergeCasts([ - line 164: $model->setRawAttributes([ - line 168: $this->assertInstanceOf(Fluent::class, $model->collection->first()); - line 169: $this->assertSame('bar', $model->collection->first()->foo); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 172: public function test_as_custom_collection_with_map_into() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 172: public function test_as_custom_collection_with_map_into() - line 175: $model->mergeCasts([ - line 179: $model->setRawAttributes([ - line 184: $this->assertInstanceOf(Fluent::class, $model->collection->first()); - line 185: $this->assertSame('bar', $model->collection->first()->foo); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/DatabaseEloquentBroadcastingTest.php - Test @ line 31: public function testBasicBroadcasting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 31: public function testBasicBroadcasting() - line 37: $model->save(); - line 41: && count($event->broadcastOn()) === 1 Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 54: public function testBroadcastingOnModelTrashing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 54: public function testBroadcastingOnModelTrashing() - line 60: $model->saveQuietly(); - line 62: $model->delete(); - line 66: && $event->event() == 'trashed' Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 73: public function testBroadcastingForSpecificEventsOnly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 73: public function testBroadcastingForSpecificEventsOnly() - line 79: $model->save(); - line 83: && $event->event() == 'created' - line 90: $model->save(); - line 95: && $event->event() == 'updated'; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 99: public function testBroadcastNameDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 99: public function testBroadcastNameDefault() - line 105: $model->save(); - line 110: && $event->broadcastAs() === 'TestEloquentBroadcastUserCreated' Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 117: public function testBroadcastNameCanBeDefined() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 117: public function testBroadcastNameCanBeDefined() - line 123: $model->save(); - line 128: && $event->broadcastAs() === 'foo' - line 135: $model->save(); - line 140: && $event->broadcastAs() === 'TestEloquentBroadcastUserWithSpecificBroadcastNameUpdated' Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 147: public function testBroadcastPayloadDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 147: public function testBroadcastPayloadDefault() - line 153: $model->save(); - line 158: && is_null($event->broadcastWith()) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 165: public function testBroadcastPayloadCanBeDefined() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 165: public function testBroadcastPayloadCanBeDefined() - line 171: $model->save(); - line 176: && $event->broadcastWith() === ['foo' => 'bar'] - line 183: $model->save(); - line 188: && is_null($event->broadcastWith()) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/DatabaseEloquentModelAttributeCastingTest.php - Test @ line 23: public function testBasicCustomCasting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 24. Evidence: - line 23: public function testBasicCustomCasting() - line 29: $this->assertSame('TAYLOR', $model->getAttributes()['uppercase']); - line 30: $this->assertSame('TAYLOR', $model->toArray()['uppercase']); - line 35: $this->assertSame('TAYLOR', $unserializedModel->getAttributes()['uppercase']); - line 36: $this->assertSame('TAYLOR', $unserializedModel->toArray()['uppercase']); - line 38: $model->syncOriginal(); - line 40: $this->assertSame('TAYLOR', $model->getOriginal('uppercase')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 107: public function testGetOriginalWithCastValueObjects() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 107: public function testGetOriginalWithCastValueObjects() - line 113: $model->syncOriginal(); - line 118: $this->assertSame('110 Kingsbrook St.', $model->getOriginal('address')->lineOne); - line 125: $model->syncOriginal(); - line 130: $this->assertSame('110 Kingsbrook St.', $model->getOriginal()['address_line_one']); - line 132: $this->assertSame('110 Kingsbrook St.', $model->getOriginal()['address_line_one']); - line 138: $model->syncOriginal(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 147: public function testOneWayCasting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 147: public function testOneWayCasting() - line 156: $this->assertEquals(hash('sha256', 'secret'), $model->getAttributes()['password']); - line 157: $this->assertEquals(hash('sha256', 'secret'), $model->getAttributes()['password']); - line 163: $this->assertEquals(hash('sha256', 'secret2'), $model->getAttributes()['password']); - line 164: $this->assertEquals(hash('sha256', 'secret2'), $model->getAttributes()['password']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 168: public function testSettingRawAttributesClearsTheCastCache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 168: public function testSettingRawAttributesClearsTheCastCache() - line 172: $model->setRawAttributes([ - line 179: $model->setRawAttributes([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 168: public function testSettingRawAttributesClearsTheCastCache() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 187: public function testCastsThatOnlyHaveGetterDoNotPersistAnythingToModelOnSave() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 187: public function testCastsThatOnlyHaveGetterDoNotPersistAnythingToModelOnSave() - line 193: $model->getAttributes(); - line 195: $this->assertEmpty($model->getDirty()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 187: public function testCastsThatOnlyHaveGetterDoNotPersistAnythingToModelOnSave() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 198: public function testCastsThatOnlyHaveGetterThatReturnsPrimitivesAreNotCached() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 198: public function testCastsThatOnlyHaveGetterThatReturnsPrimitivesAreNotCached() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 198: public function testCastsThatOnlyHaveGetterThatReturnsPrimitivesAreNotCached() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 209: public function testAttributesCanCacheStrings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 209: public function testAttributesCanCacheStrings() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 209: public function testAttributesCanCacheStrings() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 220: public function testAttributesCanCacheBooleans() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 220: public function testAttributesCanCacheBooleans() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 220: public function testAttributesCanCacheBooleans() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 233: public function testAttributesCanCacheNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 233: public function testAttributesCanCacheNull() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 233: public function testAttributesCanCacheNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 252: public function testAttributesByDefaultDontCacheBooleans() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 252: public function testAttributesByDefaultDontCacheBooleans() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 273: public function testCastsThatOnlyHaveGetterThatReturnsObjectAreCached() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 273: public function testCastsThatOnlyHaveGetterThatReturnsObjectAreCached() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 273: public function testCastsThatOnlyHaveGetterThatReturnsObjectAreCached() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 284: public function testCastsThatOnlyHaveGetterThatReturnsDateTimeAreCached() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 284: public function testCastsThatOnlyHaveGetterThatReturnsDateTimeAreCached() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 284: public function testCastsThatOnlyHaveGetterThatReturnsDateTimeAreCached() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 295: public function testCastsThatOnlyHaveGetterThatReturnsObjectAreNotCached() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 295: public function testCastsThatOnlyHaveGetterThatReturnsObjectAreNotCached() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 295: public function testCastsThatOnlyHaveGetterThatReturnsObjectAreNotCached() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 306: public function testCastsThatOnlyHaveGetterThatReturnsDateTimeAreNotCached() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 306: public function testCastsThatOnlyHaveGetterThatReturnsDateTimeAreNotCached() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 306: public function testCastsThatOnlyHaveGetterThatReturnsDateTimeAreNotCached() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 317: public function testCastsThatOnlyHaveGetterThatReturnsObjectAreNotCachedFluent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 317: public function testCastsThatOnlyHaveGetterThatReturnsObjectAreNotCachedFluent() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 317: public function testCastsThatOnlyHaveGetterThatReturnsObjectAreNotCachedFluent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 328: public function testCastsThatOnlyHaveGetterThatReturnsDateTimeAreNotCachedFluent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 328: public function testCastsThatOnlyHaveGetterThatReturnsDateTimeAreNotCachedFluent() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 328: public function testCastsThatOnlyHaveGetterThatReturnsDateTimeAreNotCachedFluent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/DatabaseEloquentModelCustomCastingTest.php - Test @ line 28: public function testBasicCustomCasting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 26. Evidence: - line 28: public function testBasicCustomCasting() - line 34: $this->assertSame('TAYLOR', $model->getAttributes()['uppercase']); - line 35: $this->assertSame('TAYLOR', $model->toArray()['uppercase']); - line 40: $this->assertSame('TAYLOR', $unserializedModel->getAttributes()['uppercase']); - line 41: $this->assertSame('TAYLOR', $unserializedModel->toArray()['uppercase']); - line 43: $model->syncOriginal(); - line 45: $this->assertSame('TAYLOR', $model->getOriginal('uppercase')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 117: public function testGetOriginalWithCastValueObjects() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 117: public function testGetOriginalWithCastValueObjects() - line 123: $model->syncOriginal(); - line 128: $this->assertSame('110 Kingsbrook St.', $model->getOriginal('address')->lineOne); - line 135: $model->syncOriginal(); - line 140: $this->assertSame('110 Kingsbrook St.', $model->getOriginal()['address_line_one']); - line 142: $this->assertSame('110 Kingsbrook St.', $model->getOriginal()['address_line_one']); - line 148: $model->syncOriginal(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 157: public function testDeviableCasts() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 157: public function testDeviableCasts() - line 161: $model->save(); - line 163: $model->increment('price', '530.865'); - line 165: $this->assertSame((new Decimal('654.321'))->getValue(), $model->price->getValue()); - line 167: $model->decrement('price', '333.333'); - line 169: $this->assertSame((new Decimal('320.988'))->getValue(), $model->price->getValue()); - line 171: $model->increment('price', new Decimal('100.001')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 180: public function testSerializableCasts() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 180: public function testSerializableCasts() - line 185: $expectedValue = (new Decimal('123.456'))->getValue(); - line 187: $this->assertSame($expectedValue, $model->price->getValue()); - line 188: $this->assertSame('123.456', $model->getAttributes()['price']); - line 189: $this->assertSame('123.456', $model->toArray()['price']); - line 193: $this->assertSame($expectedValue, $unserializedModel->price->getValue()); - line 194: $this->assertSame('123.456', $unserializedModel->getAttributes()['price']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 198: public function testOneWayCasting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 198: public function testOneWayCasting() - line 206: $this->assertEquals(hash('sha256', 'secret'), $model->getAttributes()['password']); - line 207: $this->assertEquals(hash('sha256', 'secret'), $model->getAttributes()['password']); - line 213: $this->assertEquals(hash('sha256', 'secret2'), $model->getAttributes()['password']); - line 214: $this->assertEquals(hash('sha256', 'secret2'), $model->getAttributes()['password']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 218: public function testSettingRawAttributesClearsTheCastCache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 218: public function testSettingRawAttributesClearsTheCastCache() - line 222: $model->setRawAttributes([ - line 229: $model->setRawAttributes([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 218: public function testSettingRawAttributesClearsTheCastCache() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 237: public function testSettingAttributesUsingArrowClearsTheCastCache() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 237: public function testSettingAttributesUsingArrowClearsTheCastCache() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 249: public function testWithCastableInterface() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 249: public function testWithCastableInterface() - line 253: $model->setRawAttributes([ - line 258: $this->assertSame(serialize(new ValueObject('hello')), $model->toArray()['value_object_with_caster']); - line 260: $model->setRawAttributes([ - line 266: $model->setRawAttributes([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 273: public function testGetFromUndefinedCast() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 273: public function testGetFromUndefinedCast() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 281: public function testSetToUndefinedCast() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 281: public function testSetToUndefinedCast() - line 283: $this->expectException(InvalidCastException::class); - line 286: $this->assertTrue($model->hasCast('undefined_cast_column')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/DatabaseLockTest.php - Test @ line 27: public function testLockCanBeAcquired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 27: public function testLockCanBeAcquired() - line 29: $lock = Cache::driver('database')->lock('foo'); - line 32: $otherLock = Cache::driver('database')->lock('foo'); - line 35: $lock->release(); - line 37: $otherLock = Cache::driver('database')->lock('foo'); - line 40: $otherLock->release(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 43: public function testLockCanBeForceReleased() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 43: public function testLockCanBeForceReleased() - line 45: $lock = Cache::driver('database')->lock('foo'); - line 48: $otherLock = Cache::driver('database')->lock('foo'); - line 49: $otherLock->forceRelease(); - line 52: $otherLock->release(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 55: public function testExpiredLockCanBeRetrieved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 55: public function testExpiredLockCanBeRetrieved() - line 57: $lock = Cache::driver('database')->lock('foo'); - line 59: DB::table('cache_locks')->update(['expiration' => now()->subDays(1)->getTimestamp()]); - line 61: $otherLock = Cache::driver('database')->lock('foo'); - line 64: $otherLock->release(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 67: public function testOtherOwnerDoesNotOwnLockAfterRestore() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 67: public function testOtherOwnerDoesNotOwnLockAfterRestore() - line 69: $firstLock = Cache::store('database')->lock('foo'); - line 70: $this->assertTrue($firstLock->isOwnedBy(null)); - line 72: $this->assertTrue($firstLock->isOwnedBy($firstLock->owner())); - line 74: $secondLock = Cache::store('database')->restoreLock('foo', 'other_owner'); - line 75: $this->assertTrue($secondLock->isOwnedBy($firstLock->owner())); - line 76: $this->assertFalse($secondLock->isOwnedByCurrentProcess()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 81: public function testIgnoresConcurrencyException(string $message, int $code, bool $hasConcurrenyError) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 81: public function testIgnoresConcurrencyException(string $message, int $code, bool $hasConcurrenyError) - line 83: $connection = m::mock(Connection::class); - line 89: $deleteBuilder->shouldReceive('where')->with('expiration', '<=', m::any())->once()->andReturnSelf(); - line 90: $deleteBuilder->shouldReceive('delete')->once()->andThrow( - line 104: $this->assertTrue($lock->acquire()); - line 106: $this->expectException(QueryException::class); - line 107: $this->assertFalse($lock->acquire()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 83: $connection = m::mock(Connection::class); - line 84: $insertBuilder = m::mock(Builder::class); - line 85: $deleteBuilder = m::mock(Builder::class); ❌ tests/Integration/Database/DatabaseTransactionsTest.php - Test @ line 21: public function testTransactionCallbacks() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 21: public function testTransactionCallbacks() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 44: public function testTransactionCallbacksDoNotInterfereWithOneAnother() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 44: public function testTransactionCallbacksDoNotInterfereWithOneAnother() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 78: public function testTransactionsDoNotAffectDifferentConnections() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 78: public function testTransactionsDoNotAffectDifferentConnections() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 109: public function testAfterRollbackCallbacksAreExecuted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 109: public function testAfterRollbackCallbacksAreExecuted() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 109: public function testAfterRollbackCallbacksAreExecuted() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/EloquentAggregateTest.php - Test @ line 21: public function testMinMax() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 21: public function testMinMax() - line 23: UserAggregateTest::create(['c' => 1, 'name' => 'test-name1', 'balance' => -1]); - line 30: $this->assertEquals(-1, UserAggregateTest::query()->min('balance')); - line 31: $this->assertNull(UserAggregateTest::query()->where('name', 'no-name')->min('balance')); - line 32: $this->assertEquals(1, UserAggregateTest::query()->where('c', '>', 3)->min('balance')); - line 34: $this->assertEquals(2, UserAggregateTest::query()->max('balance')); - line 35: $this->assertNull(UserAggregateTest::query()->where('name', 'no-name')->max('balance')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 39: public function testAvg() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 39: public function testAvg() - line 41: UserAggregateTest::create(['c' => 1, 'name' => 'test-name1', 'balance' => -10]); - line 48: $this->assertEquals(2, UserAggregateTest::query()->avg('balance')); - line 49: $this->assertNull(UserAggregateTest::query()->where('name', 'no-name')->avg('balance')); - line 50: $this->assertEquals(15, UserAggregateTest::query()->where('c', '>', 3)->avg('balance')); - line 52: $this->assertEquals(2, UserAggregateTest::query()->average('balance')); - line 53: $this->assertNull(UserAggregateTest::query()->where('name', 'no-name')->average('balance')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 57: public function testSum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 57: public function testSum() - line 59: UserAggregateTest::create(['c' => 1, 'name' => 'name-1', 'balance' => -11]); - line 65: $this->assertEquals(-9, UserAggregateTest::query()->sum('balance')); - line 66: $result = UserAggregateTest::query()->where('name', 'no-name')->sum('balance'); - line 69: $this->assertEquals(2, UserAggregateTest::query()->where('c', '>', 1)->sum('balance')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 72: public function testNumericAggregate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 72: public function testNumericAggregate() - line 74: UserAggregateTest::create(['c' => 1, 'name' => 'name-1', 'balance' => 40]); - line 80: $this->assertEquals(20, UserAggregateTest::query()->numericAggregate('sum', ['balance'])); - line 82: $this->assertEquals(5, UserAggregateTest::query()->numericAggregate('avg', ['balance'])); - line 83: $this->assertEquals(40, UserAggregateTest::query()->numericAggregate('max', ['balance'])); - line 84: $this->assertEquals(-40, UserAggregateTest::query()->numericAggregate('min', ['balance'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentBelongsToManyTest.php - Test @ line 75: public function testBasicCreateAndRetrieve() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 75: public function testBasicCreateAndRetrieve() - line 79: $post = Post::create(['title' => Str::random()]); - line 85: $post->tags()->sync([ - line 100: $this->assertSame('post_id', $post->tags[0]->pivot->getForeignKey()); - line 101: $this->assertSame('tag_id', $post->tags[0]->pivot->getOtherKey()); - line 102: $this->assertSame('posts_tags', $post->tags[0]->pivot->getTable()); - line 108: $post->tags[0]->pivot->toArray() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 112: public function testRefreshOnOtherModelWorks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 112: public function testRefreshOnOtherModelWorks() - line 114: $post = Post::create(['title' => Str::random()]); - line 117: $post->tags()->sync([ - line 121: $post->load('tags'); - line 123: $loadedTag = $post->tags()->first(); - line 125: $tag->update(['name' => 'newName']); - line 131: $loadedTag->refresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 140: public function testCustomPivotClass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 140: public function testCustomPivotClass() - line 144: $post = Post::create(['title' => Str::random()]); - line 148: $post->tagsWithCustomPivot()->attach($tag->id); - line 154: $this->assertSame('posts_tags', $post->tagsWithCustomPivotClass()->getTable()); - line 159: ], $post->tagsWithCustomAccessor[0]->tag->toArray()); - line 163: $pivot->save(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 170: public function testCustomPivotClassUsingSync() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 170: public function testCustomPivotClassUsingSync() - line 174: $post = Post::create(['title' => Str::random()]); - line 178: $results = $post->tagsWithCustomPivot()->sync([ - line 184: $results = $post->tagsWithCustomPivot()->sync([ - line 190: $results = $post->tagsWithCustomPivot()->sync([]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 170: public function testCustomPivotClassUsingSync() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 195: public function testCustomPivotClassUsingUpdateExistingPivot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 195: public function testCustomPivotClassUsingUpdateExistingPivot() - line 199: $post = Post::create(['title' => Str::random()]); - line 202: DB::table('posts_tags')->insert([ - line 209: $post->tagsWithCustomExtraPivot()->updateExistingPivot($tag->id, ['flag' => 'exclude']) - line 218: $post->tagsWithCustomExtraPivot()->updateExistingPivot(0, ['flag' => 'exclude']) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 222: public function testCustomPivotClassUpdatesTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 222: public function testCustomPivotClassUpdatesTimestamps() - line 226: $post = Post::create(['title' => Str::random()]); - line 229: DB::table('posts_tags')->insert([ - line 241: $post->tagsWithCustomExtraPivot()->updateExistingPivot($tag->id, ['flag' => 'exclude']) - line 247: $this->assertSame('2017-10-10 10:10:10.000', $tag->pivot->getAttributes()['created_at']); - line 248: $this->assertSame('2017-10-10 10:10:20.000', $tag->pivot->getAttributes()['updated_at']); // +10 seconds - line 250: $this->assertSame('2017-10-10 10:10:10', $tag->pivot->getAttributes()['created_at']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 256: public function testAttachMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 256: public function testAttachMethod() - line 258: $post = Post::create(['title' => Str::random()]); - line 269: $post->tags()->attach($tag->id); - line 273: $post->tags()->attach($tag2->id, ['flag' => 'taylor']); - line 274: $post->load('tags'); - line 278: $post->tags()->attach([$tag3->id, $tag4->id]); - line 279: $post->load('tags'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 296: public function testDetachMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 296: public function testDetachMethod() - line 298: $post = Post::create(['title' => Str::random()]); - line 308: $post->tags()->attach(Tag::all()); - line 310: $this->assertEquals(Tag::pluck('name'), $post->tags->pluck('name')); - line 312: $post->tags()->detach($tag->id); - line 313: $post->load('tags'); - line 315: Tag::whereNotIn('id', [$tag->id])->pluck('name'), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 339: public function testDetachMethodWithCustomPivot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 339: public function testDetachMethodWithCustomPivot() - line 341: $post = Post::create(['title' => Str::random()]); - line 351: $post->tagsWithCustomPivot()->attach(Tag::all()); - line 353: $this->assertEquals(Tag::pluck('name'), $post->tags->pluck('name')); - line 355: $post->tagsWithCustomPivot()->detach($tag->id); - line 356: $post->load('tagsWithCustomPivot'); - line 358: Tag::whereNotIn('id', [$tag->id])->pluck('name'), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 382: public function testFirstMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 382: public function testFirstMethod() - line 384: $post = Post::create(['title' => Str::random()]); - line 388: $post->tags()->attach(Tag::all()); - line 390: $this->assertEquals($tag->name, $post->tags()->first()->name); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 393: public function testFirstOrFailMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 393: public function testFirstOrFailMethod() - line 395: $this->expectException(ModelNotFoundException::class); - line 399: $post->tags()->firstOrFail(['id']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 393: public function testFirstOrFailMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 402: public function testFindMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 402: public function testFindMethod() - line 404: $post = Post::create(['title' => Str::random()]); - line 409: $post->tags()->attach(Tag::all()); - line 411: $this->assertEquals($tag2->name, $post->tags()->find($tag2->id)->name); - line 412: $this->assertCount(0, $post->tags()->findMany([])); - line 413: $this->assertCount(2, $post->tags()->findMany([$tag->id, $tag2->id])); - line 414: $this->assertCount(0, $post->tags()->findMany(new Collection)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 418: public function testFindMethodStringyKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 418: public function testFindMethodStringyKey() - line 421: $table->string('id', 1)->primary(); - line 426: $table->string('id', 1)->primary(); - line 431: $table->id(); - line 436: $post = PostStringPrimaryKey::query()->create([ - line 441: $tag = TagStringPrimaryKey::query()->create([ - line 446: $tag2 = TagStringPrimaryKey::query()->create([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 460: public function testFindSoleMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 460: public function testFindSoleMethod() - line 462: $post = Post::create(['title' => Str::random()]); - line 466: $post->tags()->attach($tag); - line 468: $this->assertEquals($tag->id, $post->tags()->findSole($tag->id)->id); - line 470: $this->assertEquals($tag->id, $post->tags()->findSole($tag)->id); - line 473: $post->tags()->detach($tag); - line 476: $post->tags()->findSole($tag); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 483: public function testFindOrFailMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 483: public function testFindOrFailMethod() - line 485: $this->expectException(ModelNotFoundException::class); - line 486: $this->expectExceptionMessage('No query results for model [Illuminate\Tests\Integration\Database\EloquentBelongsToManyTest\Tag] 10'); - line 492: $post->tags()->attach(Tag::all()); - line 494: $post->tags()->findOrFail(10); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 483: public function testFindOrFailMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 497: public function testFindOrFailMethodWithMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 497: public function testFindOrFailMethodWithMany() - line 499: $this->expectException(ModelNotFoundException::class); - line 500: $this->expectExceptionMessage('No query results for model [Illuminate\Tests\Integration\Database\EloquentBelongsToManyTest\Tag] 10, 11'); - line 506: $post->tags()->attach(Tag::all()); - line 508: $post->tags()->findOrFail([10, 11]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 497: public function testFindOrFailMethodWithMany() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 511: public function testFindOrFailMethodWithManyUsingCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 511: public function testFindOrFailMethodWithManyUsingCollection() - line 513: $this->expectException(ModelNotFoundException::class); - line 514: $this->expectExceptionMessage('No query results for model [Illuminate\Tests\Integration\Database\EloquentBelongsToManyTest\Tag] 10, 11'); - line 520: $post->tags()->attach(Tag::all()); - line 522: $post->tags()->findOrFail(new Collection([10, 11])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 511: public function testFindOrFailMethodWithManyUsingCollection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 525: public function testFindOrNewMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 525: public function testFindOrNewMethod() - line 527: $post = Post::create(['title' => Str::random()]); - line 531: $post->tags()->attach(Tag::all()); - line 533: $this->assertEquals($tag->id, $post->tags()->findOrNew($tag->id)->id); - line 535: $this->assertNull($post->tags()->findOrNew(666)->id); - line 536: $this->assertInstanceOf(Tag::class, $post->tags()->findOrNew(666)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 539: public function testFindOrMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 539: public function testFindOrMethod() - line 541: $post = Post::create(['title' => Str::random()]); - line 542: $post->tags()->create(['name' => Str::random()]); - line 544: $result = $post->tags()->findOr(1, fn () => 'callback result'); - line 549: $result = $post->tags()->findOr(1, ['id'], fn () => 'callback result'); - line 554: $result = $post->tags()->findOr(2, fn () => 'callback result'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 539: public function testFindOrMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 558: public function testFindOrMethodWithMany() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 558: public function testFindOrMethodWithMany() - line 560: $post = Post::create(['title' => Str::random()]); - line 561: $post->tags()->createMany([ - line 566: $result = $post->tags()->findOr([1, 2], fn () => 'callback result'); - line 573: $result = $post->tags()->findOr([1, 2], ['id'], fn () => 'callback result'); - line 580: $result = $post->tags()->findOr([1, 2, 3], fn () => 'callback result'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 558: public function testFindOrMethodWithMany() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 584: public function testFindOrMethodWithManyUsingCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 584: public function testFindOrMethodWithManyUsingCollection() - line 586: $post = Post::create(['title' => Str::random()]); - line 587: $post->tags()->createMany([ - line 592: $result = $post->tags()->findOr(new Collection([1, 2]), fn () => 'callback result'); - line 599: $result = $post->tags()->findOr(new Collection([1, 2]), ['id'], fn () => 'callback result'); - line 606: $result = $post->tags()->findOr(new Collection([1, 2, 3]), fn () => 'callback result'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 584: public function testFindOrMethodWithManyUsingCollection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 610: public function testFirstOrNewMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 610: public function testFirstOrNewMethod() - line 612: $post = Post::create(['title' => Str::random()]); - line 616: $post->tags()->attach(Tag::all()); - line 618: $this->assertEquals($tag->id, $post->tags()->firstOrNew(['id' => $tag->id])->id); - line 620: $this->assertNull($post->tags()->firstOrNew(['id' => 666])->id); - line 621: $this->assertInstanceOf(Tag::class, $post->tags()->firstOrNew(['id' => 666])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 637: public function testFirstOrCreateMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 637: public function testFirstOrCreateMethod() - line 639: $post = Post::create(['title' => Str::random()]); - line 643: $post->tags()->attach(Tag::all()); - line 645: $this->assertEquals($tag->id, $post->tags()->firstOrCreate(['name' => $tag->name])->id); - line 647: $new = $post->tags()->firstOrCreate(['name' => 'wavez']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 652: public function testFirstOrCreateUnrelatedExisting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 652: public function testFirstOrCreateUnrelatedExisting() - line 654: $post = Post::create(['title' => Str::random()]); - line 659: $postTag = $post->tags()->firstOrCreate(['name' => $name]); - line 661: $this->assertTrue($postTag->is($tag)); - line 662: $this->assertTrue($tag->is($post->tags()->first())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 665: public function testCreateOrFirst() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 665: public function testCreateOrFirst() - line 667: $post = Post::create(['title' => Str::random()]); - line 671: $post->tagsUnique()->attach(UniqueTag::all()); - line 673: $this->assertEquals($tag->id, $post->tagsUnique()->createOrFirst(['name' => $tag->name])->id); - line 675: $new = $post->tagsUnique()->createOrFirst(['name' => 'wavez']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 680: public function testCreateOrFirstUnrelatedExisting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 680: public function testCreateOrFirstUnrelatedExisting() - line 682: $post = Post::create(['title' => Str::random()]); - line 687: $postTag = $post->tagsUnique()->createOrFirst(['name' => $name]); - line 689: $this->assertTrue($postTag->is($tag)); - line 690: $this->assertTrue($tag->is($post->tagsUnique()->first())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 693: public function testCreateOrFirstWithinTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 693: public function testCreateOrFirstWithinTransaction() - line 695: $post = Post::create(['title' => Str::random()]); - line 699: $post->tagsUnique()->attach(UniqueTag::all()); - line 702: $this->assertEquals($tag->id, $post->tagsUnique()->createOrFirst(['name' => $tag->name])->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 706: public function testFirstOrNewMethodWithValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 706: public function testFirstOrNewMethodWithValues() - line 708: $post = Post::create(['title' => Str::random()]); - line 710: $post->tags()->attach(Tag::all()); - line 712: $existing = $post->tags()->firstOrNew( - line 720: $new = $post->tags()->firstOrNew( - line 728: $new = $post->tags()->firstOrNew( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 706: public function testFirstOrNewMethodWithValues() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 736: public function testFirstOrCreateMethodWithValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 736: public function testFirstOrCreateMethodWithValues() - line 738: $post = Post::create(['title' => Str::random()]); - line 740: $post->tags()->attach(Tag::all()); - line 742: $existing = $post->tags()->firstOrCreate( - line 750: $new = $post->tags()->firstOrCreate( - line 759: $new = $post->tags()->firstOrCreate( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 736: public function testFirstOrCreateMethodWithValues() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 768: public function testUpdateOrCreateMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 768: public function testUpdateOrCreateMethod() - line 770: $post = Post::create(['title' => Str::random()]); - line 774: $post->tags()->attach(Tag::all()); - line 776: $post->tags()->updateOrCreate(['id' => $tag->id], ['name' => 'wavez']); - line 777: $this->assertSame('wavez', $tag->fresh()->name); - line 779: $post->tags()->updateOrCreate(['id' => 666], ['name' => 'dives']); - line 780: $this->assertNotNull($post->tags()->whereName('dives')->first()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 783: public function testUpdateOrCreateUnrelatedExisting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 783: public function testUpdateOrCreateUnrelatedExisting() - line 785: $post = Post::create(['title' => Str::random()]); - line 789: $postTag = $post->tags()->updateOrCreate(['name' => 'foo'], ['name' => 'wavez']); - line 791: $this->assertTrue($postTag->is($tag)); - line 792: $this->assertSame('wavez', $tag->fresh()->name); - line 794: $this->assertTrue($tag->is($post->tags()->first())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 797: public function testUpdateOrCreateMethodCreate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 797: public function testUpdateOrCreateMethodCreate() - line 799: $post = Post::create(['title' => Str::random()]); - line 801: $post->tags()->updateOrCreate(['name' => 'wavez'], ['type' => 'featured']); - line 803: $tag = $post->tags()->whereType('featured')->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 797: public function testUpdateOrCreateMethodCreate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 809: public function testSyncMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 809: public function testSyncMethod() - line 811: $post = Post::create(['title' => Str::random()]); - line 818: $post->tags()->sync([$tag->id, $tag2->id]); - line 821: Tag::whereIn('id', [$tag->id, $tag2->id])->pluck('name'), - line 825: $output = $post->tags()->sync([$tag->id, $tag3->id, $tag4->id]); - line 828: Tag::whereIn('id', [$tag->id, $tag3->id, $tag4->id])->pluck('name'), - line 838: $post->tags()->sync([]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 852: public function testSyncMethodWithModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 852: public function testSyncMethodWithModels() - line 854: $post = Post::create(['title' => Str::random()]); - line 862: $post->tags()->sync([$tag, $tag2]); - line 865: Tag::whereIn('id', [$tag->id, $tag2->id])->pluck('name'), - line 872: $post->tags()->sync($tagCollection); - line 875: Tag::whereIn('id', [$tag3->id, $tag4->id])->pluck('name'), - line 882: $post->tags()->sync($tagCollection); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 890: public function testSyncWithoutDetachingMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 890: public function testSyncWithoutDetachingMethod() - line 892: $post = Post::create(['title' => Str::random()]); - line 897: $post->tags()->sync([$tag->id]); - line 900: Tag::whereIn('id', [$tag->id])->pluck('name'), - line 904: $post->tags()->syncWithoutDetaching([$tag2->id]); - line 907: Tag::whereIn('id', [$tag->id, $tag2->id])->pluck('name'), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 912: public function testSyncMethodWithEmptyValueDoesNotQueryWhenDetachingDisabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 912: public function testSyncMethodWithEmptyValueDoesNotQueryWhenDetachingDisabled() - line 914: $post = Post::create(['title' => Str::random()]); - line 919: $result = $post->tags()->sync($value, false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 912: public function testSyncMethodWithEmptyValueDoesNotQueryWhenDetachingDisabled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 933: public function testToggleMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 933: public function testToggleMethod() - line 935: $post = Post::create(['title' => Str::random()]); - line 940: $post->tags()->toggle([$tag->id]); - line 943: Tag::whereIn('id', [$tag->id])->pluck('name'), - line 947: $post->tags()->toggle([$tag2->id, $tag->id]); - line 950: Tag::whereIn('id', [$tag2->id])->pluck('name'), - line 954: $post->tags()->toggle([$tag2->id, $tag->id => ['flag' => 'taylor']]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 963: public function testTouchingParent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 963: public function testTouchingParent() - line 965: $post = Post::create(['title' => Str::random()]); - line 969: $post->touchingTags()->attach([$tag->id]); - line 971: $this->assertNotSame('2017-10-10 10:10:10', $post->fresh()->updated_at->toDateTimeString()); - line 975: $tag->update(['name' => $tag->name]); - line 976: $this->assertNotSame('2017-10-10 10:10:10', $post->fresh()->updated_at->toDateTimeString()); - line 978: $tag->update(['name' => Str::random()]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 982: public function testTouchingRelatedModelsOnSync() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 982: public function testTouchingRelatedModelsOnSync() - line 984: $tag = TouchingTag::create(['name' => Str::random()]); - line 988: $this->assertNotSame('2017-10-10 10:10:10', $post->fresh()->updated_at->toDateTimeString()); - line 989: $this->assertNotSame('2017-10-10 10:10:10', $tag->fresh()->updated_at->toDateTimeString()); - line 993: $tag->posts()->sync([$post->id]); - line 995: $this->assertSame('2017-10-10 10:10:10', $post->fresh()->updated_at->toDateTimeString()); - line 996: $this->assertSame('2017-10-10 10:10:10', $tag->fresh()->updated_at->toDateTimeString()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 999: public function testNoTouchingHappensIfNotConfigured() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 999: public function testNoTouchingHappensIfNotConfigured() - line 1001: $tag = Tag::create(['name' => Str::random()]); - line 1005: $this->assertNotSame('2017-10-10 10:10:10', $post->fresh()->updated_at->toDateTimeString()); - line 1006: $this->assertNotSame('2017-10-10 10:10:10', $tag->fresh()->updated_at->toDateTimeString()); - line 1010: $tag->posts()->sync([$post->id]); - line 1012: $this->assertNotSame('2017-10-10 10:10:10', $post->fresh()->updated_at->toDateTimeString()); - line 1013: $this->assertNotSame('2017-10-10 10:10:10', $tag->fresh()->updated_at->toDateTimeString()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 999: public function testNoTouchingHappensIfNotConfigured() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1016: public function testCanRetrieveRelatedIds() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1016: public function testCanRetrieveRelatedIds() - line 1018: $post = Post::create(['title' => Str::random()]); - line 1020: DB::table('tags')->insert([ - line 1025: DB::table('posts_tags')->insert([ - line 1031: $this->assertEquals([1, 3], $post->tags()->allRelatedIds()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1034: public function testCanTouchRelatedModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1034: public function testCanTouchRelatedModels() - line 1036: $post = Post::create(['title' => Str::random()]); - line 1038: DB::table('tags')->insert([ - line 1043: DB::table('posts_tags')->insert([ - line 1051: $post->tags()->touch(); - line 1053: foreach ($post->tags()->pluck('tags.updated_at') as $date) { - line 1057: $this->assertNotSame('2017-10-10 10:10:10', Tag::find(2)->updated_at?->toDateTimeString()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1060: public function testWherePivotOnString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1060: public function testWherePivotOnString() - line 1062: $tag = Tag::create(['name' => Str::random()])->fresh(); - line 1065: DB::table('posts_tags')->insert([ - line 1069: $relationTag = $post->tags()->wherePivot('flag', 'foo')->first(); - line 1070: $this->assertEquals($relationTag->getAttributes(), $tag->getAttributes()); - line 1072: $relationTag = $post->tags()->wherePivot('flag', '=', 'foo')->first(); - line 1073: $this->assertEquals($relationTag->getAttributes(), $tag->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1076: public function testFirstWhere() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1076: public function testFirstWhere() - line 1078: $tag = Tag::create(['name' => 'foo'])->fresh(); - line 1081: DB::table('posts_tags')->insert([ - line 1085: $relationTag = $post->tags()->firstWhere('name', 'foo'); - line 1086: $this->assertEquals($relationTag->getAttributes(), $tag->getAttributes()); - line 1088: $relationTag = $post->tags()->firstWhere('name', '=', 'foo'); - line 1089: $this->assertEquals($relationTag->getAttributes(), $tag->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1092: public function testWherePivotOnBoolean() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1092: public function testWherePivotOnBoolean() - line 1094: $tag = Tag::create(['name' => Str::random()])->fresh(); - line 1097: DB::table('posts_tags')->insert([ - line 1101: $relationTag = $post->tags()->wherePivot('flag', true)->first(); - line 1102: $this->assertEquals($relationTag->getAttributes(), $tag->getAttributes()); - line 1104: $relationTag = $post->tags()->wherePivot('flag', '=', true)->first(); - line 1105: $this->assertEquals($relationTag->getAttributes(), $tag->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1108: public function testOrWherePivotOnBoolean() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1108: public function testOrWherePivotOnBoolean() - line 1110: $tag = Tag::create(['name' => Str::random()])->fresh(); - line 1113: DB::table('posts_tags')->insert([ - line 1117: $relationTag = $post->tags()->wherePivot('isActive', false)->orWherePivot('flag', true)->first(); - line 1118: $this->assertEquals($relationTag->getAttributes(), $tag->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1121: public function testWherePivotNotBetween() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1121: public function testWherePivotNotBetween() - line 1123: $tag = Tag::create(['name' => Str::random()])->fresh(); - line 1126: DB::table('posts_tags')->insert([ - line 1130: $relationTag = $post->tags() - line 1135: $this->assertEquals($relationTag->getAttributes(), $tag->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1138: public function testWherePivotInMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1138: public function testWherePivotInMethod() - line 1140: $tag = Tag::create(['name' => Str::random()])->fresh(); - line 1143: DB::table('posts_tags')->insert([ - line 1147: $relationTag = $post->tags()->wherePivotIn('flag', ['foo'])->first(); - line 1148: $this->assertEquals($relationTag->getAttributes(), $tag->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1151: public function testOrWherePivotInMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1151: public function testOrWherePivotInMethod() - line 1153: $tag1 = Tag::create(['name' => Str::random()]); - line 1158: DB::table('posts_tags')->insert([ - line 1161: DB::table('posts_tags')->insert([ - line 1164: DB::table('posts_tags')->insert([ - line 1168: $relationTags = $post->tags()->wherePivotIn('flag', ['foo'])->orWherePivotIn('flag', ['baz'])->get(); - line 1169: $this->assertEquals($relationTags->pluck('id')->toArray(), [$tag1->id, $tag3->id]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1172: public function testWherePivotNotInMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1172: public function testWherePivotNotInMethod() - line 1174: $tag1 = Tag::create(['name' => Str::random()]); - line 1175: $tag2 = Tag::create(['name' => Str::random()])->fresh(); - line 1178: DB::table('posts_tags')->insert([ - line 1181: DB::table('posts_tags')->insert([ - line 1185: $relationTag = $post->tags()->wherePivotNotIn('flag', ['foo'])->first(); - line 1186: $this->assertEquals($relationTag->getAttributes(), $tag2->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1189: public function testOrWherePivotNotInMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1189: public function testOrWherePivotNotInMethod() - line 1191: $tag1 = Tag::create(['name' => Str::random()]); - line 1196: DB::table('posts_tags')->insert([ - line 1199: DB::table('posts_tags')->insert([ - line 1202: DB::table('posts_tags')->insert([ - line 1206: $relationTags = $post->tags()->wherePivotIn('flag', ['foo'])->orWherePivotNotIn('flag', ['baz'])->get(); - line 1207: $this->assertEquals($relationTags->pluck('id')->toArray(), [$tag1->id, $tag2->id]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1210: public function testWherePivotNullMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1210: public function testWherePivotNullMethod() - line 1212: $tag1 = Tag::create(['name' => Str::random()]); - line 1213: $tag2 = Tag::create(['name' => Str::random()])->fresh(); - line 1216: DB::table('posts_tags')->insert([ - line 1219: DB::table('posts_tags')->insert([ - line 1223: $relationTag = $post->tagsWithExtraPivot()->wherePivotNull('flag')->first(); - line 1224: $this->assertEquals($relationTag->getAttributes(), $tag2->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1227: public function testWherePivotNotNullMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1227: public function testWherePivotNotNullMethod() - line 1229: $tag1 = Tag::create(['name' => Str::random()])->fresh(); - line 1233: DB::table('posts_tags')->insert([ - line 1236: DB::table('posts_tags')->insert([ - line 1240: $relationTag = $post->tagsWithExtraPivot()->wherePivotNotNull('flag')->orWherePivotNotNull('isActive')->first(); - line 1241: $this->assertEquals($relationTag->getAttributes(), $tag1->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1244: public function testCanUpdateExistingPivot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1244: public function testCanUpdateExistingPivot() - line 1246: $tag = Tag::create(['name' => Str::random()]); - line 1249: DB::table('posts_tags')->insert([ - line 1253: $post->tagsWithExtraPivot()->updateExistingPivot($tag->id, ['flag' => 'exclude']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1260: public function testCanUpdateExistingPivotUsingArrayableOfIds() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1260: public function testCanUpdateExistingPivotUsingArrayableOfIds() - line 1263: $tag1 = Tag::create(['name' => Str::random()]), - line 1268: DB::table('posts_tags')->insert([ - line 1273: $post->tagsWithExtraPivot()->updateExistingPivot($tags, ['flag' => 'exclude']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1260: public function testCanUpdateExistingPivotUsingArrayableOfIds() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1280: public function testCanUpdateExistingPivotUsingModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1280: public function testCanUpdateExistingPivotUsingModel() - line 1282: $tag = Tag::create(['name' => Str::random()]); - line 1285: DB::table('posts_tags')->insert([ - line 1289: $post->tagsWithExtraPivot()->updateExistingPivot($tag, ['flag' => 'exclude']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1296: public function testCustomRelatedKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 1296: public function testCustomRelatedKey() - line 1298: $post = Post::create(['title' => Str::random()]); - line 1300: $tag = $post->tagsWithCustomRelatedKey()->create(['name' => Str::random()]); - line 1301: $this->assertEquals($tag->name, $post->tagsWithCustomRelatedKey()->first()->pivot->tag_name); - line 1303: $post->tagsWithCustomRelatedKey()->detach($tag); - line 1305: $post->tagsWithCustomRelatedKey()->attach($tag); - line 1306: $this->assertEquals($tag->name, $post->tagsWithCustomRelatedKey()->first()->pivot->tag_name); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1317: public function testGlobalScopeColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1317: public function testGlobalScopeColumns() - line 1319: $tag = Tag::create(['name' => Str::random()]); - line 1322: DB::table('posts_tags')->insert([ - line 1328: $this->assertEquals(['id' => 1], $tags[0]->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1331: public function testPivotDoesntHavePrimaryKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 1331: public function testPivotDoesntHavePrimaryKey() - line 1333: $user = User::create(['name' => Str::random()]); - line 1337: $user->postsWithCustomPivot()->sync([$post1->uuid]); - line 1338: $this->assertEquals($user->uuid, $user->postsWithCustomPivot()->first()->pivot->user_uuid); - line 1339: $this->assertEquals($post1->uuid, $user->postsWithCustomPivot()->first()->pivot->post_uuid); - line 1340: $this->assertEquals(1, $user->postsWithCustomPivot()->first()->pivot->is_draft); - line 1342: $user->postsWithCustomPivot()->sync([$post2->uuid]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1351: public function testOrderByPivotMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1351: public function testOrderByPivotMethod() - line 1353: $tag1 = Tag::create(['name' => Str::random()]); - line 1354: $tag2 = Tag::create(['name' => Str::random()])->fresh(); - line 1355: $tag3 = Tag::create(['name' => Str::random()])->fresh(); - line 1359: DB::table('posts_tags')->insert([ - line 1366: $relationTag1 = $post->tagsWithCustomExtraPivot()->orderByPivot('flag', 'asc')->first(); - line 1367: $this->assertEquals($relationTag1->getAttributes(), $tag2->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1373: public function testFirstOrMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1373: public function testFirstOrMethod() - line 1375: $user1 = User::create(['name' => Str::random()]); - line 1382: $user1->posts()->sync([$post1->uuid, $post2->uuid]); - line 1383: $user2->posts()->sync([$post1->uuid, $post2->uuid]); - line 1387: $user2->posts()->firstOr(function () { - line 1394: $user3->posts()->firstOr(function () use ($post3) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1400: public function testUpdateOrCreateQueryBuilderIsolation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1400: public function testUpdateOrCreateQueryBuilderIsolation() - line 1402: $user = User::create(['name' => Str::random()]); - line 1405: $user->postsWithCustomPivot()->attach($post); - line 1407: $instance = $user->postsWithCustomPivot()->updateOrCreate( - line 1414: $instance->toArray(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1400: public function testUpdateOrCreateQueryBuilderIsolation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1418: public function testFirstOrCreateQueryBuilderIsolation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1418: public function testFirstOrCreateQueryBuilderIsolation() - line 1420: $user = User::create(['name' => Str::random()]); - line 1423: $user->postsWithCustomPivot()->attach($post); - line 1425: $instance = $user->postsWithCustomPivot()->firstOrCreate( - line 1432: $instance->toArray(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1418: public function testFirstOrCreateQueryBuilderIsolation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/EloquentBelongsToTest.php - Test @ line 40: public function testAssociateWithModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 40: public function testAssociateWithModel() - line 42: $parent = User::doesntHave('parent')->first(); - line 43: $child = User::has('parent')->first(); - line 45: $parent->parent()->associate($child); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 51: public function testAssociateWithId() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 51: public function testAssociateWithId() - line 53: $parent = User::doesntHave('parent')->first(); - line 54: $child = User::has('parent')->first(); - line 56: $parent->parent()->associate($child->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 62: public function testAssociateWithIdUnsetsLoadedRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 62: public function testAssociateWithIdUnsetsLoadedRelation() - line 64: $child = User::has('parent')->with('parent')->first(); - line 67: $child->parent()->associate($child->id); - line 70: $this->assertFalse($child->relationLoaded('parent')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 73: public function testParentIsNotNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 73: public function testParentIsNotNull() - line 75: $child = User::has('parent')->first(); - line 78: $this->assertFalse($child->parent()->is($parent)); - line 79: $this->assertTrue($child->parent()->isNot($parent)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 82: public function testParentIsModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 82: public function testParentIsModel() - line 84: $child = User::has('parent')->first(); - line 85: $parent = User::doesntHave('parent')->first(); - line 87: $this->assertTrue($child->parent()->is($parent)); - line 88: $this->assertFalse($child->parent()->isNot($parent)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 91: public function testParentIsNotAnotherModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 91: public function testParentIsNotAnotherModel() - line 93: $child = User::has('parent')->first(); - line 97: $this->assertFalse($child->parent()->is($parent)); - line 98: $this->assertTrue($child->parent()->isNot($parent)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 101: public function testNullParentIsNotModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 101: public function testNullParentIsNotModel() - line 103: $child = User::has('parent')->first(); - line 104: $child->parent()->dissociate(); - line 105: $parent = User::doesntHave('parent')->first(); - line 107: $this->assertFalse($child->parent()->is($parent)); - line 108: $this->assertTrue($child->parent()->isNot($parent)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 111: public function testParentIsNotModelWithAnotherTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 111: public function testParentIsNotModelWithAnotherTable() - line 113: $child = User::has('parent')->first(); - line 114: $parent = User::doesntHave('parent')->first(); - line 115: $parent->setTable('foo'); - line 117: $this->assertFalse($child->parent()->is($parent)); - line 118: $this->assertTrue($child->parent()->isNot($parent)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 121: public function testParentIsNotModelWithAnotherConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 121: public function testParentIsNotModelWithAnotherConnection() - line 123: $child = User::has('parent')->first(); - line 124: $parent = User::doesntHave('parent')->first(); - line 125: $parent->setConnection('foo'); - line 127: $this->assertFalse($child->parent()->is($parent)); - line 128: $this->assertTrue($child->parent()->isNot($parent)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentCollectionFreshTest.php - Test @ line 21: public function testEloquentCollectionFresh() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 21: public function testEloquentCollectionFresh() - line 23: User::insert([ - line 30: $collection->first()->delete(); - line 32: $freshCollection = $collection->fresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 21: public function testEloquentCollectionFresh() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/EloquentCollectionLoadCountTest.php - Test @ line 41: public function testLoadCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 41: public function testLoadCount() - line 43: $posts = Post::all(); - line 47: $posts->loadCount('comments'); - line 52: $this->assertSame('2', (string) $posts[0]->getOriginal('comments_count')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 55: public function testLoadCountWithSameModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 55: public function testLoadCountWithSameModels() - line 57: $posts = Post::all()->push(Post::first()); - line 61: $posts->loadCount('comments'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 69: public function testLoadCountOnDeletedModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 69: public function testLoadCountOnDeletedModels() - line 71: $posts = Post::all()->each->delete(); - line 75: $posts->loadCount('comments'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 82: public function testLoadCountWithArrayOfRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 82: public function testLoadCountWithArrayOfRelations() - line 84: $posts = Post::all(); - line 88: $posts->loadCount(['comments', 'likes']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 97: public function testLoadCountDoesNotOverrideAttributesWithDefaultValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 97: public function testLoadCountDoesNotOverrideAttributesWithDefaultValue() - line 99: $post = Post::first(); - line 102: Collection::make([$post])->loadCount('comments'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentCollectionLoadMissingTest.php - Test @ line 70: public function testLoadMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 70: public function testLoadMissing() - line 76: $posts->loadMissing('comments.parent.revisions:revisions.comment_id', 'user:id'); - line 79: $this->assertTrue($posts[0]->comments[0]->relationLoaded('parent')); - line 80: $this->assertTrue($posts[0]->comments[1]->parent->relationLoaded('revisions')); - line 81: $this->assertArrayNotHasKey('id', $posts[0]->comments[1]->parent->revisions[0]->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 84: public function testLoadMissingWithClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 84: public function testLoadMissingWithClosure() - line 90: $posts->loadMissing(['comments.parent' => function ($query) { - line 95: $this->assertTrue($posts[0]->comments[0]->relationLoaded('parent')); - line 96: $this->assertArrayNotHasKey('post_id', $posts[0]->comments[1]->parent->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 99: public function testLoadMissingWithDuplicateRelationName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 99: public function testLoadMissingWithDuplicateRelationName() - line 105: $posts->loadMissing('comments.parent.parent'); - line 108: $this->assertTrue($posts[0]->comments[0]->relationLoaded('parent')); - line 109: $this->assertTrue($posts[0]->comments[1]->parent->relationLoaded('parent')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 112: public function testLoadMissingWithoutInitialLoad() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 112: public function testLoadMissingWithoutInitialLoad() - line 114: $user = User::first(); - line 115: $user->loadMissing('posts.postRelation.postSubRelations.postSubSubRelations'); - line 117: $this->assertEquals(2, $user->posts->count()); - line 120: $this->assertEquals(1, $user->posts[1]->postRelation->postSubRelations->count()); - line 122: $this->assertEquals(1, $user->posts[1]->postRelation->postSubRelations[0]->postSubSubRelations->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 126: public function testLoadMissingWithNestedArraySyntax() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 126: public function testLoadMissingWithNestedArraySyntax() - line 132: $posts->loadMissing([ - line 138: $this->assertTrue($posts[0]->comments[0]->relationLoaded('parent')); - line 139: $this->assertTrue($posts[0]->relationLoaded('user')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 142: public function testLoadMissingWithMultipleDotNotationRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 142: public function testLoadMissingWithMultipleDotNotationRelations() - line 148: $posts->loadMissing([ - line 154: $this->assertTrue($posts[0]->comments[0]->relationLoaded('parent')); - line 155: $this->assertTrue($posts[0]->relationLoaded('user')); - line 156: $this->assertTrue($posts[0]->user->relationLoaded('posts')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 159: public function testLoadMissingWithNestedArrayWithColon() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 159: public function testLoadMissingWithNestedArrayWithColon() - line 165: $posts->loadMissing(['comments' => ['parent:id']]); - line 168: $this->assertTrue($posts[0]->comments[0]->relationLoaded('parent')); - line 169: $this->assertArrayNotHasKey('post_id', $posts[0]->comments[1]->parent->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 172: public function testLoadMissingWithNestedArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 172: public function testLoadMissingWithNestedArray() - line 178: $posts->loadMissing(['comments' => ['parent']]); - line 181: $this->assertTrue($posts[0]->comments[0]->relationLoaded('parent')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 184: public function testLoadMissingWithNestedArrayWithClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 184: public function testLoadMissingWithNestedArrayWithClosure() - line 190: $posts->loadMissing(['comments' => ['parent' => function ($query) { - line 195: $this->assertTrue($posts[0]->comments[0]->relationLoaded('parent')); - line 196: $this->assertArrayNotHasKey('post_id', $posts[0]->comments[1]->parent->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 199: public function testLoadMissingWithMultipleNestedArrays() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 199: public function testLoadMissingWithMultipleNestedArrays() - line 202: $users->loadMissing([ - line 212: $user = $users->first(); - line 213: $this->assertEquals(2, $user->posts->count()); - line 216: $this->assertEquals(1, $user->posts[1]->postRelation->postSubRelations->count()); - line 218: $this->assertEquals(1, $user->posts[1]->postRelation->postSubRelations[0]->postSubSubRelations->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 222: public function testLoadMissingWithMultipleNestedArraysCombinedWithDotNotation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 222: public function testLoadMissingWithMultipleNestedArraysCombinedWithDotNotation() - line 225: $users->loadMissing([ - line 233: $user = $users->first(); - line 234: $this->assertEquals(2, $user->posts->count()); - line 237: $this->assertEquals(1, $user->posts[1]->postRelation->postSubRelations->count()); - line 239: $this->assertEquals(1, $user->posts[1]->postRelation->postSubRelations[0]->postSubSubRelations->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentCursorPaginateTest.php - Test @ line 41: public function testPaginationWithUnion() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 41: public function testPaginationWithUnion() - line 43: TestPost::fillAndInsert([ - line 50: $table1 = TestPost::query()->whereIn('user_id', [1, 2]); - line 51: $table2 = TestPost::query()->whereIn('user_id', [3, 4]); - line 53: $result = $table1->unionAll($table2) - line 57: $this->assertSame(['user_id'], $result->getOptions()['parameters']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 60: public function testPaginationWithDistinct() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 60: public function testPaginationWithDistinct() - line 66: TestPost::fillAndInsert($posts); - line 68: $query = TestPost::query()->distinct(); - line 70: $this->assertEquals(6, $query->get()->count()); - line 71: $this->assertEquals(6, $query->count()); - line 72: $this->assertCount(6, $query->cursorPaginate()->items()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 75: public function testPaginationWithWhereClause() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 75: public function testPaginationWithWhereClause() - line 81: TestPost::fillAndInsert($posts); - line 83: $query = TestPost::query()->whereNull('user_id'); - line 85: $this->assertEquals(3, $query->get()->count()); - line 86: $this->assertEquals(3, $query->count()); - line 87: $this->assertCount(3, $query->cursorPaginate()->items()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 90: public function testPaginationWithHasClause() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 90: public function testPaginationWithHasClause() - line 92: TestUser::fillAndInsert([[], [], []]); - line 101: $query = TestUser::query()->has('posts'); - line 103: $this->assertEquals(2, $query->get()->count()); - line 104: $this->assertEquals(2, $query->count()); - line 105: $this->assertCount(2, $query->cursorPaginate()->items()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 108: public function testPaginationWithWhereHasClause() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 108: public function testPaginationWithWhereHasClause() - line 110: TestUser::fillAndInsert([[], [], []]); - line 118: $query = TestUser::query()->whereHas('posts', function ($query) { - line 122: $this->assertEquals(1, $query->get()->count()); - line 123: $this->assertEquals(1, $query->count()); - line 124: $this->assertCount(1, $query->cursorPaginate()->items()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 127: public function testPaginationWithWhereExistsClause() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 127: public function testPaginationWithWhereExistsClause() - line 129: TestUser::fillAndInsert([[], [], []]); - line 137: $query = TestUser::query()->whereExists(function ($query) { - line 143: $this->assertEquals(2, $query->get()->count()); - line 144: $this->assertEquals(2, $query->count()); - line 145: $this->assertCount(2, $query->cursorPaginate()->items()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 148: public function testPaginationWithMultipleWhereClauses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 148: public function testPaginationWithMultipleWhereClauses() - line 150: TestUser::fillAndInsert([[], [], [], []]); - line 159: $query = TestUser::query()->whereExists(function ($query) { - line 167: $clonedQuery = $query->clone(); - line 168: $anotherQuery = $query->clone(); - line 170: $this->assertEquals(2, $query->get()->count()); - line 171: $this->assertEquals(2, $query->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 181: public function testPaginationWithMultipleUnionAndMultipleWhereClauses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 181: public function testPaginationWithMultipleUnionAndMultipleWhereClauses() - line 183: TestPost::fillAndInsert([ - line 188: $table1 = TestPost::select(['id', 'title', 'user_id'])->where('user_id', 100); - line 189: $table2 = TestPost::select(['id', 'title', 'user_id'])->where('user_id', 101); - line 190: $table3 = TestPost::select(['id', 'title', 'user_id'])->where('user_id', 101); - line 196: $result = $table1->toBase() - line 202: $this->assertSame(['id'], $result->getOptions()['parameters']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 211: public function testPaginationWithMultipleAliases() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 211: public function testPaginationWithMultipleAliases() - line 213: TestUser::fillAndInsert([ - line 227: $result = $table1->toBase() - line 232: $this->assertSame(['alias'], $result->getOptions()['parameters']); - line 234: $this->assertCount(1, $result->items(), 'Expect cursor paginated query should have 1 result'); - line 235: $this->assertEquals('B (post)', current($result->items())->alias, 'Expect the paginated query would return `B (post)`'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 238: public function testPaginationWithAliasedOrderBy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 238: public function testPaginationWithAliasedOrderBy() - line 240: TestUser::fillAndInsert([[], [], [], [], [], []]); - line 242: $query = TestUser::query()->select('id as user_id')->orderBy('user_id'); - line 243: $clonedQuery = $query->clone(); - line 244: $anotherQuery = $query->clone(); - line 246: $this->assertEquals(6, $query->get()->count()); - line 247: $this->assertEquals(6, $query->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 257: public function testPaginationWithDistinctColumnsAndSelect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 257: public function testPaginationWithDistinctColumnsAndSelect() - line 263: TestPost::fillAndInsert($posts); - line 265: $query = TestPost::query()->orderBy('title')->distinct('title')->select('title'); - line 267: $this->assertEquals(2, $query->get()->count()); - line 268: $this->assertEquals(2, $query->count()); - line 269: $this->assertCount(2, $query->cursorPaginate()->items()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 272: public function testPaginationWithDistinctColumnsAndSelectAndJoin() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 272: public function testPaginationWithDistinctColumnsAndSelectAndJoin() - line 274: TestUser::fillAndInsert([[], [], [], [], []]); - line 288: $query = TestUser::query()->join('test_posts', 'test_posts.user_id', '=', 'test_users.id') - line 291: $this->assertEquals(5, $query->get()->count()); - line 292: $this->assertEquals(5, $query->count()); - line 293: $this->assertCount(5, $query->cursorPaginate()->items()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentCustomPivotCastTest.php - Test @ line 31: public function testCastsAreRespectedOnAttach() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 31: public function testCastsAreRespectedOnAttach() - line 33: $user = CustomPivotCastTestUser::forceCreate([ - line 41: $project->collaborators()->attach($user, ['permissions' => ['foo' => 'bar']]); - line 42: $project = $project->fresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 31: public function testCastsAreRespectedOnAttach() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 47: public function testCastsAreRespectedOnAttachArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 47: public function testCastsAreRespectedOnAttachArray() - line 49: $user = CustomPivotCastTestUser::forceCreate([ - line 61: $project->collaborators()->attach([ - line 65: $project = $project->fresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 47: public function testCastsAreRespectedOnAttachArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 71: public function testCastsAreRespectedOnSync() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 71: public function testCastsAreRespectedOnSync() - line 73: $user = CustomPivotCastTestUser::forceCreate([ - line 81: $project->collaborators()->sync([$user->id => ['permissions' => ['foo' => 'bar']]]); - line 82: $project = $project->fresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 71: public function testCastsAreRespectedOnSync() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 87: public function testCastsAreRespectedOnSyncArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 87: public function testCastsAreRespectedOnSyncArray() - line 89: $user = CustomPivotCastTestUser::forceCreate([ - line 101: $project->collaborators()->sync([ - line 105: $project = $project->fresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 87: public function testCastsAreRespectedOnSyncArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 111: public function testCastsAreRespectedOnSyncArrayWhileUpdatingExisting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 111: public function testCastsAreRespectedOnSyncArrayWhileUpdatingExisting() - line 113: $user = CustomPivotCastTestUser::forceCreate([ - line 125: $project->collaborators()->attach([ - line 130: $project->collaborators()->sync([ - line 135: $project = $project->fresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 111: public function testCastsAreRespectedOnSyncArrayWhileUpdatingExisting() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 141: public function testDefaultAttributesAreRespectedAndCastsAreRespected() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 141: public function testDefaultAttributesAreRespectedAndCastsAreRespected() - line 143: $project = CustomPivotCastTestProject::forceCreate([ - line 147: $pivot = $project->collaborators()->newPivot(); - line 149: $this->assertEquals(['permissions' => ['create', 'update']], $pivot->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentDeleteTest.php - Test @ line 36: public function testDeleteWithLimit() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 36: public function testDeleteWithLimit() - line 39: $this->markTestSkipped('The limit keyword is not supported on MSSQL.'); - line 48: Post::latest('id')->limit(1)->delete(); - line 52: ->where('posts.id', '>', 8) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 59: public function testForceDeletedEventIsFired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 59: public function testForceDeletedEventIsFired() - line 61: $role = Role::create([]); - line 65: $role->delete(); - line 68: $role->forceDelete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 73: public function testForceDeletingEventIsFired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 73: public function testForceDeletingEventIsFired() - line 75: $role = Role::create([]); - line 79: $role->forceDelete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 84: public function testDeleteQuietly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 84: public function testDeleteQuietly() - line 87: Post::deleting(fn () => $_SERVER['(-_-)'] = null); - line 89: $post = Post::query()->create([]); - line 90: $result = $post->deleteQuietly(); - line 101: $result = $role->deleteQuietly(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 86: $_SERVER['(-_-)'] = '\(^_^)/'; - line 87: Post::deleting(fn () => $_SERVER['(-_-)'] = null); - line 88: Post::deleted(fn () => $_SERVER['(-_-)'] = null); - line 97: Role::deleting(fn () => $_SERVER['(-_-)'] = null); - line 98: Role::deleted(fn () => $_SERVER['(-_-)'] = null); - line 99: Role::softDeleted(fn () => $_SERVER['(-_-)'] = null); - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 105: unset($_SERVER['(-_-)']); - Test @ line 108: public function testDestroy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 108: public function testDestroy() - line 111: $table->increments('my_id'); - line 116: PostStringyKey::query()->create([]); - line 117: PostStringyKey::query()->create([]); - line 119: PostStringyKey::query()->getConnection()->enableQueryLog(); - line 131: $logs = PostStringyKey::query()->getConnection()->getQueryLog(); - line 133: $this->assertEquals(0, PostStringyKey::query()->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 124: $_SERVER['destroy'] = []; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 147: unset($_SERVER['destroy']); ❌ tests/Integration/Database/EloquentHasManyTest.php - Test @ line 34: public function testCanGetHasOneFromHasManyRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 34: public function testCanGetHasOneFromHasManyRelationship() - line 36: $user = EloquentHasManyTestUser::create(); - line 38: $user->logins()->create(['login_time' => now()]); - line 40: $this->assertInstanceOf(HasOne::class, $user->logins()->one()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function testCanGetHasOneFromHasManyRelationship() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 64: public function testFirstOrCreate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 64: public function testFirstOrCreate() - line 66: $user = EloquentHasManyTestUser::create(); - line 68: $post1 = $user->posts()->create(['title' => Str::random()]); - line 69: $post2 = $user->posts()->firstOrCreate(['title' => $post1->title]); - line 71: $this->assertTrue($post1->is($post2)); - line 72: $this->assertCount(1, $user->posts()->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 75: public function testFirstOrCreateWithinTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 75: public function testFirstOrCreateWithinTransaction() - line 77: $user = EloquentHasManyTestUser::create(); - line 79: $post1 = $user->posts()->create(['title' => Str::random()]); - line 82: $post2 = $user->posts()->firstOrCreate(['title' => $post1->title]); - line 87: $this->assertCount(1, $user->posts()->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 90: public function testCreateOrFirst() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 90: public function testCreateOrFirst() - line 92: $user = EloquentHasManyTestUser::create(); - line 94: $post1 = $user->posts()->createOrFirst(['title' => Str::random()]); - line 95: $post2 = $user->posts()->createOrFirst(['title' => $post1->title]); - line 97: $this->assertTrue($post1->is($post2)); - line 98: $this->assertCount(1, $user->posts()->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 101: public function testCreateOrFirstWithinTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 101: public function testCreateOrFirstWithinTransaction() - line 103: $user = EloquentHasManyTestUser::create(); - line 105: $post1 = $user->posts()->create(['title' => Str::random()]); - line 108: $post2 = $user->posts()->createOrFirst(['title' => $post1->title]); - line 113: $this->assertCount(1, $user->posts()->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentHasManyThroughTest.php - Test @ line 50: public function testBasicCreateAndRetrieve() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 50: public function testBasicCreateAndRetrieve() - line 52: $user = User::create(['name' => Str::random()]); - line 62: $this->assertEquals([$mate1->id, $mate2->id], $user->teamMates->pluck('id')->toArray()); - line 63: $this->assertEquals([$mate1->id, $mate2->id], $user->teamMatesWithPendingRelation->pluck('id')->toArray()); - line 64: $this->assertEquals([$user->id], User::has('teamMates')->pluck('id')->toArray()); - line 65: $this->assertEquals([$user->id], User::has('teamMatesWithPendingRelation')->pluck('id')->toArray()); - line 67: $result = $user->teamMates()->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 92: public function testGlobalScopeColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 92: public function testGlobalScopeColumns() - line 94: $user = User::create(['name' => Str::random()]); - line 101: $this->assertEquals(['id' => 2, 'laravel_through_key' => 1], $teamMates[0]->getAttributes()); - line 104: $this->assertEquals(['id' => 2, 'laravel_through_key' => 1], $teamMates[0]->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 107: public function testHasSelf() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 107: public function testHasSelf() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 122: public function testHasSelfCustomOwnerKey() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 122: public function testHasSelfCustomOwnerKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 137: public function testHasSameParentAndThroughParentTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 137: public function testHasSameParentAndThroughParentTable() - line 139: Category::create(); - line 142: Category::create(['parent_id' => 2])->delete(); - line 149: $this->assertEquals([1], $categories->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 152: public function testFirstOrNewOnMissingRecord() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 152: public function testFirstOrNewOnMissingRecord() - line 154: $taylor = User::create(['name' => 'Taylor', 'slug' => 'taylor']); - line 157: $user1 = $taylor->teamMates()->firstOrNew( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 152: public function testFirstOrNewOnMissingRecord() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 168: public function testFirstOrNewWhenRecordExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 168: public function testFirstOrNewWhenRecordExists() - line 170: $taylor = User::create(['name' => 'Taylor', 'slug' => 'taylor']); - line 172: $existingTony = $team->members()->create(['name' => 'Tony Messias', 'slug' => 'tony']); - line 174: $newTony = $taylor->teamMates()->firstOrNew( - line 184: $this->assertTrue($existingTony->is($newTony)); - line 185: $this->assertSame('tony', $existingTony->refresh()->slug); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 189: public function testFirstOrCreateWhenModelDoesntExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 189: public function testFirstOrCreateWhenModelDoesntExist() - line 191: $owner = User::create(['name' => 'Taylor']); - line 194: $mate = $owner->teamMates()->firstOrCreate(['slug' => 'adam'], ['name' => 'Adam']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 189: public function testFirstOrCreateWhenModelDoesntExist() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 202: public function testFirstOrCreateWhenModelExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 202: public function testFirstOrCreateWhenModelExists() - line 204: $owner = User::create(['name' => 'Taylor']); - line 207: $team->members()->create(['slug' => 'adam', 'name' => 'Adam Wathan']); - line 209: $mate = $owner->teamMates()->firstOrCreate(['slug' => 'adam'], ['name' => 'Adam']); - line 213: $this->assertTrue($team->is($mate->team)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 218: public function testFirstOrCreateRegressionIssue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 218: public function testFirstOrCreateRegressionIssue() - line 220: $team1 = Team::create(); - line 223: $jane = $team2->members()->create(['name' => 'Jane', 'slug' => 'jane']); - line 224: $john = $team1->members()->create(['name' => 'John', 'slug' => 'john']); - line 227: $team1->update(['owner_id' => $taylor->id]); - line 229: $newJohn = $taylor->teamMates()->firstOrCreate( - line 235: $this->assertTrue($john->is($newJohn)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 245: public function testCreateOrFirstWhenRecordDoesntExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 245: public function testCreateOrFirstWhenRecordDoesntExist() - line 247: $team = Team::create(); - line 248: $tony = $team->members()->create(['name' => 'Tony']); - line 250: $article = $team->articles()->createOrFirst( - line 257: $this->assertTrue($tony->is($article->user)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 260: public function testCreateOrFirstWhenRecordExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 260: public function testCreateOrFirstWhenRecordExists() - line 262: $team = Team::create(); - line 263: $taylor = $team->members()->create(['name' => 'Taylor']); - line 264: $tony = $team->members()->create(['name' => 'Tony']); - line 266: $existingArticle = $taylor->articles()->create([ - line 270: $newArticle = $team->articles()->createOrFirst( - line 277: $this->assertTrue($taylor->is($newArticle->user)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 281: public function testCreateOrFirstWhenRecordExistsInTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 281: public function testCreateOrFirstWhenRecordExistsInTransaction() - line 283: $team = Team::create(); - line 284: $taylor = $team->members()->create(['name' => 'Taylor']); - line 285: $tony = $team->members()->create(['name' => 'Tony']); - line 287: $existingArticle = $taylor->articles()->create([ - line 291: $newArticle = DB::transaction(fn () => $team->articles()->createOrFirst( - line 298: $this->assertTrue($taylor->is($newArticle->user)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 302: public function testCreateOrFirstRegressionIssue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 302: public function testCreateOrFirstRegressionIssue() - line 304: $team1 = Team::create(); - line 306: $taylor = $team1->members()->create(['name' => 'Taylor']); - line 307: $tony = $team1->members()->create(['name' => 'Tony']); - line 309: $existingTonyArticle = $tony->articles()->create(['title' => 'The New createOrFirst Method']); - line 310: $existingTaylorArticle = $taylor->articles()->create(['title' => 'Laravel Forever']); - line 312: $newArticle = $team1->articles()->createOrFirst( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 327: public function testUpdateOrCreateAffectingWrongModelsRegression() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 327: public function testUpdateOrCreateAffectingWrongModelsRegression() - line 333: $team1 = Team::create(); - line 341: $team1->update(['owner_id' => $taylor->id]); - line 346: $this->assertSame(2, $john->refresh()->id); - line 347: $this->assertSame(1, $jane->refresh()->id); - line 352: $this->assertSame('john-slug', $john->refresh()->slug); - line 353: $this->assertSame('jane-slug', $jane->refresh()->slug); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 371: public function testCanReplicateModelLoadedThroughHasManyThrough() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 371: public function testCanReplicateModelLoadedThroughHasManyThrough() - line 373: $team = Team::create(); - line 377: $article = $team->articles()->first(); - line 381: $newArticle = $article->replicate(); - line 383: $newArticle->save(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 371: public function testCanReplicateModelLoadedThroughHasManyThrough() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/EloquentHasOneIsTest.php - Test @ line 28: public function testChildIsNotNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 28: public function testChildIsNotNull() - line 30: $parent = Post::first(); - line 33: $this->assertFalse($parent->attachment()->is($child)); - line 34: $this->assertTrue($parent->attachment()->isNot($child)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 37: public function testChildIsModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 37: public function testChildIsModel() - line 39: $parent = Post::first(); - line 42: $this->assertTrue($parent->attachment()->is($child)); - line 43: $this->assertFalse($parent->attachment()->isNot($child)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 46: public function testChildIsNotAnotherModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 46: public function testChildIsNotAnotherModel() - line 48: $parent = Post::first(); - line 52: $this->assertFalse($parent->attachment()->is($child)); - line 53: $this->assertTrue($parent->attachment()->isNot($child)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 56: public function testNullChildIsNotModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 56: public function testNullChildIsNotModel() - line 58: $parent = Post::first(); - line 62: $this->assertFalse($parent->attachment()->is($child)); - line 63: $this->assertTrue($parent->attachment()->isNot($child)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 66: public function testChildIsNotModelWithAnotherTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 66: public function testChildIsNotModelWithAnotherTable() - line 68: $parent = Post::first(); - line 70: $child->setTable('foo'); - line 72: $this->assertFalse($parent->attachment()->is($child)); - line 73: $this->assertTrue($parent->attachment()->isNot($child)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 76: public function testChildIsNotModelWithAnotherConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 76: public function testChildIsNotModelWithAnotherConnection() - line 78: $parent = Post::first(); - line 80: $child->setConnection('foo'); - line 82: $this->assertFalse($parent->attachment()->is($child)); - line 83: $this->assertTrue($parent->attachment()->isNot($child)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentHasOneOfManyTest.php - Test @ line 33: public function testItOnlyEagerLoadsRequiredModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 33: public function testItOnlyEagerLoadsRequiredModels() - line 36: User::getEventDispatcher()->listen('eloquent.retrieved:*', function ($event, $models) { - line 45: $user->latest_login()->create(); - line 46: $user->latest_login()->create(); - line 48: $user->latest_login()->create(); - line 49: $user->latest_login()->create(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 33: public function testItOnlyEagerLoadsRequiredModels() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 56: public function testItGetsCorrectResultUsingAtLeastTwoAggregatesDistinctFromId() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 56: public function testItGetsCorrectResultUsingAtLeastTwoAggregatesDistinctFromId() - line 58: $user = User::create(); - line 60: $latestState = $user->states()->create([ - line 67: $oldestState = $user->states()->create([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentLazyEagerLoadingTest.php - Test @ line 30: public function testItBasic() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 30: public function testItBasic() - line 32: $one = Model1::create(); - line 33: $one->twos()->create(); - line 34: $one->threes()->create(); - line 38: $this->assertTrue($model->relationLoaded('twos')); - line 39: $this->assertFalse($model->relationLoaded('threes')); - line 43: $model->load('threes'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentMassPrunableTest.php - Test @ line 45: public function testPrunableMethodMustBeImplemented() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 45: public function testPrunableMethodMustBeImplemented() - line 47: $this->expectException(LogicException::class); - line 48: $this->expectExceptionMessage( - line 52: MassPrunableTestModelMissingPrunableMethod::create()->pruneAll(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 45: public function testPrunableMethodMustBeImplemented() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 55: public function testPrunesRecords() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 55: public function testPrunesRecords() - line 60: ->with(m::type(ModelsPruned::class)); - line 62: collect(range(1, 5000))->map(function ($id) { - line 68: $count = (new MassPrunableTestModel)->pruneAll(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 74: public function testPrunesSoftDeletedRecords() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 74: public function testPrunesSoftDeletedRecords() - line 79: ->with(m::type(ModelsPruned::class)); - line 81: collect(range(1, 5000))->map(function ($id) { - line 87: $count = (new MassPrunableSoftDeleteTestModel)->pruneAll(); - line 91: $this->assertEquals(2000, MassPrunableSoftDeleteTestModel::withTrashed()->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentModelCustomEventsTest.php - Test @ line 35: public function testFlushListenersClearsCustomEvents() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 37: $_SERVER['fired_event'] = false; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 35: public function testFlushListenersClearsCustomEvents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 46: public function testCustomEventListenersAreFired() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 48: $_SERVER['fired_event'] = false; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 46: public function testCustomEventListenersAreFired() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 55: public function testAddObservableEventFromTrait() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 55: public function testAddObservableEventFromTrait() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/EloquentModelDateCastingTest.php - Test @ line 35: public function testDatesAreCustomCastable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 35: public function testDatesAreCustomCastable() - line 37: $user = TestModel1::create([ - line 42: $this->assertSame('2019-10', $user->toArray()['date_field']); - line 43: $this->assertSame('2019-10 10:15', $user->toArray()['datetime_field']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 48: public function testDatesFormattedAttributeBindings() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 48: public function testDatesFormattedAttributeBindings() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 66: public function testDatesFormattedArrayAndJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 66: public function testDatesFormattedArrayAndJson() - line 68: $user = TestModel1::create([ - line 83: $this->assertSame($expected, $user->toArray()); - line 84: $this->assertSame(json_encode($expected), $user->toJson()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 87: public function testCustomDateCastsAreComparedAsDatesForCarbonInstances() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 87: public function testCustomDateCastsAreComparedAsDatesForCarbonInstances() - line 89: $user = TestModel1::create([ - line 101: $this->assertArrayNotHasKey('date_field', $user->getDirty()); - line 102: $this->assertArrayNotHasKey('datetime_field', $user->getDirty()); - line 103: $this->assertArrayNotHasKey('immutable_date_field', $user->getDirty()); - line 104: $this->assertArrayNotHasKey('immutable_datetime_field', $user->getDirty()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 107: public function testCustomDateCastsAreComparedAsDatesForStringValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 107: public function testCustomDateCastsAreComparedAsDatesForStringValues() - line 109: $user = TestModel1::create([ - line 121: $this->assertArrayNotHasKey('date_field', $user->getDirty()); - line 122: $this->assertArrayNotHasKey('datetime_field', $user->getDirty()); - line 123: $this->assertArrayNotHasKey('immutable_date_field', $user->getDirty()); - line 124: $this->assertArrayNotHasKey('immutable_datetime_field', $user->getDirty()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentModelDecimalCastingTest.php - Test @ line 23: public function testItHandlesExponent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 23: public function testItHandlesExponent() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testItHandlesExponent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 41: public function testItHandlesIntegersWithUnderscores() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 41: public function testItHandlesIntegersWithUnderscores() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 41: public function testItHandlesIntegersWithUnderscores() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 56: public function testItWrapsThrownExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 56: public function testItWrapsThrownExceptions() - line 70: $this->fail(); - line 72: $this->assertSame('Unable to cast value to a decimal.', $e->getMessage()); - line 73: $this->assertInstanceOf(NumberFormatException::class, $e->getPrevious()); - line 74: $this->assertSame('The given value "foo" does not represent a valid number.', $e->getPrevious()->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 78: public function testItHandlesMissingIntegers() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 78: public function testItHandlesMissingIntegers() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 78: public function testItHandlesMissingIntegers() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 96: public function testItHandlesLargeNumbers() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 96: public function testItHandlesLargeNumbers() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 96: public function testItHandlesLargeNumbers() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 114: public function testItRounds() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 114: public function testItRounds() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 114: public function testItRounds() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 129: public function testItTrimsLongValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 129: public function testItTrimsLongValues() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 129: public function testItTrimsLongValues() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 144: public function testItDoesntRoundNumbers() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 144: public function testItDoesntRoundNumbers() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 144: public function testItDoesntRoundNumbers() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 159: public function testDecimalsAreCastable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 159: public function testDecimalsAreCastable() - line 161: $user = TestModel1::create([ - line 166: $this->assertSame('12.00', $user->toArray()['decimal_field_2']); - line 167: $this->assertSame('1234.0000', $user->toArray()['decimal_field_4']); - line 172: $this->assertSame('12.00', $user->toArray()['decimal_field_2']); - line 173: $this->assertSame('1234.0000', $user->toArray()['decimal_field_4']); - line 175: $this->assertFalse($user->isDirty()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 181: public function testRoundingDirection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 181: public function testRoundingDirection() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 181: public function testRoundingDirection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/EloquentModelEncryptedCastingTest.php - Test @ line 106: public function testJsonAttributeIsCastable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 106: public function testJsonAttributeIsCastable() - line 124: $subject->fill([ - line 127: $subject->save(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 185: public function testAsEncryptedCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 185: public function testAsEncryptedCollection() - line 202: $subject->mergeCasts(['secret_collection' => AsEncryptedCollection::class]); - line 205: $subject->secret_collection->put('key2', 'value2'); - line 207: $subject->save(); - line 217: $subject = $subject->fresh(); - line 224: $subject->save(); - line 232: $this->assertNull($subject->fresh()->secret_collection); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 235: public function testAsEncryptedCollectionMap() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 235: public function testAsEncryptedCollectionMap() - line 252: $subject->mergeCasts(['secret_collection' => AsEncryptedCollection::of(Fluent::class)]); - line 255: $subject->secret_collection->push(new Fluent(['key2' => 'value2'])); - line 257: $subject->save(); - line 260: $this->assertInstanceOf(Fluent::class, $subject->secret_collection->first()); - line 268: $subject = $subject->fresh(); - line 271: $this->assertInstanceOf(Fluent::class, $subject->secret_collection->first()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 287: public function testAsEncryptedArrayObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 287: public function testAsEncryptedArrayObject() - line 308: $subject->mergeCasts(['secret_array' => AsEncryptedArrayObject::class]); - line 313: $subject->save(); - line 323: $subject = $subject->fresh(); - line 330: $subject->save(); - line 338: $this->assertNull($subject->fresh()->secret_array); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 341: public function testCustomEncrypterCanBeSpecified() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 341: public function testCustomEncrypterCanBeSpecified() - line 343: $customEncrypter = $this->mock(Encrypter::class); - line 352: ->never(); - line 354: ->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 343: $customEncrypter = $this->mock(Encrypter::class); ❌ tests/Integration/Database/EloquentModelEncryptedDirtyTest.php - Test @ line 12: public function testDirtyAttributeBehaviorWithNoPreviousKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 12: public function testDirtyAttributeBehaviorWithNoPreviousKeys() - line 22: $model->syncOriginal(); - line 24: $this->assertFalse($model->isDirty('secret')); - line 25: $this->assertFalse($model->isDirty('secret_array_object')); - line 31: $this->assertFalse($model->isDirty('secret')); - line 32: $this->assertFalse($model->isDirty('secret_array_object')); - line 38: $this->assertTrue($model->isDirty('secret')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 42: public function testDirtyAttributeBehaviorWithPreviousKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 42: public function testDirtyAttributeBehaviorWithPreviousKeys() - line 53: $model->syncOriginal(); - line 55: $this->assertFalse($model->isDirty('secret')); - line 56: $this->assertFalse($model->isDirty('secret_array_object')); - line 62: $this->assertTrue($model->isDirty('secret')); - line 63: $this->assertTrue($model->isDirty('secret_array_object')); - line 69: $this->assertTrue($model->isDirty('secret')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentModelEnumCastingTest.php - Test @ line 36: public function testEnumsAreCastable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 36: public function testEnumsAreCastable() - line 38: DB::table('enum_casts')->insert([ - line 51: $this->assertEquals([StringStatus::pending, StringStatus::done], $model->string_status_collection->all()); - line 52: $this->assertEquals([StringStatus::pending, StringStatus::done], $model->string_status_array->toArray()); - line 54: $this->assertEquals([IntegerStatus::pending, IntegerStatus::done], $model->integer_status_collection->all()); - line 55: $this->assertEquals([IntegerStatus::pending, IntegerStatus::done], $model->integer_status_array->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 132: public function testEnumsAreConvertedOnSave() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 132: public function testEnumsAreConvertedOnSave() - line 144: $model->save(); - line 155: ], collect(DB::table('enum_casts')->where('id', $model->id)->first())->map(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 160: public function testEnumsAreNotConvertedOnSaveWhenAlreadyCorrect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 160: public function testEnumsAreNotConvertedOnSaveWhenAlreadyCorrect() - line 172: $model->save(); - line 183: ], collect(DB::table('enum_casts')->where('id', $model->id)->first())->map(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 188: public function testEnumsAcceptNullOnSave() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 188: public function testEnumsAcceptNullOnSave() - line 200: $model->save(); - line 211: ], DB::table('enum_casts')->where('id', $model->id)->first()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 231: public function testFirstOrNew() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 231: public function testFirstOrNew() - line 233: DB::table('enum_casts')->insert([ - line 250: $model2->save(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 307: public function testCreateOrFirst() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 307: public function testCreateOrFirst() - line 309: $model1 = EloquentModelEnumCastingUniqueTestModel::createOrFirst([ - line 323: $this->assertTrue($model1->is($model2)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentModelHashedCastingTest.php - Test @ line 21: public function testHashedWithBcrypt() Violations: - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 23: Config::set('hashing.driver', 'bcrypt'); - line 24: Config::set('hashing.bcrypt.rounds', 13); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - Test @ line 39: public function testNotHashedIfAlreadyHashedWithBcrypt() Violations: - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 41: Config::set('hashing.driver', 'bcrypt'); - line 42: Config::set('hashing.bcrypt.rounds', 13); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - Test @ line 56: public function testNotHashedIfNullWithBrcypt() Violations: - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 58: Config::set('hashing.driver', 'bcrypt'); - line 59: Config::set('hashing.bcrypt.rounds', 13); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - Test @ line 72: public function testPassingHashWithHigherCostThrowsExceptionWithBcrypt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 72: public function testPassingHashWithHigherCostThrowsExceptionWithBcrypt() - line 77: $this->expectException(RuntimeException::class); - line 78: $this->expectExceptionMessage("Could not verify the hashed value's configuration."); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 74: Config::set('hashing.driver', 'bcrypt'); - line 75: Config::set('hashing.bcrypt.rounds', 10); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 72: public function testPassingHashWithHigherCostThrowsExceptionWithBcrypt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 86: public function testPassingHashWithLowerCostDoesNotThrowExceptionWithBcrypt() Violations: - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 88: Config::set('hashing.driver', 'bcrypt'); - line 89: Config::set('hashing.bcrypt.rounds', 13); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - Test @ line 103: public function testPassingDifferentHashAlgorithmThrowsExceptionWithBcrypt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 103: public function testPassingDifferentHashAlgorithmThrowsExceptionWithBcrypt() - line 108: $this->expectException(RuntimeException::class); - line 109: $this->expectExceptionMessage("Could not verify the hashed value's configuration."); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 105: Config::set('hashing.driver', 'bcrypt'); - line 106: Config::set('hashing.bcrypt.rounds', 13); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 103: public function testPassingDifferentHashAlgorithmThrowsExceptionWithBcrypt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 117: public function testHashedWithArgon() Violations: - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 119: Config::set('hashing.driver', 'argon'); - line 120: Config::set('hashing.argon.memory', 1234); - line 121: Config::set('hashing.argon.threads', 2); - line 122: Config::set('hashing.argon.time', 7); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - Test @ line 139: public function testNotHashedIfAlreadyHashedWithArgon() Violations: - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 141: Config::set('hashing.driver', 'argon'); - line 142: Config::set('hashing.argon.memory', 1234); - line 143: Config::set('hashing.argon.threads', 2); - line 144: Config::set('hashing.argon.time', 7); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - Test @ line 158: public function testNotHashedIfNullWithArgon() Violations: - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 160: Config::set('hashing.driver', 'argon'); - line 161: Config::set('hashing.argon.memory', 1234); - line 162: Config::set('hashing.argon.threads', 2); - line 163: Config::set('hashing.argon.time', 7); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - Test @ line 176: public function testPassingHashWithHigherMemoryThrowsExceptionWithArgon() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 176: public function testPassingHashWithHigherMemoryThrowsExceptionWithArgon() - line 183: $this->expectException(RuntimeException::class); - line 184: $this->expectExceptionMessage("Could not verify the hashed value's configuration."); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 178: Config::set('hashing.driver', 'argon'); - line 179: Config::set('hashing.argon.memory', 1234); - line 180: Config::set('hashing.argon.threads', 2); - line 181: Config::set('hashing.argon.time', 7); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 176: public function testPassingHashWithHigherMemoryThrowsExceptionWithArgon() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 192: public function testPassingHashWithHigherTimeThrowsExceptionWithArgon() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 192: public function testPassingHashWithHigherTimeThrowsExceptionWithArgon() - line 199: $this->expectException(RuntimeException::class); - line 200: $this->expectExceptionMessage("Could not verify the hashed value's configuration."); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 194: Config::set('hashing.driver', 'argon'); - line 195: Config::set('hashing.argon.memory', 1234); - line 196: Config::set('hashing.argon.threads', 2); - line 197: Config::set('hashing.argon.time', 7); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 192: public function testPassingHashWithHigherTimeThrowsExceptionWithArgon() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 208: public function testPassingHashWithHigherThreadsThrowsExceptionWithArgon() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 208: public function testPassingHashWithHigherThreadsThrowsExceptionWithArgon() - line 215: $this->expectException(RuntimeException::class); - line 216: $this->expectExceptionMessage("Could not verify the hashed value's configuration."); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 210: Config::set('hashing.driver', 'argon'); - line 211: Config::set('hashing.argon.memory', 1234); - line 212: Config::set('hashing.argon.threads', 2); - line 213: Config::set('hashing.argon.time', 7); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 208: public function testPassingHashWithHigherThreadsThrowsExceptionWithArgon() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 224: public function testPassingHashWithLowerMemoryThrowsExceptionWithArgon() Violations: - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 226: Config::set('hashing.driver', 'argon'); - line 227: Config::set('hashing.argon.memory', 3456); - line 228: Config::set('hashing.argon.threads', 2); - line 229: Config::set('hashing.argon.time', 7); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - Test @ line 243: public function testPassingHashWithLowerTimeThrowsExceptionWithArgon() Violations: - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 245: Config::set('hashing.driver', 'argon'); - line 246: Config::set('hashing.argon.memory', 2345); - line 247: Config::set('hashing.argon.threads', 2); - line 248: Config::set('hashing.argon.time', 8); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - Test @ line 262: public function testPassingHashWithLowerThreadsThrowsExceptionWithArgon() Violations: - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 264: Config::set('hashing.driver', 'argon'); - line 265: Config::set('hashing.argon.memory', 2345); - line 266: Config::set('hashing.argon.threads', 3); - line 267: Config::set('hashing.argon.time', 7); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - Test @ line 281: public function testPassingDifferentHashAlgorithmThrowsExceptionWithArgonAndBcrypt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 281: public function testPassingDifferentHashAlgorithmThrowsExceptionWithArgonAndBcrypt() - line 286: $this->expectException(RuntimeException::class); - line 287: $this->expectExceptionMessage("Could not verify the hashed value's configuration."); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 283: Config::set('hashing.driver', 'argon'); - line 284: Config::set('hashing.bcrypt.rounds', 13); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 281: public function testPassingDifferentHashAlgorithmThrowsExceptionWithArgonAndBcrypt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 295: public function testPassingDifferentHashAlgorithmThrowsExceptionWithArgon2idAndBcrypt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 295: public function testPassingDifferentHashAlgorithmThrowsExceptionWithArgon2idAndBcrypt() - line 302: $this->expectException(RuntimeException::class); - line 303: $this->expectExceptionMessage("Could not verify the hashed value's configuration."); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 297: Config::set('hashing.driver', 'argon2id'); - line 298: Config::set('hashing.argon.memory', 2345); - line 299: Config::set('hashing.argon.threads', 2); - line 300: Config::set('hashing.argon.time', 7); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 295: public function testPassingDifferentHashAlgorithmThrowsExceptionWithArgon2idAndBcrypt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/EloquentModelImmutableDateCastingTest.php - Test @ line 22: public function testDatesAreImmutableCastable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 22: public function testDatesAreImmutableCastable() - line 24: $model = TestModelImmutable::create([ - line 29: $this->assertSame('2019-10-01T00:00:00.000000Z', $model->toArray()['date_field']); - line 30: $this->assertSame('2019-10-01T10:15:20.000000Z', $model->toArray()['datetime_field']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 35: public function testDatesAreImmutableAndCustomCastable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 35: public function testDatesAreImmutableAndCustomCastable() - line 37: $model = TestModelCustomImmutable::create([ - line 42: $this->assertSame('2019-10', $model->toArray()['date_field']); - line 43: $this->assertSame('2019-10 10:15', $model->toArray()['datetime_field']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentModelLoadCountTest.php - Test @ line 44: public function testLoadCountSingleRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 44: public function testLoadCountSingleRelation() - line 46: $model = BaseModel::first(); - line 50: $model->loadCount('related1'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 56: public function testLoadCountMultipleRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 56: public function testLoadCountMultipleRelations() - line 58: $model = BaseModel::first(); - line 62: $model->loadCount(['related1', 'related2']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 69: public function testLoadCountDeletedRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 69: public function testLoadCountDeletedRelations() - line 71: $model = BaseModel::first(); - line 75: $model->loadCount('deletedrelated'); - line 79: DeletedRelated::first()->delete(); - line 85: $model->loadCount('deletedrelated'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentModelLoadMaxTest.php - Test @ line 39: public function testLoadMaxSingleRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 39: public function testLoadMaxSingleRelation() - line 41: $model = BaseModel::first(); - line 45: $model->loadMax('related1', 'number'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 51: public function testLoadMaxMultipleRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 51: public function testLoadMaxMultipleRelations() - line 53: $model = BaseModel::first(); - line 57: $model->loadMax(['related1', 'related2'], 'number'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentModelLoadMinTest.php - Test @ line 39: public function testLoadMinSingleRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 39: public function testLoadMinSingleRelation() - line 41: $model = BaseModel::first(); - line 45: $model->loadMin('related1', 'number'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 51: public function testLoadMinMultipleRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 51: public function testLoadMinMultipleRelations() - line 53: $model = BaseModel::first(); - line 57: $model->loadMin(['related1', 'related2'], 'number'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentModelLoadMissingTest.php - Test @ line 52: public function testLoadMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 52: public function testLoadMissing() - line 54: $post = Post::with('comments')->first(); - line 58: $post->loadMissing('comments.parent'); - line 61: $this->assertTrue($post->comments[0]->relationLoaded('parent')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 64: public function testLoadMissingNoUnnecessaryAttributeMutatorAccess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 64: public function testLoadMissingNoUnnecessaryAttributeMutatorAccess() - line 66: $posts = Post::all(); - line 70: $posts->loadMissing('firstComment.parent'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentModelLoadSumTest.php - Test @ line 38: public function testLoadSumSingleRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 38: public function testLoadSumSingleRelation() - line 40: $model = BaseModel::first(); - line 44: $model->loadSum('related1', 'number'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 50: public function testLoadSumMultipleRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 50: public function testLoadSumMultipleRelations() - line 52: $model = BaseModel::first(); - line 56: $model->loadSum(['related1', 'related2'], 'number'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentModelRefreshTest.php - Test @ line 24: public function testItRefreshesModelExcludedByGlobalScope() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 24: public function testItRefreshesModelExcludedByGlobalScope() - line 26: $post = Post::create(['title' => 'mohamed']); - line 28: $post->refresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 24: public function testItRefreshesModelExcludedByGlobalScope() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 31: public function testItRefreshesASoftDeletedModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 31: public function testItRefreshesASoftDeletedModel() - line 33: $post = Post::create(['title' => 'said']); - line 35: Post::find($post->id)->delete(); - line 37: $this->assertFalse($post->trashed()); - line 39: $post->refresh(); - line 41: $this->assertTrue($post->trashed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 44: public function testItSyncsOriginalOnRefresh() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 44: public function testItSyncsOriginalOnRefresh() - line 46: $post = Post::create(['title' => 'pat']); - line 48: Post::find($post->id)->update(['title' => 'patrick']); - line 50: $post->refresh(); - line 52: $this->assertEmpty($post->getDirty()); - line 54: $this->assertSame('patrick', $post->getOriginal('title')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 57: public function testItDoesNotSyncPreviousOnRefresh() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 57: public function testItDoesNotSyncPreviousOnRefresh() - line 59: $post = Post::create(['title' => 'pat']); - line 61: Post::find($post->id)->update(['title' => 'patrick']); - line 63: $post->refresh(); - line 65: $this->assertEmpty($post->getDirty()); - line 66: $this->assertEmpty($post->getPrevious()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 57: public function testItDoesNotSyncPreviousOnRefresh() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 69: public function testAsPivot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 69: public function testAsPivot() - line 72: $table->increments('id'); - line 80: $post->children()->attach($child->getKey()); - line 82: $this->assertEquals(1, $post->children->count()); - line 84: $post->children->first()->refresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentModelRelationAutoloadTest.php - Test @ line 44: public function testRelationAutoloadForCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 44: public function testRelationAutoloadForCollection() - line 46: $post1 = Post::create(); - line 47: $comment1 = $post1->comments()->create(['parent_id' => null]); - line 48: $comment2 = $post1->comments()->create(['parent_id' => $comment1->id]); - line 49: $comment2->likes()->create(); - line 50: $comment2->likes()->create(); - line 53: $comment3 = $post2->comments()->create(['parent_id' => null]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 77: public function testRelationAutoloadForSingleModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 77: public function testRelationAutoloadForSingleModel() - line 79: $post = Post::create(); - line 80: $comment1 = $post->comments()->create(['parent_id' => null]); - line 81: $comment2 = $post->comments()->create(['parent_id' => $comment1->id]); - line 82: $comment2->likes()->create(); - line 83: $comment2->likes()->create(); - line 89: $post->withRelationshipAutoloading(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 102: public function testRelationAutoloadWithSerialization() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 102: public function testRelationAutoloadWithSerialization() - line 104: Model::automaticallyEagerLoadRelationships(); - line 107: $comment1 = $post->comments()->create(['parent_id' => null]); - line 108: $comment2 = $post->comments()->create(['parent_id' => $comment1->id]); - line 109: $comment2->likes()->create(); - line 119: $likes = array_merge($likes, $comment->likes->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 129: public function testRelationAutoloadWithCircularRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 129: public function testRelationAutoloadWithCircularRelations() - line 131: $post = Post::create(); - line 132: $comment1 = $post->comments()->create(['parent_id' => null]); - line 133: $comment2 = $post->comments()->create(['parent_id' => $comment1->id]); - line 134: $post->likes()->create(); - line 138: $post->withRelationshipAutoloading(); - line 139: $comment = $post->comments->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 149: public function testRelationAutoloadWithChaperoneRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 149: public function testRelationAutoloadWithChaperoneRelations() - line 151: Model::automaticallyEagerLoadRelationships(); - line 154: $comment1 = $post->comments()->create(['parent_id' => null]); - line 155: $comment2 = $post->comments()->create(['parent_id' => $comment1->id]); - line 156: $post->likes()->create(); - line 160: $post->load('commentsWithChaperone'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 171: public function testRelationAutoloadVariousNestedMorphRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 171: public function testRelationAutoloadVariousNestedMorphRelations() - line 174: $post->likes()->create(); - line 183: $post->likes()->create(); - line 190: tap($video->comments()->create(), function ($comment) { - line 196: tap($video->comments()->create(), function ($comment) { - line 208: $likes->withRelationshipAutoloading(); - line 221: $this->assertTrue($videoLike->relationLoaded('likeable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 227: public function testRelationAutoloadWorksOnFactoryMake() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 227: public function testRelationAutoloadWorksOnFactoryMake() - line 229: Model::automaticallyEagerLoadRelationships(); - line 233: $tags = Tag::factory()->times(3)->make(); - line 237: $post->tags()->saveMany($tags); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentModelStringCastingTest.php - Test @ line 26: public function testSavingCastedAttributesToDatabase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 26: public function testSavingCastedAttributesToDatabase() - line 29: $model = StringCasts::create([ - line 34: $this->assertSame(['key1' => 'value1'], $model->getOriginal('array_attributes')); - line 35: $this->assertSame(['key1' => 'value1'], $model->getAttribute('array_attributes')); - line 37: $this->assertSame(['json_key' => 'json_value'], $model->getOriginal('json_attributes')); - line 38: $this->assertSame(['json_key' => 'json_value'], $model->getAttribute('json_attributes')); - line 42: $this->assertEquals($stdClass, $model->getOriginal('object_attributes')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 46: public function testSavingCastedEmptyAttributesToDatabase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 46: public function testSavingCastedEmptyAttributesToDatabase() - line 49: $model = StringCasts::create([ - line 54: $this->assertSame([], $model->getOriginal('array_attributes')); - line 55: $this->assertSame([], $model->getAttribute('array_attributes')); - line 57: $this->assertSame([], $model->getOriginal('json_attributes')); - line 58: $this->assertSame([], $model->getAttribute('json_attributes')); - line 60: $this->assertSame([], $model->getOriginal('object_attributes')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentModelTest.php - Test @ line 27: public function testUserCanUpdateNullableDate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 27: public function testUserCanUpdateNullableDate() - line 29: $user = TestModel1::create([ - line 33: $user->fill([ - line 36: $this->assertTrue($user->isDirty('nullable_date')); - line 38: $user->save(); - line 39: $this->assertEquals($now->toDateString(), $user->nullable_date->toDateString()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 42: public function testAttributeChanges() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 17. Evidence: - line 42: public function testAttributeChanges() - line 44: $user = TestModel2::create([ - line 48: $this->assertEmpty($user->getDirty()); - line 49: $this->assertEmpty($user->getChanges()); - line 50: $this->assertEmpty($user->getPrevious()); - line 51: $this->assertFalse($user->isDirty()); - line 52: $this->assertFalse($user->wasChanged()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 71: public function testDiscardChanges() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 23. Evidence: - line 71: public function testDiscardChanges() - line 73: $user = TestModel2::create([ - line 77: $this->assertEmpty($user->getDirty()); - line 78: $this->assertEmpty($user->getChanges()); - line 79: $this->assertEmpty($user->getPrevious()); - line 80: $this->assertFalse($user->isDirty()); - line 81: $this->assertFalse($user->wasChanged()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 107: public function testInsertRecordWithReservedWordFieldName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 107: public function testInsertRecordWithReservedWordFieldName() - line 110: $table->id(); - line 124: $model->newInstance()->create([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentModelWithoutEventsTest.php - Test @ line 19: public function testWithoutEventsRegistersBootedListenersForLater() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 19: public function testWithoutEventsRegistersBootedListenersForLater() - line 21: $model = AutoFilledModel::withoutEvents(function () { - line 27: $model->save(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentMorphCountEagerLoadingTest.php - Test @ line 51: public function testWithMorphCountLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 51: public function testWithMorphCountLoading() - line 55: $morphTo->morphWithCount([Post::class => ['likes']]); - line 59: $this->assertTrue($comments[0]->relationLoaded('commentable')); - line 61: $this->assertTrue($comments[1]->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 65: public function testWithMorphCountLoadingWithSingleRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 65: public function testWithMorphCountLoadingWithSingleRelation() - line 69: $morphTo->morphWithCount([Post::class => 'likes']); - line 73: $this->assertTrue($comments[0]->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentMorphCountLazyEagerLoadingTest.php - Test @ line 37: public function testLazyEagerLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 37: public function testLazyEagerLoading() - line 39: $comment = Comment::first(); - line 41: $comment->loadMorphCount('commentable', [ - line 45: $this->assertTrue($comment->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentMorphEagerLoadingTest.php - Test @ line 56: public function testWithMorphLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 56: public function testWithMorphLoading() - line 60: $morphTo->morphWith([Post::class => ['user']]); - line 66: $this->assertTrue($comments[0]->relationLoaded('commentable')); - line 67: $this->assertInstanceOf(Post::class, $comments[0]->getRelation('commentable')); - line 68: $this->assertTrue($comments[0]->commentable->relationLoaded('user')); - line 69: $this->assertTrue($comments[1]->relationLoaded('commentable')); - line 70: $this->assertInstanceOf(Video::class, $comments[1]->getRelation('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 73: public function testWithMorphLoadingWithSingleRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 73: public function testWithMorphLoadingWithSingleRelation() - line 77: $morphTo->morphWith([Post::class => 'user']); - line 81: $this->assertTrue($comments[0]->relationLoaded('commentable')); - line 82: $this->assertTrue($comments[0]->commentable->relationLoaded('user')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 85: public function testMorphLoadingMixedWithTrashedRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 85: public function testMorphLoadingMixedWithTrashedRelations() - line 87: $action = Action::query() - line 93: $this->assertTrue($action[0]->relationLoaded('target')); - line 94: $this->assertInstanceOf(Video::class, $action[0]->getRelation('target')); - line 95: $this->assertTrue($action[1]->relationLoaded('target')); - line 96: $this->assertInstanceOf(User::class, $action[1]->getRelation('target')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 99: public function testMorphWithTrashedRelationLazyLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 99: public function testMorphWithTrashedRelationLazyLoading() - line 101: $deletedUser = User::forceCreate(['deleted_at' => now()]); - line 104: $action->target()->associate($deletedUser)->save(); - line 109: $action->unsetRelation('target'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 99: public function testMorphWithTrashedRelationLazyLoading() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/EloquentMorphLazyEagerLoadingTest.php - Test @ line 36: public function testLazyEagerLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 36: public function testLazyEagerLoading() - line 38: $comment = Comment::first(); - line 40: $comment->loadMorph('commentable', [ - line 44: $this->assertTrue($comment->relationLoaded('commentable')); - line 45: $this->assertTrue($comment->commentable->relationLoaded('user')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentMorphManyTest.php - Test @ line 32: public function testUpdateModelWithDefaultWithCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 32: public function testUpdateModelWithDefaultWithCount() - line 34: $post = Post::create(['title' => Str::random()]); - line 36: $post->update(['title' => 'new name']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 41: public function test_self_referencing_existence_query() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 41: public function test_self_referencing_existence_query() - line 43: $post = Post::create(['title' => 'foo']); - line 45: $comment = tap((new Comment(['name' => 'foo']))->commentable()->associate($post))->save(); - line 47: (new Comment(['name' => 'bar']))->commentable()->associate($comment)->save(); - line 51: $this->assertEquals([1], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 54: public function testCanMorphOne() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 54: public function testCanMorphOne() - line 56: $post = Post::create(['title' => 'Your favorite book by C.S. Lewis']); - line 59: $oldestComment = tap((new Comment(['name' => 'The Allegory Of Love']))->commentable()->associate($post))->save(); - line 62: tap((new Comment(['name' => 'The Screwtape Letters']))->commentable()->associate($post))->save(); - line 65: $latestComment = tap((new Comment(['name' => 'The Silver Chair']))->commentable()->associate($post))->save(); - line 67: $this->assertInstanceOf(MorphOne::class, $post->comments()->one()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentMorphOneIsTest.php - Test @ line 29: public function testChildIsNotNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 29: public function testChildIsNotNull() - line 31: $parent = Post::first(); - line 34: $this->assertFalse($parent->attachment()->is($child)); - line 35: $this->assertTrue($parent->attachment()->isNot($child)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 38: public function testChildIsModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 38: public function testChildIsModel() - line 40: $parent = Post::first(); - line 43: $this->assertTrue($parent->attachment()->is($child)); - line 44: $this->assertFalse($parent->attachment()->isNot($child)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 47: public function testChildIsNotAnotherModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 47: public function testChildIsNotAnotherModel() - line 49: $parent = Post::first(); - line 53: $this->assertFalse($parent->attachment()->is($child)); - line 54: $this->assertTrue($parent->attachment()->isNot($child)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 57: public function testNullChildIsNotModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 57: public function testNullChildIsNotModel() - line 59: $parent = Post::first(); - line 64: $this->assertFalse($parent->attachment()->is($child)); - line 65: $this->assertTrue($parent->attachment()->isNot($child)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 68: public function testChildIsNotModelWithAnotherTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 68: public function testChildIsNotModelWithAnotherTable() - line 70: $parent = Post::first(); - line 72: $child->setTable('foo'); - line 74: $this->assertFalse($parent->attachment()->is($child)); - line 75: $this->assertTrue($parent->attachment()->isNot($child)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 78: public function testChildIsNotModelWithAnotherConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 78: public function testChildIsNotModelWithAnotherConnection() - line 80: $parent = Post::first(); - line 82: $child->setConnection('foo'); - line 84: $this->assertFalse($parent->attachment()->is($child)); - line 85: $this->assertTrue($parent->attachment()->isNot($child)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentMorphToGlobalScopesTest.php - Test @ line 34: public function testWithGlobalScopes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 34: public function testWithGlobalScopes() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function testWithGlobalScopes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 42: public function testWithoutGlobalScope() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 42: public function testWithoutGlobalScope() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 52: public function testWithoutGlobalScopes() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 52: public function testWithoutGlobalScopes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 62: public function testLazyLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 62: public function testLazyLoading() - line 64: $comment = Comment::latest('id')->first(); - line 65: $post = $comment->commentable()->withoutGlobalScopes()->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 62: public function testLazyLoading() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/EloquentMorphToIsTest.php - Test @ line 29: public function testParentIsNotNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 29: public function testParentIsNotNull() - line 31: $child = Comment::first(); - line 34: $this->assertFalse($child->commentable()->is($parent)); - line 35: $this->assertTrue($child->commentable()->isNot($parent)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 38: public function testParentIsModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 38: public function testParentIsModel() - line 40: $child = Comment::first(); - line 43: $this->assertTrue($child->commentable()->is($parent)); - line 44: $this->assertFalse($child->commentable()->isNot($parent)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 47: public function testParentIsNotAnotherModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 47: public function testParentIsNotAnotherModel() - line 49: $child = Comment::first(); - line 53: $this->assertFalse($child->commentable()->is($parent)); - line 54: $this->assertTrue($child->commentable()->isNot($parent)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 57: public function testNullParentIsNotModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 57: public function testNullParentIsNotModel() - line 59: $child = Comment::first(); - line 60: $child->commentable()->dissociate(); - line 63: $this->assertFalse($child->commentable()->is($parent)); - line 64: $this->assertTrue($child->commentable()->isNot($parent)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 67: public function testParentIsNotModelWithAnotherTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 67: public function testParentIsNotModelWithAnotherTable() - line 69: $child = Comment::first(); - line 71: $parent->setTable('foo'); - line 73: $this->assertFalse($child->commentable()->is($parent)); - line 74: $this->assertTrue($child->commentable()->isNot($parent)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 77: public function testParentIsNotModelWithAnotherConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 77: public function testParentIsNotModelWithAnotherConnection() - line 79: $child = Comment::first(); - line 81: $parent->setConnection('foo'); - line 83: $this->assertFalse($child->commentable()->is($parent)); - line 84: $this->assertTrue($child->commentable()->isNot($parent)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentMorphToLazyEagerLoadingTest.php - Test @ line 44: public function testLazyEagerLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 44: public function testLazyEagerLoading() - line 46: $comments = Comment::all(); - line 50: $comments->load('commentable'); - line 53: $this->assertTrue($comments[0]->relationLoaded('commentable')); - line 54: $this->assertTrue($comments[0]->commentable->relationLoaded('user')); - line 55: $this->assertTrue($comments[1]->relationLoaded('commentable')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentMorphToSelectTest.php - Test @ line 36: public function testSelectRaw() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 36: public function testSelectRaw() - line 39: $query->selectRaw('id'); - line 42: $this->assertEquals(['id' => 1], $comments[0]->commentable->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 45: public function testSelectSub() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 45: public function testSelectSub() - line 48: $query->selectSub(function ($query) { - line 53: $this->assertEquals(['id' => 1], $comments[0]->commentable->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 56: public function testAddSelect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 56: public function testAddSelect() - line 59: $query->addSelect('id'); - line 62: $this->assertEquals(['id' => 1], $comments[0]->commentable->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 65: public function testLazyLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 65: public function testLazyLoading() - line 67: $comment = Comment::first(); - line 68: $post = $comment->commentable()->select('id')->first(); - line 70: $this->assertEquals(['id' => 1], $post->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentMorphToTouchesTest.php - Test @ line 28: public function testNotNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 28: public function testNotNull() - line 30: $comment = (new Comment)->commentable()->associate(Post::first()); - line 34: $comment->save(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentMultiDimensionalArrayEagerLoadingTest.php - Test @ line 70: public function testItCanEagerLoad() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 70: public function testItCanEagerLoad() - line 74: $users = User::query() - line 87: $this->assertTrue($users[0]->relationLoaded('avatar')); - line 89: $this->assertTrue($users[0]->relationLoaded('posts')); - line 91: $this->assertTrue($users[0]->posts[0]->isNot($users[0]->posts[1])); - line 92: $this->assertTrue($users[0]->posts->every->relationLoaded('image')); - line 94: $this->assertTrue($users[0]->posts[0]->image->isNot($users[0]->posts[1]->image)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 102: public function testItAppliesConstraintsViaClosuresAndCanContinueEagerLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 102: public function testItAppliesConstraintsViaClosuresAndCanContinueEagerLoading() - line 108: 'posts' => fn ($query) => $query->withCount('comments')->with([ - line 118: $this->assertTrue($users[0]->relationLoaded('posts')); - line 120: $users[0]->posts->every(fn ($post) => $this->assertEquals(1, $post->comments_count)); - line 121: $this->assertTrue($users[0]->posts->every->relationLoaded('comments')); - line 123: $this->assertTrue($users[0]->posts->flatMap->comments->every->relationLoaded('tags')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 126: public function testItCanSpecifyAttributesToSelectInKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 126: public function testItCanSpecifyAttributesToSelectInKeys() - line 130: $users = User::query() - line 142: $this->assertTrue($users[0]->relationLoaded('posts')); - line 144: $users[0]->posts->every(fn ($post) => $this->assertSame(['id', 'title', 'user_id'], array_keys($post->getAttributes()))); - line 145: $this->assertTrue($users[0]->posts->every->relationLoaded('comments')); - line 147: $users[0]->posts->flatMap->comments->every(fn ($post) => $this->assertSame(['id', 'content', 'post_id'], array_keys($post->getAttributes()))); - line 148: $this->assertTrue($users[0]->posts->flatMap->comments->every->relationLoaded('tags')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 152: public function testItMixesWithDotNotation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 152: public function testItMixesWithDotNotation() - line 156: $users = User::query() - line 167: $this->assertTrue($users[0]->relationLoaded('posts')); - line 169: $this->assertTrue($users[0]->posts->every->relationLoaded('comments')); - line 171: $this->assertTrue($users[0]->posts->every->relationLoaded('image')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 175: public function testItMixesConstraintsFromDotNotation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 175: public function testItMixesConstraintsFromDotNotation() - line 183: 'comments' => fn ($query) => $query->withCount('tags'), - line 190: $this->assertTrue($users[0]->relationLoaded('posts')); - line 192: $users[0]->posts->every(fn ($post) => $this->assertNull($post->content)); - line 193: $this->assertTrue($users[0]->posts->every->relationLoaded('comments')); - line 195: $users[0]->posts->flatMap->comments->every(fn ($comment) => $this->assertEquals(3, $comment->tags_count)); - line 196: $this->assertTrue($users[0]->posts->flatMap->comments->every->relationLoaded('tags')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentNamedScopeAttributeTest.php - Test @ line 25: public function test_it_can_query_named_scoped_from_the_query_builder(string $methodName) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 25: public function test_it_can_query_named_scoped_from_the_query_builder(string $methodName) - line 27: $query = Fixtures\NamedScopeUser::query()->{$methodName}(true); - line 29: $this->assertSame($this->query, $query->toRawSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentPaginateTest.php - Test @ line 37: public function testPaginationWithDistinct() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 37: public function testPaginationWithDistinct() - line 40: Post::create(['title' => 'Hello world']); - line 44: $query = Post::query()->distinct(); - line 46: $this->assertEquals(6, $query->get()->count()); - line 47: $this->assertEquals(6, $query->count()); - line 48: $this->assertEquals(6, $query->paginate()->total()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 51: public function testPaginationWithDistinctAndSelect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 51: public function testPaginationWithDistinctAndSelect() - line 55: Post::create(['title' => 'Hello world']); - line 59: $query = Post::query()->distinct()->select('title'); - line 61: $this->assertEquals(2, $query->get()->count()); - line 62: $this->assertEquals(6, $query->count()); - line 63: $this->assertEquals(6, $query->paginate()->total()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 66: public function testPaginationWithDistinctColumnsAndSelect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 66: public function testPaginationWithDistinctColumnsAndSelect() - line 69: Post::create(['title' => 'Hello world']); - line 73: $query = Post::query()->distinct('title')->select('title'); - line 75: $this->assertEquals(2, $query->get()->count()); - line 76: $this->assertEquals(2, $query->count()); - line 77: $this->assertEquals(2, $query->paginate()->total()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 80: public function testPaginationWithDistinctColumnsAndSelectAndJoin() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 80: public function testPaginationWithDistinctColumnsAndSelectAndJoin() - line 83: $user = User::create(); - line 92: $query = User::query()->join('posts', 'posts.user_id', '=', 'users.id') - line 95: $this->assertEquals(5, $query->get()->count()); - line 96: $this->assertEquals(5, $query->count()); - line 97: $this->assertEquals(5, $query->paginate()->total()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentPivotEventsTest.php - Test @ line 55: public function testPivotWillTriggerEventsToBeFired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 55: public function testPivotWillTriggerEventsToBeFired() - line 57: $user = PivotEventsTestUser::forceCreate(['email' => 'taylor@laravel.com']); - line 61: $project->collaborators()->attach($user); - line 65: $project->collaborators()->sync([$user2->id]); - line 69: $project->collaborators()->sync([$user->id => ['role' => 'owner'], $user2->id => ['role' => 'contributor']]); - line 73: $project->collaborators()->detach($user); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 55: public function testPivotWillTriggerEventsToBeFired() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 77: public function testPivotWithPivotValueWillTriggerEventsToBeFired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 77: public function testPivotWithPivotValueWillTriggerEventsToBeFired() - line 79: $user = PivotEventsTestUser::forceCreate(['email' => 'taylor@laravel.com']); - line 83: $project->managers()->attach($user); - line 85: $project->managers()->attach($user2); - line 88: $project->managers()->updateExistingPivot($user->id, ['permissions' => ['foo', 'bar']]); - line 90: $project->managers()->detach($user2); - line 93: $project->managers()->sync([$user2->id]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 77: public function testPivotWithPivotValueWillTriggerEventsToBeFired() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 105: public function testPivotWithPivotCriteriaTriggerEventsToBeFiredOnCreateUpdateNoneOnDetach() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 105: public function testPivotWithPivotCriteriaTriggerEventsToBeFiredOnCreateUpdateNoneOnDetach() - line 107: $user = PivotEventsTestUser::forceCreate(['email' => 'taylor@laravel.com']); - line 111: $project->contributors()->sync([$user->id, $user2->id]); - line 115: $project->contributors()->detach($user->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 105: public function testPivotWithPivotCriteriaTriggerEventsToBeFiredOnCreateUpdateNoneOnDetach() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 119: public function testCustomPivotUpdateEventHasExistingAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 119: public function testCustomPivotUpdateEventHasExistingAttributes() - line 123: $user = PivotEventsTestUser::forceCreate([ - line 131: $project->collaborators()->attach($user, ['permissions' => ['foo', 'bar']]); - line 133: $project->collaborators()->updateExistingPivot($user->id, ['role' => 'Lead Developer']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 121: $_SERVER['pivot_attributes'] = false; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 119: public function testCustomPivotUpdateEventHasExistingAttributes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 146: public function testCustomPivotUpdateEventHasDirtyCorrect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 146: public function testCustomPivotUpdateEventHasDirtyCorrect() - line 150: $user = PivotEventsTestUser::forceCreate([ - line 158: $project->collaborators()->attach($user, ['permissions' => ['foo', 'bar'], 'role' => 'Developer']); - line 160: $project->collaborators()->updateExistingPivot($user->id, ['role' => 'Lead Developer']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 148: $_SERVER['pivot_dirty_attributes'] = false; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 146: public function testCustomPivotUpdateEventHasDirtyCorrect() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 165: public function testCustomMorphPivotClassDetachAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 165: public function testCustomMorphPivotClassDetachAttributes() - line 167: $project = PivotEventsTestProject::forceCreate([ - line 180: $project->equipments()->save($equipment); - line 181: $equipment->projects()->sync([]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentPivotSerializationTest.php - Test @ line 47: public function testPivotCanBeSerializedAndRestored() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 47: public function testPivotCanBeSerializedAndRestored() - line 49: $user = PivotSerializationTestUser::forceCreate(['email' => 'taylor@laravel.com']); - line 51: $project->collaborators()->attach($user); - line 53: $project = $project->fresh(); - line 55: $class = new PivotSerializationTestClass($project->collaborators->first()->pivot); - line 58: $this->assertEquals($project->collaborators->first()->pivot->user_id, $class->pivot->user_id); - line 59: $this->assertEquals($project->collaborators->first()->pivot->project_id, $class->pivot->project_id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 64: public function testMorphPivotCanBeSerializedAndRestored() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 64: public function testMorphPivotCanBeSerializedAndRestored() - line 66: $project = PivotSerializationTestProject::forceCreate(['name' => 'Test Project']); - line 68: $project->tags()->attach($tag); - line 70: $project = $project->fresh(); - line 72: $class = new PivotSerializationTestClass($project->tags->first()->pivot); - line 75: $this->assertEquals($project->tags->first()->pivot->tag_id, $class->pivot->tag_id); - line 76: $this->assertEquals($project->tags->first()->pivot->taggable_id, $class->pivot->taggable_id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 82: public function testCollectionOfPivotsCanBeSerializedAndRestored() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 82: public function testCollectionOfPivotsCanBeSerializedAndRestored() - line 84: $user = PivotSerializationTestUser::forceCreate(['email' => 'taylor@laravel.com']); - line 88: $project->collaborators()->attach($user); - line 89: $project->collaborators()->attach($user2); - line 91: $project = $project->fresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 82: public function testCollectionOfPivotsCanBeSerializedAndRestored() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 100: public function testCollectionOfMorphPivotsCanBeSerializedAndRestored() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 100: public function testCollectionOfMorphPivotsCanBeSerializedAndRestored() - line 102: $tag = PivotSerializationTestTag::forceCreate(['name' => 'Test Tag 1']); - line 106: $project->tags()->attach($tag); - line 107: $project->tags()->attach($tag2); - line 109: $project = $project->fresh(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 100: public function testCollectionOfMorphPivotsCanBeSerializedAndRestored() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/EloquentPivotTest.php - Test @ line 46: public function testPivotConvenientHelperReturnExpectedResult() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 46: public function testPivotConvenientHelperReturnExpectedResult() - line 48: $user = PivotTestUser::forceCreate(['email' => 'taylor@laravel.com']); - line 52: $project->contributors()->attach($user); - line 53: $project->collaborators()->attach($user2); - line 55: tap($project->contributors->first()->pivot, function ($pivot) { - line 62: tap($project->collaborators->first()->pivot, function ($pivot) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 70: public function testPivotValuesCanBeSetFromRelationDefinition() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 70: public function testPivotValuesCanBeSetFromRelationDefinition() - line 72: $user = PivotTestUser::forceCreate(['email' => 'taylor@laravel.com']); - line 76: $this->assertSame('active', $user->activeSubscriptions()->newPivot()->status); - line 77: $this->assertSame('inactive', $user->inactiveSubscriptions()->newPivot()->status); - line 79: $user->activeSubscriptions()->attach($active); - line 80: $user->inactiveSubscriptions()->attach($inactive); - line 82: $this->assertSame('active', $user->activeSubscriptions->first()->pivot->status); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentPivotWithoutTimestampTest.php - Test @ line 18: public function testAttachingModelWithoutTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 18: public function testAttachingModelWithoutTimestamps() - line 20: $now = $this->freezeSecond(); - line 22: $user = App\User::factory()->create(); - line 23: $role = App\Role::factory()->create(); - line 25: $user->roles()->attach($role->getKey(), ['notes' => 'Laravel']); - line 28: 'user_id' => $user->getKey(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentPrunableTest.php - Test @ line 37: public function testPrunableMethodMustBeImplemented() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 37: public function testPrunableMethodMustBeImplemented() - line 39: $this->expectException(LogicException::class); - line 40: $this->expectExceptionMessage( - line 44: PrunableTestModelMissingPrunableMethod::create()->pruneAll(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 37: public function testPrunableMethodMustBeImplemented() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 47: public function testPrunesRecords() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 47: public function testPrunesRecords() - line 51: collect(range(1, 5000))->map(function ($id) { - line 57: $count = (new PrunableTestModel)->pruneAll(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 65: public function testPrunesSoftDeletedRecords() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 65: public function testPrunesSoftDeletedRecords() - line 69: collect(range(1, 5000))->map(function ($id) { - line 75: $count = (new PrunableSoftDeleteTestModel)->pruneAll(); - line 79: $this->assertEquals(2000, PrunableSoftDeleteTestModel::withTrashed()->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 84: public function testPruneWithCustomPruneMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 84: public function testPruneWithCustomPruneMethod() - line 88: collect(range(1, 5000))->map(function ($id) { - line 94: $count = (new PrunableWithCustomPruneMethodTestModel)->pruneAll(); - line 98: $this->assertFalse((bool) PrunableWithCustomPruneMethodTestModel::orderBy('id', 'desc')->first()->pruned); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 104: public function testPruneWithExceptionAtOneOfModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 104: public function testPruneWithExceptionAtOneOfModels() - line 109: collect(range(1, 5000))->map(function ($id) { - line 115: $count = (new PrunableWithException)->pruneAll(); - line 122: Exceptions::assertReported(fn (Exception $exception) => $exception->getMessage() === 'foo bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentPushTest.php - Test @ line 31: public function testPushMethodSavesTheRelationshipsRecursively() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 31: public function testPushMethodSavesTheRelationshipsRecursively() - line 35: $user->save(); - line 36: $user->posts()->create(['title' => 'Test title']); - line 39: $post->comments()->create(['comment' => 'Test comment']); - line 41: $user = $user->fresh(); - line 45: $user->push(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentStrictLoadingTest.php - Test @ line 40: public function testStrictModeThrowsAnExceptionOnLazyLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 40: public function testStrictModeThrowsAnExceptionOnLazyLoading() - line 42: $this->expectException(LazyLoadingViolationException::class); - line 43: $this->expectExceptionMessage('Attempted to lazy load'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 40: public function testStrictModeThrowsAnExceptionOnLazyLoading() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 53: public function testStrictModeDoesntThrowAnExceptionOnLazyLoadingWithSingleModel() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 53: public function testStrictModeDoesntThrowAnExceptionOnLazyLoadingWithSingleModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 62: public function testStrictModeDoesntThrowAnExceptionOnAttributes() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 62: public function testStrictModeDoesntThrowAnExceptionOnAttributes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 71: public function testStrictModeDoesntThrowAnExceptionOnEagerLoading() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 71: public function testStrictModeDoesntThrowAnExceptionOnEagerLoading() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 83: public function testStrictModeDoesntThrowAnExceptionOnLazyEagerLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 83: public function testStrictModeDoesntThrowAnExceptionOnLazyEagerLoading() - line 85: EloquentStrictLoadingTestModel1::create(); - line 90: $models->load('modelTwos'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 83: public function testStrictModeDoesntThrowAnExceptionOnLazyEagerLoading() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 95: public function testStrictModeDoesntThrowAnExceptionOnSingleModelLoading() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 95: public function testStrictModeDoesntThrowAnExceptionOnSingleModelLoading() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 104: public function testStrictModeThrowsAnExceptionOnLazyLoadingInRelations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 104: public function testStrictModeThrowsAnExceptionOnLazyLoadingInRelations() - line 106: $this->expectException(LazyLoadingViolationException::class); - line 107: $this->expectExceptionMessage('Attempted to lazy load'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 104: public function testStrictModeThrowsAnExceptionOnLazyLoadingInRelations() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 136: public function testStrictModeWithOverriddenHandlerOnLazyLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 136: public function testStrictModeWithOverriddenHandlerOnLazyLoading() - line 138: $this->expectException(RuntimeException::class); - line 139: $this->expectExceptionMessage('Violated'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 136: public function testStrictModeWithOverriddenHandlerOnLazyLoading() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 149: public function testStrictModeDoesntThrowAnExceptionOnManuallyMadeModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 149: public function testStrictModeDoesntThrowAnExceptionOnManuallyMadeModel() - line 151: $model1 = EloquentStrictLoadingTestModel1WithLocalPreventsLazyLoading::make(); - line 153: $model1->modelTwos->push($model2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 149: public function testStrictModeDoesntThrowAnExceptionOnManuallyMadeModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 158: public function testStrictModeDoesntThrowAnExceptionOnRecentlyCreatedModel() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 158: public function testStrictModeDoesntThrowAnExceptionOnRecentlyCreatedModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/EloquentTouchParentWithGlobalScopeTest.php - Test @ line 29: public function testBasicCreateAndRetrieve() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 29: public function testBasicCreateAndRetrieve() - line 31: $post = Post::create(['title' => Str::random(), 'updated_at' => '2016-10-10 10:10:10']); - line 33: $this->assertSame('2016-10-10', $post->fresh()->updated_at->toDateString()); - line 35: $post->comments()->create(['title' => Str::random()]); - line 37: $this->assertNotSame('2016-10-10', $post->fresh()->updated_at->toDateString()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentTransactionWithAfterCommitTests.php - Test @ line 28: public function testObserverIsCalledOnTestsWithAfterCommit() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 28: public function testObserverIsCalledOnTestsWithAfterCommit() - line 30: User::observe($observer = EloquentTransactionWithAfterCommitTestsUserObserver::resetting()); - line 32: $user1 = User::create(UserFactory::new()->raw()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 38: public function testObserverCalledWithAfterCommitWhenInsideTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 38: public function testObserverCalledWithAfterCommitWhenInsideTransaction() - line 40: User::observe($observer = EloquentTransactionWithAfterCommitTestsUserObserver::resetting()); - line 42: $user1 = DB::transaction(fn () => User::create(UserFactory::new()->raw())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 48: public function testObserverCalledWithAfterCommitWhenInsideTransactionWithDispatchSync() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 48: public function testObserverCalledWithAfterCommitWhenInsideTransactionWithDispatchSync() - line 50: User::observe($observer = EloquentTransactionWithAfterCommitTestsUserObserverUsingDispatchSync::resetting()); - line 52: $user1 = DB::transaction(fn () => User::create(UserFactory::new()->raw())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 63: public function testObserverIsCalledOnTestsWithAfterCommitWhenUsingSavepoint() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 63: public function testObserverIsCalledOnTestsWithAfterCommitWhenUsingSavepoint() - line 65: User::observe($observer = EloquentTransactionWithAfterCommitTestsUserObserver::resetting()); - line 67: $user1 = User::createOrFirst(UserFactory::new()->raw()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 73: public function testObserverIsCalledOnTestsWithAfterCommitWhenUsingSavepointAndInsideTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 73: public function testObserverIsCalledOnTestsWithAfterCommitWhenUsingSavepointAndInsideTransaction() - line 75: User::observe($observer = EloquentTransactionWithAfterCommitTestsUserObserver::resetting()); - line 77: $user1 = DB::transaction(fn () => User::createOrFirst(UserFactory::new()->raw())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 83: public function testObserverIsCalledEvenWhenDeeplyNestingTransactions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 83: public function testObserverIsCalledEvenWhenDeeplyNestingTransactions() - line 85: User::observe($observer = EloquentTransactionWithAfterCommitTestsUserObserver::resetting()); - line 90: return tap(User::createOrFirst(UserFactory::new()->raw()), function () use ($observer) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentTransactionWithAfterCommitUsingRefreshDatabaseOnMultipleConnectionsTest.php - Test @ line 25: public function testAfterCommitCallbacksAreCalledCorrectlyWhenNoAppTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 25: public function testAfterCommitCallbacksAreCalledCorrectlyWhenNoAppTransaction() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 25: public function testAfterCommitCallbacksAreCalledCorrectlyWhenNoAppTransaction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 36: public function testAfterCommitCallbacksAreCalledWithWrappingTransactionsCorrectly() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 36: public function testAfterCommitCallbacksAreCalledWithWrappingTransactionsCorrectly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/EloquentUpdateTest.php - Test @ line 37: public function testBasicUpdate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 37: public function testBasicUpdate() - line 39: TestUpdateModel1::create([ - line 44: TestUpdateModel1::where('title', 'Ms.')->delete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 49: public function testUpdateWithLimitsAndOrders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 49: public function testUpdateWithLimitsAndOrders() - line 52: $this->markTestSkipped('The limit keyword is not supported on MSSQL.'); - line 59: TestUpdateModel1::latest('id')->limit(3)->update(['title' => 'Dr.']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 65: public function testUpdatedAtWithJoins() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 65: public function testUpdatedAtWithJoins() - line 67: TestUpdateModel1::create([ - line 77: $join->on('test_model1.id', '=', 'test_model2.id') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 86: public function testSoftDeleteWithJoins() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 86: public function testSoftDeleteWithJoins() - line 88: TestUpdateModel1::create([ - line 98: $join->on('test_model1.id', '=', 'test_model2.id') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 105: public function testIncrement() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 105: public function testIncrement() - line 107: TestUpdateModel3::create([ - line 113: ])->delete(); - line 117: $models = TestUpdateModel3::withoutGlobalScopes()->orderBy('id')->get(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 122: public function testIncrementOrDecrementIgnoresGlobalScopes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 122: public function testIncrementOrDecrementIgnoresGlobalScopes() - line 127: ]), fn ($model) => $model->delete()); - line 129: $deletedModel->increment('counter'); - line 133: $deletedModel->fresh(); - line 136: $deletedModel->decrement('counter'); - line 137: $this->assertEquals(0, $deletedModel->fresh()->counter); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 140: public function testUpdateSyncsPrevious() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 140: public function testUpdateSyncsPrevious() - line 142: $model = TestUpdateModel1::create([ - line 147: $model->update(['title' => 'Dr.']); - line 150: $this->assertSame('Dr.', $model->getOriginal('title')); - line 151: $this->assertSame(['title' => 'Dr.'], $model->getChanges()); - line 152: $this->assertSame(['title' => 'Ms.'], $model->getPrevious()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 155: public function testSaveSyncsPrevious() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 155: public function testSaveSyncsPrevious() - line 157: $model = TestUpdateModel1::create([ - line 163: $model->save(); - line 166: $this->assertSame('Dr.', $model->getOriginal('title')); - line 167: $this->assertSame(['title' => 'Dr.'], $model->getChanges()); - line 168: $this->assertSame(['title' => 'Ms.'], $model->getPrevious()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 171: public function testIncrementSyncsPrevious() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 171: public function testIncrementSyncsPrevious() - line 173: $model = TestUpdateModel3::create([ - line 177: $model->increment('counter'); - line 180: $this->assertSame(['counter' => 1], $model->getChanges()); - line 181: $this->assertSame(['counter' => 0], $model->getPrevious()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentWhereHasMorphTest.php - Test @ line 56: public function testWhereHasMorph() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 56: public function testWhereHasMorph() - line 59: $query->where('title', 'foo'); - line 62: $this->assertEquals([1, 4], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 65: public function testWhereHasMorphWithMorphMap() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 65: public function testWhereHasMorphWithMorphMap() - line 67: Relation::morphMap(['posts' => Post::class]); - line 69: Comment::where('commentable_type', Post::class)->update(['commentable_type' => 'posts']); - line 73: $query->where('title', 'foo'); - line 76: $this->assertEquals([1, 4], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 82: public function testWhereHasMorphWithWildcard() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 82: public function testWhereHasMorphWithWildcard() - line 85: Comment::where('commentable_type', Video::class)->delete(); - line 88: ->whereHasMorph('commentable', '*', function (Builder $query) { - line 92: $this->assertEquals([1, 4], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 95: public function testWhereHasMorphWithWildcardAndMorphMap() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 95: public function testWhereHasMorphWithWildcardAndMorphMap() - line 97: Relation::morphMap(['posts' => Post::class]); - line 99: Comment::where('commentable_type', Post::class)->update(['commentable_type' => 'posts']); - line 103: $query->where('title', 'foo'); - line 106: $this->assertEquals([1, 4], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 112: public function testWhereHasMorphWithWildcardAndOnlyNullMorphTypes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 112: public function testWhereHasMorphWithWildcardAndOnlyNullMorphTypes() - line 114: Comment::whereNotNull('commentable_type')->forceDelete(); - line 117: ->whereHasMorph('commentable', '*', function (Builder $query) { - line 122: $this->assertEmpty($comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 112: public function testWhereHasMorphWithWildcardAndOnlyNullMorphTypes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 125: public function testWhereHasMorphWithRelationConstraint() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 125: public function testWhereHasMorphWithRelationConstraint() - line 128: $query->where('title', 'like', 'ba%'); - line 131: $this->assertEquals([5], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 134: public function testWhereHasMorphWitDifferentConstraints() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 134: public function testWhereHasMorphWitDifferentConstraints() - line 138: $query->where('title', 'foo'); - line 146: $this->assertEquals([1, 5], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 149: public function testWhereHasMorphWithOwnerKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 149: public function testWhereHasMorphWithOwnerKey() - line 152: $table->string('slug')->nullable(); - line 156: $table->dropIndex('comments_commentable_type_commentable_id_index'); - line 160: $table->string('commentable_id')->nullable()->change(); - line 163: Post::where('id', 1)->update(['slug' => 'foo']); - line 165: Comment::where('id', 1)->update(['commentable_id' => 'foo']); - line 168: $query->where('title', 'foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 174: public function testHasMorph() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 174: public function testHasMorph() - line 176: $comments = Comment::hasMorph('commentable', Post::class)->orderBy('id')->get(); - line 178: $this->assertEquals([1, 2], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 181: public function testOrHasMorph() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 181: public function testOrHasMorph() - line 183: $comments = Comment::where('id', 1)->orHasMorph('commentable', Video::class)->orderBy('id')->get(); - line 185: $this->assertEquals([1, 4, 5, 6], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 188: public function testDoesntHaveMorph() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 188: public function testDoesntHaveMorph() - line 190: $comments = Comment::doesntHaveMorph('commentable', Post::class)->orderBy('id')->get(); - line 192: $this->assertEquals([3], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 195: public function testOrDoesntHaveMorph() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 195: public function testOrDoesntHaveMorph() - line 197: $comments = Comment::where('id', 1)->orDoesntHaveMorph('commentable', Post::class)->orderBy('id')->get(); - line 199: $this->assertEquals([1, 3], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 202: public function testOrWhereHasMorph() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 202: public function testOrWhereHasMorph() - line 205: ->orWhereHasMorph('commentable', Video::class, function (Builder $query) { - line 209: $this->assertEquals([1, 4], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 212: public function testOrWhereHasMorphWithWildcardAndOnlyNullMorphTypes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 212: public function testOrWhereHasMorphWithWildcardAndOnlyNullMorphTypes() - line 214: Comment::whereNotNull('commentable_type')->forceDelete(); - line 217: ->orWhereHasMorph('commentable', '*', function (Builder $query) { - line 221: $this->assertEquals([7], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 224: public function testWhereDoesntHaveMorph() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 224: public function testWhereDoesntHaveMorph() - line 227: $query->where('title', 'foo'); - line 230: $this->assertEquals([2, 3], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 233: public function testWhereDoesntHaveMorphWithWildcardAndOnlyNullMorphTypes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 233: public function testWhereDoesntHaveMorphWithWildcardAndOnlyNullMorphTypes() - line 235: Comment::whereNotNull('commentable_type')->forceDelete(); - line 238: $query->where('title', 'foo'); - line 241: $this->assertEquals([7, 8], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 244: public function testOrWhereDoesntHaveMorph() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 244: public function testOrWhereDoesntHaveMorph() - line 247: ->orWhereDoesntHaveMorph('commentable', Post::class, function (Builder $query) { - line 251: $this->assertEquals([1, 2, 3], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 254: public function testModelScopesAreAccessible() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 254: public function testModelScopesAreAccessible() - line 257: $query->someSharedModelScope(); - line 260: $this->assertEquals([1, 4], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 263: public function testWhereDoesntHaveMorphWithNullableMorph() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 263: public function testWhereDoesntHaveMorphWithNullableMorph() - line 265: $comments = Comment::whereDoesntHaveMorph('commentable', '*')->orderBy('id')->get(); - line 267: $this->assertEquals([3, 7, 8], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 270: public function testWhereDoesntHaveMorphWithNullableMorphAndAdditionalWhereIsLogicallyGrouped() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 270: public function testWhereDoesntHaveMorphWithNullableMorphAndAdditionalWhereIsLogicallyGrouped() - line 273: ->whereDoesntHaveMorph('commentable', '*') - line 278: ->whereNot('title', 'foo') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentWhereHasTest.php - Test @ line 55: public function testWhereRelationCallback($callbackEloquent, $callbackQuery) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 55: public function testWhereRelationCallback($callbackEloquent, $callbackQuery) - line 57: $userWhereRelation = User::whereRelation('posts', $callbackEloquent); - line 59: $query = DB::table('users')->whereExists($callbackQuery); - line 61: $this->assertEquals($userWhereRelation->getQuery()->toSql(), $query->toSql()); - line 62: $this->assertEquals($userWhereRelation->getQuery()->toSql(), $userWhereHas->toSql()); - line 63: $this->assertEquals($userWhereHas->getQuery()->toSql(), $query->toSql()); - line 65: $this->assertEquals($userWhereRelation->first()->id, $query->first()->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 74: public function testOrWhereRelationCallback($callbackEloquent, $callbackQuery) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 74: public function testOrWhereRelationCallback($callbackEloquent, $callbackQuery) - line 76: $userOrWhereRelation = User::orWhereRelation('posts', $callbackEloquent); - line 78: $query = DB::table('users')->orWhereExists($callbackQuery); - line 80: $this->assertEquals($userOrWhereRelation->getQuery()->toSql(), $query->toSql()); - line 81: $this->assertEquals($userOrWhereRelation->getQuery()->toSql(), $userOrWhereHas->toSql()); - line 82: $this->assertEquals($userOrWhereHas->getQuery()->toSql(), $query->toSql()); - line 84: $this->assertEquals($userOrWhereRelation->first()->id, $query->first()->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 93: public function testWhereDoesntRelationCallback($callbackEloquent, $callbackQuery) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 93: public function testWhereDoesntRelationCallback($callbackEloquent, $callbackQuery) - line 95: $userWhereDoesntRelation = User::whereDoesntHaveRelation('posts', $callbackEloquent); - line 97: $query = DB::table('users')->whereNotExists($callbackQuery); - line 99: $this->assertEquals($userWhereDoesntRelation->getQuery()->toSql(), $query->toSql()); - line 100: $this->assertEquals($userWhereDoesntRelation->getQuery()->toSql(), $userWhereHas->toSql()); - line 101: $this->assertEquals($userWhereHas->getQuery()->toSql(), $query->toSql()); - line 103: $this->assertEquals($userWhereDoesntRelation->first()->id, $query->first()->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 112: public function testOrWhereDoesntRelationCallback($callbackEloquent, $callbackQuery) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 112: public function testOrWhereDoesntRelationCallback($callbackEloquent, $callbackQuery) - line 114: $userOrWhereDoesntRelation = User::orWhereDoesntHaveRelation('posts', $callbackEloquent); - line 116: $query = DB::table('users')->orWhereNotExists($callbackQuery); - line 118: $this->assertEquals($userOrWhereDoesntRelation->getQuery()->toSql(), $query->toSql()); - line 119: $this->assertEquals($userOrWhereDoesntRelation->getQuery()->toSql(), $userOrWhereHas->toSql()); - line 120: $this->assertEquals($userOrWhereHas->getQuery()->toSql(), $query->toSql()); - line 122: $this->assertEquals($userOrWhereDoesntRelation->first()->id, $query->first()->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 155: public function testWhereRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 155: public function testWhereRelation() - line 157: $users = User::whereRelation('posts', 'public', true)->get(); - line 159: $this->assertEquals([1], $users->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 162: public function testOrWhereRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 162: public function testOrWhereRelation() - line 164: $users = User::whereRelation('posts', 'public', true)->orWhereRelation('posts', 'public', false)->get(); - line 166: $this->assertEquals([1, 2], $users->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 169: public function testNestedWhereRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 169: public function testNestedWhereRelation() - line 171: $texts = User::whereRelation('posts.texts', 'content', 'test')->get(); - line 173: $this->assertEquals([1], $texts->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 176: public function testNestedOrWhereRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 176: public function testNestedOrWhereRelation() - line 178: $texts = User::whereRelation('posts.texts', 'content', 'test')->orWhereRelation('posts.texts', 'content', 'test2')->get(); - line 180: $this->assertEquals([1, 2], $texts->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 183: public function testWhereMorphRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 183: public function testWhereMorphRelation() - line 185: $comments = Comment::whereMorphRelation('commentable', '*', 'public', true)->get(); - line 187: $this->assertEquals([1], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 190: public function testOrWhereMorphRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 190: public function testOrWhereMorphRelation() - line 193: ->orWhereMorphRelation('commentable', '*', 'public', false) - line 196: $this->assertEquals([1, 2], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 199: public function testWhereDoesntHaveRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 199: public function testWhereDoesntHaveRelation() - line 201: $users = User::whereDoesntHaveRelation('posts', 'public', true)->get(); - line 203: $this->assertEquals([2], $users->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 206: public function testOrWhereDoesntHaveRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 206: public function testOrWhereDoesntHaveRelation() - line 208: $users = User::whereDoesntHaveRelation('posts', 'public', true)->orWhereDoesntHaveRelation('posts', 'public', false)->get(); - line 210: $this->assertEquals([1, 2], $users->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 213: public function testNestedWhereDoesntHaveRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 213: public function testNestedWhereDoesntHaveRelation() - line 215: $texts = User::whereDoesntHaveRelation('posts.texts', 'content', 'test')->get(); - line 217: $this->assertEquals([2], $texts->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 220: public function testNestedOrWhereDoesntHaveRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 220: public function testNestedOrWhereDoesntHaveRelation() - line 222: $texts = User::whereDoesntHaveRelation('posts.texts', 'content', 'test')->orWhereDoesntHaveRelation('posts.texts', 'content', 'test2')->get(); - line 224: $this->assertEquals([1, 2], $texts->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 227: public function testWhereMorphDoesntHaveRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 227: public function testWhereMorphDoesntHaveRelation() - line 229: $comments = Comment::whereMorphDoesntHaveRelation('commentable', '*', 'public', true)->get(); - line 231: $this->assertEquals([2], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 234: public function testOrWhereMorphDoesntHaveRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 234: public function testOrWhereMorphDoesntHaveRelation() - line 237: ->orWhereMorphDoesntHaveRelation('commentable', '*', 'public', false) - line 240: $this->assertEquals([1, 2], $comments->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 243: public function testWithCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 243: public function testWithCount() - line 246: $query->where('public', true); - line 249: $this->assertEquals([1], $users->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentWhereTest.php - Test @ line 25: public function testWhereAndWhereOrBehavior() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 25: public function testWhereAndWhereOrBehavior() - line 28: $firstUser = UserWhereTest::create([ - line 41: $this->assertTrue($firstUser->is(UserWhereTest::where('name', '=', $firstUser->name)->first())); - line 42: $this->assertTrue($firstUser->is(UserWhereTest::where('name', $firstUser->name)->first())); - line 43: $this->assertTrue($firstUser->is(UserWhereTest::where('name', $firstUser->name)->where('email', $firstUser->email)->first())); - line 44: $this->assertNull(UserWhereTest::where('name', $firstUser->name)->where('email', $secondUser->email)->first()); - line 45: $this->assertTrue($secondUser->is(UserWhereTest::where('name', 'wrong-name')->orWhere('email', $secondUser->email)->first())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 67: public function testWhereNot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 67: public function testWhereNot() - line 70: $firstUser = UserWhereTest::create([ - line 83: $this->assertTrue($secondUser->is(UserWhereTest::whereNot(function ($query) use ($firstUser) { - line 86: $this->assertTrue($firstUser->is(UserWhereTest::where('name', $firstUser->name)->whereNot(function ($query) use ($secondUser) { - line 89: $this->assertTrue($secondUser->is(UserWhereTest::where('name', 'wrong-name')->orWhereNot(function ($query) use ($firstUser) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 94: public function testWhereIn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 94: public function testWhereIn() - line 97: $user1 = UserWhereTest::create([ - line 117: $this->assertTrue($user2->is(UserWhereTest::whereIn('id', [2])->first())); - line 119: $users = UserWhereTest::query()->whereIn('id', [1, 2, 22])->get(); - line 121: $this->assertTrue($user1->is($users[0])); - line 122: $this->assertTrue($user2->is($users[1])); - line 125: $users = UserWhereTest::query()->whereIn('email', ['test-email1', 'test-email2'])->get(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 141: public function testWhereInCanAcceptQueryable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 141: public function testWhereInCanAcceptQueryable() - line 143: $user1 = UserWhereTest::create([ - line 161: $query = UserWhereTest::query()->select('name')->where('id', '>', 1); - line 163: $users = UserWhereTest::query()->whereIn('name', $query)->get(); - line 165: $this->assertTrue($user2->is($users[0])); - line 166: $this->assertTrue($user3->is($users[1])); - line 169: $users = UserWhereTest::query()->whereIn('name', function (Builder $query) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 186: public function testWhereIntegerInRaw() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 186: public function testWhereIntegerInRaw() - line 189: $user1 = UserWhereTest::create([ - line 209: $users = UserWhereTest::query()->whereIntegerInRaw('id', [1, 2, 5])->get(); - line 210: $this->assertTrue($user1->is($users[0])); - line 211: $this->assertTrue($user2->is($users[1])); - line 214: $users = UserWhereTest::query()->whereIntegerNotInRaw('id', [2])->get(); - line 215: $this->assertTrue($user1->is($users[0])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 225: public function testFirstWhere() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 225: public function testFirstWhere() - line 228: $firstUser = UserWhereTest::create([ - line 241: $this->assertTrue($firstUser->is(UserWhereTest::firstWhere('name', '=', $firstUser->name))); - line 242: $this->assertTrue($firstUser->is(UserWhereTest::firstWhere('name', $firstUser->name))); - line 243: $this->assertTrue($firstUser->is(UserWhereTest::where('name', $firstUser->name)->firstWhere('email', $firstUser->email))); - line 244: $this->assertNull(UserWhereTest::where('name', $firstUser->name)->firstWhere('email', $secondUser->email)); - line 245: $this->assertTrue($firstUser->is(UserWhereTest::firstWhere(['name' => 'test-name', 'email' => 'test-email']))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 252: public function testSole() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 252: public function testSole() - line 254: $expected = UserWhereTest::create([ - line 260: $this->assertTrue($expected->is(UserWhereTest::where('name', 'test-name')->sole())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 263: public function testSoleFailsForMultipleRecords() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 263: public function testSoleFailsForMultipleRecords() - line 265: UserWhereTest::create([ - line 277: $this->expectExceptionObject(new MultipleRecordsFoundException(2)); - line 279: UserWhereTest::where('name', 'test-name')->sole(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 263: public function testSoleFailsForMultipleRecords() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 282: public function testSoleFailsIfNoRecords() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 282: public function testSoleFailsIfNoRecords() - line 285: UserWhereTest::where('name', 'test-name')->sole(); - line 290: $this->assertSame(UserWhereTest::class, $exception->getModel()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 293: public function testSoleValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 293: public function testSoleValue() - line 295: $expected = UserWhereTest::create([ - line 301: $this->assertEquals('test-name', UserWhereTest::where('name', 'test-name')->soleValue('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 304: public function testChunkMap() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 304: public function testChunkMap() - line 306: UserWhereTest::create([ - line 320: $results = UserWhereTest::orderBy('id')->chunkMap(function ($user) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EloquentWithCountTest.php - Test @ line 34: public function testItBasic() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 34: public function testItBasic() - line 36: $one = Model1::create(); - line 37: $two = $one->twos()->Create(); - line 38: $two->threes()->Create(); - line 42: $query->where('id', '>=', 1); - line 48: ], $results->get()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 51: public function testGlobalScopes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 51: public function testGlobalScopes() - line 53: $one = Model1::create(); - line 54: $one->fours()->create(); - line 56: $result = Model1::withCount('fours')->first(); - line 59: $result = Model1::withCount('allFours')->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 51: public function testGlobalScopes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 63: public function testSortingScopes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 63: public function testSortingScopes() - line 65: $one = Model1::create(); - line 66: $one->twos()->create(); - line 68: $query = Model1::withCount('twos')->getQuery(); - line 71: $this->assertSame([], $query->getRawBindings()['order']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/EventConnectionEstablishedTest.php - Test @ line 18: public function testItListenToEstablishedConnectionOnReconnect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 18: public function testItListenToEstablishedConnectionOnReconnect() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/MariaDb/DatabaseMariaDbConnectionTest.php - Test @ line 37: public function testJsonFloatComparison($value, $operator, $shouldMatch) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 37: public function testJsonFloatComparison($value, $operator, $shouldMatch) - line 39: DB::table(self::TABLE)->insert([self::JSON_COL => '{"rank":'.self::FLOAT_VAL.'}']); - line 43: DB::table(self::TABLE)->where(self::JSON_COL.'->rank', $operator, $value)->exists(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 63: public function testFloatValueStoredCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 63: public function testFloatValueStoredCorrectly() - line 65: DB::table(self::TABLE)->insert([self::FLOAT_COL => self::FLOAT_VAL]); - line 67: $this->assertEquals(self::FLOAT_VAL, DB::table(self::TABLE)->value(self::FLOAT_COL)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 71: public function testJsonWhereNull($expected, $key, array $value = ['value' => 123]) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 71: public function testJsonWhereNull($expected, $key, array $value = ['value' => 123]) - line 73: DB::table(self::TABLE)->insert([self::JSON_COL => json_encode($value)]); - line 75: $this->assertSame($expected, DB::table(self::TABLE)->whereNull(self::JSON_COL.'->'.$key)->exists()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 79: public function testJsonWhereNotNull($expected, $key, array $value = ['value' => 123]) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 79: public function testJsonWhereNotNull($expected, $key, array $value = ['value' => 123]) - line 81: DB::table(self::TABLE)->insert([self::JSON_COL => json_encode($value)]); - line 83: $this->assertSame(! $expected, DB::table(self::TABLE)->whereNotNull(self::JSON_COL.'->'.$key)->exists()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 108: public function testJsonPathUpdate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 108: public function testJsonPathUpdate() - line 110: DB::table(self::TABLE)->insert([ - line 114: $updatedCount = DB::table(self::TABLE)->where(self::JSON_COL.'->foo[0]', 'baz')->update([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 121: public function testWhereJsonContainsKey($count, $column) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 121: public function testWhereJsonContainsKey($count, $column) - line 123: DB::table(self::TABLE)->insert([ - line 131: $this->assertSame($count, DB::table(self::TABLE)->whereJsonContainsKey($column)->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/MariaDb/DatabaseMariaDbSchemaBuilderAlterTableWithEnumTest.php - Test @ line 47: public function testGetTablesAndColumnListing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 47: public function testGetTablesAndColumnListing() - line 49: $tables = Schema::getTables(); - line 61: $table->integer('id'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/MariaDb/DatabaseMariaDbSchemaBuilderTest.php - Test @ line 15: public function testAddCommentToTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 15: public function testAddCommentToTable() - line 18: $table->id(); - line 23: ->where('table_schema', $this->app['config']->get('database.connections.mariadb.database')) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/MariaDb/EloquentCastTest.php - Test @ line 37: public function testItCastTimestampsCreatedByTheBuilderWhenTimeHasNotPassed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 37: public function testItCastTimestampsCreatedByTheBuilderWhenTimeHasNotPassed() - line 43: 'email' => fake()->unique()->email, - line 46: 'email' => fake()->unique()->email, - line 49: 'email' => fake()->unique()->email, - line 59: $castUser->update([ - line 62: $attributeUser->update([ - line 65: $mutatorUser->update([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 80: public function testItCastTimestampsCreatedByTheBuilderWhenTimeHasPassed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 80: public function testItCastTimestampsCreatedByTheBuilderWhenTimeHasPassed() - line 86: 'email' => fake()->unique()->email, - line 89: 'email' => fake()->unique()->email, - line 92: 'email' => fake()->unique()->email, - line 102: Carbon::setTestNow(now()->addSecond()); - line 105: $castUser->update([ - line 108: $attributeUser->update([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 126: public function testItCastTimestampsUpdatedByAMutator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 126: public function testItCastTimestampsUpdatedByAMutator() - line 131: 'email' => fake()->unique()->email, - line 136: Carbon::setTestNow(now()->addSecond()); - line 139: $mutatorUser->update([ - line 144: $this->assertSame($updatedAt, $mutatorUser->fresh()->updated_at->timestamp); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/MariaDb/EscapeTest.php - Test @ line 13: public function testEscapeInt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 13: public function testEscapeInt() - line 15: $this->assertSame('42', $this->app['db']->escape(42)); - line 16: $this->assertSame('-6', $this->app['db']->escape(-6)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 19: public function testEscapeFloat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 19: public function testEscapeFloat() - line 21: $this->assertSame('3.14159', $this->app['db']->escape(3.14159)); - line 22: $this->assertSame('-3.14159', $this->app['db']->escape(-3.14159)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 25: public function testEscapeBool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 25: public function testEscapeBool() - line 27: $this->assertSame('1', $this->app['db']->escape(true)); - line 28: $this->assertSame('0', $this->app['db']->escape(false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 31: public function testEscapeNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 31: public function testEscapeNull() - line 33: $this->assertSame('null', $this->app['db']->escape(null)); - line 34: $this->assertSame('null', $this->app['db']->escape(null, true)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 42: public function testEscapeString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 42: public function testEscapeString() - line 44: $this->assertSame("'2147483647'", $this->app['db']->escape('2147483647')); - line 45: $this->assertSame("'true'", $this->app['db']->escape('true')); - line 46: $this->assertSame("'false'", $this->app['db']->escape('false')); - line 47: $this->assertSame("'null'", $this->app['db']->escape('null')); - line 48: $this->assertSame("'Hello\'World'", $this->app['db']->escape("Hello'World")); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 51: public function testEscapeStringInvalidUtf8() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 51: public function testEscapeStringInvalidUtf8() - line 53: $this->expectException(RuntimeException::class); - line 55: $this->app['db']->escape("I am hiding an invalid \x80 utf-8 continuation byte"); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 51: public function testEscapeStringInvalidUtf8() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 58: public function testEscapeStringNullByte() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 58: public function testEscapeStringNullByte() - line 60: $this->expectException(RuntimeException::class); - line 62: $this->app['db']->escape("I am hiding a \00 byte"); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 58: public function testEscapeStringNullByte() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 65: public function testEscapeArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 65: public function testEscapeArray() - line 67: $this->expectException(RuntimeException::class); - line 69: $this->app['db']->escape(['a', 'b']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 65: public function testEscapeArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/MariaDb/JsonLikeTest.php - Test @ line 28: public function testJsonLikeWithEmoji() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 28: public function testJsonLikeWithEmoji() - line 32: DB::table('tasks')->insert([ - line 40: ->where('data->status', 'like', '%🔨%') - line 46: ->where('data->status', 'like', '%Tests%') - line 52: ->where('data->status', 'like', '%🌎%') - line 58: ->where('data->status', 'like', '%complete%') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/MigrateWithRealpathTest.php - Test @ line 35: public function testMigrationsHasTheMigratedTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 35: public function testMigrationsHasTheMigratedTable() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/MigrationServiceProviderTest.php - Test @ line 9: public function testContainerCanBuildMigrator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 9: public function testContainerCanBuildMigrator() - line 11: $fromString = $this->app->make('migrator'); - line 12: $fromClass = $this->app->make(Migrator::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/MigratorEventsTest.php - Test @ line 25: public function testMigrationEventsAreFired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 25: public function testMigrationEventsAreFired() - line 27: Event::fake(); - line 29: $this->artisan('migrate', $this->migrateOptions()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 39: public function testMigrationEventsContainTheOptionsAndPretendFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 39: public function testMigrationEventsContainTheOptionsAndPretendFalse() - line 41: Event::fake(); - line 43: $this->artisan('migrate', $this->migrateOptions()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 72: public function testMigrationEventsContainTheOptionsAndPretendTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 72: public function testMigrationEventsContainTheOptionsAndPretendTrue() - line 74: Event::fake(); - line 76: $this->artisan('migrate', $this->migrateOptions() + ['--pretend' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 94: public function testMigrationEventsContainTheMigrationAndMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 94: public function testMigrationEventsContainTheMigrationAndMethod() - line 96: Event::fake(); - line 98: $this->artisan('migrate', $this->migrateOptions()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 128: public function testTheNoMigrationEventIsFiredWhenNothingToMigrate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 128: public function testTheNoMigrationEventIsFiredWhenNothingToMigrate() - line 130: Event::fake(); - line 132: $this->artisan('migrate'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/MySql/DatabaseMySqlConnectionTest.php - Test @ line 38: public function testJsonFloatComparison($value, $operator, $shouldMatch) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 38: public function testJsonFloatComparison($value, $operator, $shouldMatch) - line 40: DB::table(self::TABLE)->insert([self::JSON_COL => '{"rank":'.self::FLOAT_VAL.'}']); - line 44: DB::table(self::TABLE)->where(self::JSON_COL.'->rank', $operator, $value)->exists(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 64: public function testFloatValueStoredCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 64: public function testFloatValueStoredCorrectly() - line 66: DB::table(self::TABLE)->insert([self::FLOAT_COL => self::FLOAT_VAL]); - line 68: $this->assertEquals(self::FLOAT_VAL, DB::table(self::TABLE)->value(self::FLOAT_COL)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 72: public function testJsonWhereNull($expected, $key, array $value = ['value' => 123]) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 72: public function testJsonWhereNull($expected, $key, array $value = ['value' => 123]) - line 74: DB::table(self::TABLE)->insert([self::JSON_COL => json_encode($value)]); - line 76: $this->assertSame($expected, DB::table(self::TABLE)->whereNull(self::JSON_COL.'->'.$key)->exists()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 80: public function testJsonWhereNotNull($expected, $key, array $value = ['value' => 123]) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 80: public function testJsonWhereNotNull($expected, $key, array $value = ['value' => 123]) - line 82: DB::table(self::TABLE)->insert([self::JSON_COL => json_encode($value)]); - line 84: $this->assertSame(! $expected, DB::table(self::TABLE)->whereNotNull(self::JSON_COL.'->'.$key)->exists()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 109: public function testJsonPathUpdate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 109: public function testJsonPathUpdate() - line 111: DB::table(self::TABLE)->insert([ - line 115: $updatedCount = DB::table(self::TABLE)->where(self::JSON_COL.'->foo[0]', 'baz')->update([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 122: public function testWhereJsonContainsKey($count, $column) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 122: public function testWhereJsonContainsKey($count, $column) - line 124: DB::table(self::TABLE)->insert([ - line 132: $this->assertSame($count, DB::table(self::TABLE)->whereJsonContainsKey($column)->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 149: public function testLastInsertIdIsPreserved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 149: public function testLastInsertIdIsPreserved() - line 153: $table->id(); - line 160: DB::getPdo()->query('SELECT 1'); - line 164: $id = DB::table('auto_id_table')->insertGetId([]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/MySql/DatabaseMySqlSchemaBuilderAlterTableWithEnumTest.php - Test @ line 47: public function testGetTablesAndColumnListing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 47: public function testGetTablesAndColumnListing() - line 49: $tables = Schema::getTables(); - line 61: $table->integer('id'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/MySql/DatabaseMySqlSchemaBuilderTest.php - Test @ line 16: public function testAddCommentToTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 16: public function testAddCommentToTable() - line 19: $table->id(); - line 24: ->where('table_schema', $this->app['config']->get('database.connections.mysql.database')) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 35: public function testGetRawIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 35: public function testGetRawIndex() - line 38: $table->id(); - line 45: $this->assertSame([], collect($indexes)->firstWhere('name', 'table_raw_index')['columns']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/MySql/EloquentCastTest.php - Test @ line 37: public function testItCastTimestampsCreatedByTheBuilderWhenTimeHasNotPassed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 37: public function testItCastTimestampsCreatedByTheBuilderWhenTimeHasNotPassed() - line 43: 'email' => fake()->unique()->email, - line 46: 'email' => fake()->unique()->email, - line 49: 'email' => fake()->unique()->email, - line 59: $castUser->update([ - line 62: $attributeUser->update([ - line 65: $mutatorUser->update([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 80: public function testItCastTimestampsCreatedByTheBuilderWhenTimeHasPassed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 80: public function testItCastTimestampsCreatedByTheBuilderWhenTimeHasPassed() - line 86: 'email' => fake()->unique()->email, - line 89: 'email' => fake()->unique()->email, - line 92: 'email' => fake()->unique()->email, - line 102: Carbon::setTestNow(now()->addSecond()); - line 105: $castUser->update([ - line 108: $attributeUser->update([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 126: public function testItCastTimestampsUpdatedByAMutator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 126: public function testItCastTimestampsUpdatedByAMutator() - line 131: 'email' => fake()->unique()->email, - line 136: Carbon::setTestNow(now()->addSecond()); - line 139: $mutatorUser->update([ - line 144: $this->assertSame($updatedAt, $mutatorUser->fresh()->updated_at->timestamp); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/MySql/EscapeTest.php - Test @ line 13: public function testEscapeInt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 13: public function testEscapeInt() - line 15: $this->assertSame('42', $this->app['db']->escape(42)); - line 16: $this->assertSame('-6', $this->app['db']->escape(-6)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 19: public function testEscapeFloat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 19: public function testEscapeFloat() - line 21: $this->assertSame('3.14159', $this->app['db']->escape(3.14159)); - line 22: $this->assertSame('-3.14159', $this->app['db']->escape(-3.14159)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 25: public function testEscapeBool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 25: public function testEscapeBool() - line 27: $this->assertSame('1', $this->app['db']->escape(true)); - line 28: $this->assertSame('0', $this->app['db']->escape(false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 31: public function testEscapeNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 31: public function testEscapeNull() - line 33: $this->assertSame('null', $this->app['db']->escape(null)); - line 34: $this->assertSame('null', $this->app['db']->escape(null, true)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 42: public function testEscapeString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 42: public function testEscapeString() - line 44: $this->assertSame("'2147483647'", $this->app['db']->escape('2147483647')); - line 45: $this->assertSame("'true'", $this->app['db']->escape('true')); - line 46: $this->assertSame("'false'", $this->app['db']->escape('false')); - line 47: $this->assertSame("'null'", $this->app['db']->escape('null')); - line 48: $this->assertSame("'Hello\'World'", $this->app['db']->escape("Hello'World")); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 51: public function testEscapeStringInvalidUtf8() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 51: public function testEscapeStringInvalidUtf8() - line 53: $this->expectException(RuntimeException::class); - line 55: $this->app['db']->escape("I am hiding an invalid \x80 utf-8 continuation byte"); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 51: public function testEscapeStringInvalidUtf8() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 58: public function testEscapeStringNullByte() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 58: public function testEscapeStringNullByte() - line 60: $this->expectException(RuntimeException::class); - line 62: $this->app['db']->escape("I am hiding a \00 byte"); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 58: public function testEscapeStringNullByte() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 65: public function testEscapeArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 65: public function testEscapeArray() - line 67: $this->expectException(RuntimeException::class); - line 69: $this->app['db']->escape(['a', 'b']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 65: public function testEscapeArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/MySql/JoinLateralTest.php - Test @ line 66: public function testJoinLateral() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 66: public function testJoinLateral() - line 69: ->select('title as best_post_title', 'rating as best_post_rating') - line 75: ->where('id', 1) - line 84: ->where('id', 2) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 66: public function testJoinLateral() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 91: public function testLeftJoinLateral() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 91: public function testLeftJoinLateral() - line 94: ->select('title as best_post_title', 'rating as best_post_rating') - line 100: ->where('id', 1) - line 109: ->where('id', 2) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 91: public function testLeftJoinLateral() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/Postgres/DatabasePostgresConnectionTest.php - Test @ line 31: public function testJsonWhereNull($expected, $key, array $value = ['value' => 123]) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 31: public function testJsonWhereNull($expected, $key, array $value = ['value' => 123]) - line 33: DB::table('json_table')->insert(['json_col' => json_encode($value)]); - line 35: $this->assertSame($expected, DB::table('json_table')->whereNull("json_col->$key")->exists()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 39: public function testJsonWhereNotNull($expected, $key, array $value = ['value' => 123]) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 39: public function testJsonWhereNotNull($expected, $key, array $value = ['value' => 123]) - line 41: DB::table('json_table')->insert(['json_col' => json_encode($value)]); - line 43: $this->assertSame(! $expected, DB::table('json_table')->whereNotNull("json_col->$key")->exists()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 72: public function testJsonPathUpdate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 72: public function testJsonPathUpdate() - line 74: DB::table('json_table')->insert([ - line 80: $updatedCount = DB::table('json_table')->where('json_col->foo[0]', 'baz')->update([ - line 85: $updatedCount = DB::table('json_table')->where('json_col->foo[0][0]', 'array')->update([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 92: public function testWhereJsonContainsKey($count, $column) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 92: public function testWhereJsonContainsKey($count, $column) - line 94: DB::table('json_table')->insert([ - line 102: $this->assertSame($count, DB::table('json_table')->whereJsonContainsKey($column)->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/Postgres/EscapeTest.php - Test @ line 13: public function testEscapeInt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 13: public function testEscapeInt() - line 15: $this->assertSame('42', $this->app['db']->escape(42)); - line 16: $this->assertSame('-6', $this->app['db']->escape(-6)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 19: public function testEscapeFloat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 19: public function testEscapeFloat() - line 21: $this->assertSame('3.14159', $this->app['db']->escape(3.14159)); - line 22: $this->assertSame('-3.14159', $this->app['db']->escape(-3.14159)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 25: public function testEscapeBool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 25: public function testEscapeBool() - line 27: $this->assertSame('true', $this->app['db']->escape(true)); - line 28: $this->assertSame('false', $this->app['db']->escape(false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 31: public function testEscapeNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 31: public function testEscapeNull() - line 33: $this->assertSame('null', $this->app['db']->escape(null)); - line 34: $this->assertSame('null', $this->app['db']->escape(null, true)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 42: public function testEscapeString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 42: public function testEscapeString() - line 44: $this->assertSame("'2147483647'", $this->app['db']->escape('2147483647')); - line 45: $this->assertSame("'true'", $this->app['db']->escape('true')); - line 46: $this->assertSame("'false'", $this->app['db']->escape('false')); - line 47: $this->assertSame("'null'", $this->app['db']->escape('null')); - line 48: $this->assertSame("'Hello''World'", $this->app['db']->escape("Hello'World")); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 51: public function testEscapeStringInvalidUtf8() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 51: public function testEscapeStringInvalidUtf8() - line 53: $this->expectException(RuntimeException::class); - line 55: $this->app['db']->escape("I am hiding an invalid \x80 utf-8 continuation byte"); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 51: public function testEscapeStringInvalidUtf8() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 58: public function testEscapeStringNullByte() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 58: public function testEscapeStringNullByte() - line 60: $this->expectException(RuntimeException::class); - line 62: $this->app['db']->escape("I am hiding a \00 byte"); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 58: public function testEscapeStringNullByte() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 65: public function testEscapeArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 65: public function testEscapeArray() - line 67: $this->expectException(RuntimeException::class); - line 69: $this->app['db']->escape(['a', 'b']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 65: public function testEscapeArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/Postgres/JoinLateralTest.php - Test @ line 53: public function testJoinLateral() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 53: public function testJoinLateral() - line 56: ->select('title as best_post_title', 'rating as best_post_rating') - line 62: ->where('id', 1) - line 71: ->where('id', 2) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 53: public function testJoinLateral() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 78: public function testLeftJoinLateral() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 78: public function testLeftJoinLateral() - line 81: ->select('title as best_post_title', 'rating as best_post_rating') - line 87: ->where('id', 1) - line 96: ->where('id', 2) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 78: public function testLeftJoinLateral() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/Postgres/PostgresSchemaBuilderTest.php - Test @ line 43: public function testDropAllTablesOnAllSchemas() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 43: public function testDropAllTablesOnAllSchemas() - line 46: $table->increments('id'); - line 49: $table->increments('id'); - line 52: Schema::dropAllTables(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 60: public function testDropAllTablesUsesDontDropConfigOnAllSchemas() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 60: public function testDropAllTablesUsesDontDropConfigOnAllSchemas() - line 66: $table->increments('id'); - line 69: $table->increments('id'); - line 72: Schema::dropAllTables(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 80: public function testDropAllTablesUsesDontDropConfigOnOneSchema() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 80: public function testDropAllTablesUsesDontDropConfigOnOneSchema() - line 86: $table->increments('id'); - line 89: $table->increments('id'); - line 92: Schema::dropAllTables(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 123: public function testAddTableCommentOnExistingTable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 123: public function testAddTableCommentOnExistingTable() - line 126: $table->id(); - line 131: $table->comment('This is a new comment'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 137: public function testGetTables() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 137: public function testGetTables() - line 140: $table->string('name'); - line 144: $table->integer('votes'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 137: public function testGetTables() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 157: public function testGetViews() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 157: public function testGetViews() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 173: public function testDropPartitionedTables() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 173: public function testDropPartitionedTables() - line 179: $tables = array_column(Schema::getTables(), 'name'); - line 185: Schema::dropAllTables(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 196: public function testGetRawIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 196: public function testGetRawIndex() - line 199: $table->id(); - line 206: $this->assertSame([], collect($indexes)->firstWhere('name', 'table_raw_index')['columns']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 209: public function testCreateIndexesOnline() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 209: public function testCreateIndexesOnline() - line 212: $table->id(); - line 224: $indexNames = collect($indexes)->pluck('name'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 209: public function testCreateIndexesOnline() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/QueryBuilderTest.php - Test @ line 33: public function testIncrement() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 33: public function testIncrement() - line 36: $table->increments('id'); - line 43: DB::table('accounting')->insert([ - line 57: $connection = DB::table('accounting')->getConnection(); - line 58: $connection->enableQueryLog(); - line 60: DB::table('accounting')->where('user_id', 2)->incrementEach([ - line 65: $queryLogs = $connection->getQueryLog(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 33: public function testIncrement() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 153: public function testSoleWithParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 153: public function testSoleWithParameters() - line 157: $this->assertEquals($expected, (array) DB::table('posts')->where('title', 'Foo Post')->sole('id')); - line 158: $this->assertEquals($expected, (array) DB::table('posts')->where('title', 'Foo Post')->sole(['id'])); - line 161: $this->assertEquals($expected, (array) DB::table('posts')->where('title', 'Foo Post')->sole(['id', 'title'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 164: public function testSoleFailsForMultipleRecords() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 164: public function testSoleFailsForMultipleRecords() - line 166: DB::table('posts')->insert([ - line 170: $this->expectExceptionObject(new MultipleRecordsFoundException(2)); - line 172: DB::table('posts')->where('title', 'Foo Post')->sole(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 164: public function testSoleFailsForMultipleRecords() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 175: public function testSoleFailsIfNoRecords() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 175: public function testSoleFailsIfNoRecords() - line 177: $this->expectException(RecordsNotFoundException::class); - line 179: DB::table('posts')->where('title', 'Baz Post')->sole(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 175: public function testSoleFailsIfNoRecords() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 182: public function testSelect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 182: public function testSelect() - line 186: $this->assertEquals($expected, (array) DB::table('posts')->select('id', 'title')->first()); - line 187: $this->assertEquals($expected, (array) DB::table('posts')->select(['id', 'title'])->first()); - line 189: $this->assertCount(4, (array) DB::table('posts')->select()->first()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 210: public function testAddSelect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 210: public function testAddSelect() - line 214: $this->assertEquals($expected, (array) DB::table('posts')->select('id')->addSelect('title', 'content')->first()); - line 215: $this->assertEquals($expected, (array) DB::table('posts')->select('id')->addSelect(['title', 'content'])->first()); - line 216: $this->assertEquals($expected, (array) DB::table('posts')->addSelect(['id', 'title', 'content'])->first()); - line 218: $this->assertCount(4, (array) DB::table('posts')->addSelect([])->first()); - line 219: $this->assertEquals(['id' => '1'], (array) DB::table('posts')->select('id')->addSelect([])->first()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 247: public function testWhereValueSubQuery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 247: public function testWhereValueSubQuery() - line 250: $query->selectRaw("'Sub query value'"); - line 253: $this->assertTrue(DB::table('posts')->where($subQuery, 'Sub query value')->exists()); - line 254: $this->assertFalse(DB::table('posts')->where($subQuery, 'Does not match')->exists()); - line 255: $this->assertTrue(DB::table('posts')->where($subQuery, '!=', 'Does not match')->exists()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 258: public function testWhereValueSubQueryBuilder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 258: public function testWhereValueSubQueryBuilder() - line 260: $subQuery = DB::table('posts')->selectRaw("'Sub query value'")->limit(1); - line 262: $this->assertTrue(DB::table('posts')->where($subQuery, 'Sub query value')->exists()); - line 263: $this->assertFalse(DB::table('posts')->where($subQuery, 'Does not match')->exists()); - line 264: $this->assertTrue(DB::table('posts')->where($subQuery, '!=', 'Does not match')->exists()); - line 266: $this->assertTrue(DB::table('posts')->where(DB::raw('\'Sub query value\''), $subQuery)->exists()); - line 267: $this->assertFalse(DB::table('posts')->where(DB::raw('\'Does not match\''), $subQuery)->exists()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 281: public function testWhereNotInputStringParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 281: public function testWhereNotInputStringParameter() - line 283: $results = DB::table('posts')->whereNot('title', 'Foo Post')->get(); - line 288: DB::table('posts')->insert([ - line 292: $results = DB::table('posts')->whereNot('title', 'Foo Post')->whereNot('title', 'Bar Post')->get(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 305: public function testWhereDate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 305: public function testWhereDate() - line 307: $this->assertSame(1, DB::table('posts')->whereDate('created_at', '2018-01-02')->count()); - line 308: $this->assertSame(1, DB::table('posts')->whereDate('created_at', new Carbon('2018-01-02'))->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 312: public function testWhereDateWithInvalidOperator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 312: public function testWhereDateWithInvalidOperator() - line 314: $sql = DB::table('posts')->whereDate('created_at', '? OR 1=1', '2018-01-02'); - line 325: $this->assertSame(0, $sql->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 328: public function testOrWhereDate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 328: public function testOrWhereDate() - line 330: $this->assertSame(2, DB::table('posts')->where('id', 1)->orWhereDate('created_at', '2018-01-02')->count()); - line 331: $this->assertSame(2, DB::table('posts')->where('id', 1)->orWhereDate('created_at', new Carbon('2018-01-02'))->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 335: public function testOrWhereDateWithInvalidOperator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 335: public function testOrWhereDateWithInvalidOperator() - line 337: $sql = DB::table('posts')->where('id', 1)->orWhereDate('created_at', '? OR 1=1', '2018-01-02'); - line 354: $this->assertSame(1, $sql->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 357: public function testWhereDay() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 357: public function testWhereDay() - line 359: $this->assertSame(1, DB::table('posts')->whereDay('created_at', '02')->count()); - line 360: $this->assertSame(1, DB::table('posts')->whereDay('created_at', 2)->count()); - line 361: $this->assertSame(1, DB::table('posts')->whereDay('created_at', new Carbon('2018-01-02'))->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 364: public function testWhereDayWithInvalidOperator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 364: public function testWhereDayWithInvalidOperator() - line 366: $sql = DB::table('posts')->whereDay('created_at', '? OR 1=1', '02'); - line 377: $this->assertSame(0, $sql->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 380: public function testOrWhereDay() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 380: public function testOrWhereDay() - line 382: $this->assertSame(2, DB::table('posts')->where('id', 1)->orWhereDay('created_at', '02')->count()); - line 383: $this->assertSame(2, DB::table('posts')->where('id', 1)->orWhereDay('created_at', 2)->count()); - line 384: $this->assertSame(2, DB::table('posts')->where('id', 1)->orWhereDay('created_at', new Carbon('2018-01-02'))->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 387: public function testOrWhereDayWithInvalidOperator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 387: public function testOrWhereDayWithInvalidOperator() - line 389: $sql = DB::table('posts')->where('id', 1)->orWhereDay('created_at', '? OR 1=1', '02'); - line 406: $this->assertSame(1, $sql->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 409: public function testWhereMonth() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 409: public function testWhereMonth() - line 411: $this->assertSame(1, DB::table('posts')->whereMonth('created_at', '01')->count()); - line 412: $this->assertSame(1, DB::table('posts')->whereMonth('created_at', 1)->count()); - line 413: $this->assertSame(1, DB::table('posts')->whereMonth('created_at', new Carbon('2018-01-02'))->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 416: public function testWhereMonthWithInvalidOperator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 416: public function testWhereMonthWithInvalidOperator() - line 418: $sql = DB::table('posts')->whereMonth('created_at', '? OR 1=1', '01'); - line 429: $this->assertSame(0, $sql->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 432: public function testOrWhereMonth() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 432: public function testOrWhereMonth() - line 434: $this->assertSame(2, DB::table('posts')->where('id', 1)->orWhereMonth('created_at', '01')->count()); - line 435: $this->assertSame(2, DB::table('posts')->where('id', 1)->orWhereMonth('created_at', 1)->count()); - line 436: $this->assertSame(2, DB::table('posts')->where('id', 1)->orWhereMonth('created_at', new Carbon('2018-01-02'))->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 439: public function testOrWhereMonthWithInvalidOperator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 439: public function testOrWhereMonthWithInvalidOperator() - line 441: $sql = DB::table('posts')->where('id', 1)->orWhereMonth('created_at', '? OR 1=1', '01'); - line 458: $this->assertSame(1, $sql->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 461: public function testWhereYear() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 461: public function testWhereYear() - line 463: $this->assertSame(1, DB::table('posts')->whereYear('created_at', '2018')->count()); - line 464: $this->assertSame(1, DB::table('posts')->whereYear('created_at', 2018)->count()); - line 465: $this->assertSame(1, DB::table('posts')->whereYear('created_at', new Carbon('2018-01-02'))->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 469: public function testWhereYearWithInvalidOperator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 469: public function testWhereYearWithInvalidOperator() - line 471: $sql = DB::table('posts')->whereYear('created_at', '? OR 1=1', '2018'); - line 482: $this->assertSame(0, $sql->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 485: public function testOrWhereYear() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 485: public function testOrWhereYear() - line 487: $this->assertSame(2, DB::table('posts')->where('id', 1)->orWhereYear('created_at', '2018')->count()); - line 488: $this->assertSame(2, DB::table('posts')->where('id', 1)->orWhereYear('created_at', 2018)->count()); - line 489: $this->assertSame(2, DB::table('posts')->where('id', 1)->orWhereYear('created_at', new Carbon('2018-01-02'))->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 493: public function testOrWhereYearWithInvalidOperator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 493: public function testOrWhereYearWithInvalidOperator() - line 495: $sql = DB::table('posts')->where('id', 1)->orWhereYear('created_at', '? OR 1=1', '2018'); - line 512: $this->assertSame(1, $sql->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 515: public function testWhereTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 515: public function testWhereTime() - line 517: $this->assertSame(1, DB::table('posts')->whereTime('created_at', '03:04:05')->count()); - line 518: $this->assertSame(1, DB::table('posts')->whereTime('created_at', new Carbon('2018-01-02 03:04:05'))->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 522: public function testWhereTimeWithInvalidOperator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 522: public function testWhereTimeWithInvalidOperator() - line 524: $sql = DB::table('posts')->whereTime('created_at', '? OR 1=1', '03:04:05'); - line 535: $this->assertSame(0, $sql->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 538: public function testOrWhereTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 538: public function testOrWhereTime() - line 540: $this->assertSame(2, DB::table('posts')->where('id', 1)->orWhereTime('created_at', '03:04:05')->count()); - line 541: $this->assertSame(2, DB::table('posts')->where('id', 1)->orWhereTime('created_at', new Carbon('2018-01-02 03:04:05'))->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 545: public function testOrWhereTimeWithInvalidOperator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 545: public function testOrWhereTimeWithInvalidOperator() - line 547: $sql = DB::table('posts')->where('id', 1)->orWhereTime('created_at', '? OR 1=1', '03:04:05'); - line 564: $this->assertSame(1, $sql->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 576: public function testPaginateWithSpecificColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 576: public function testPaginateWithSpecificColumns() - line 578: $result = DB::table('posts')->paginate(5, ['title', 'content']); - line 581: $this->assertEquals($result->items(), [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 601: public function testPluck() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 601: public function testPluck() - line 607: ], DB::table('posts')->select(['content', 'id', 'title'])->pluck('title')->toArray()); - line 613: ], DB::table('posts')->pluck('title')->toArray()); - line 619: ], DB::table('posts')->pluck('title', 'id')->toArray()); - line 621: $results = DB::table('posts')->pluck('title', 'created_at'); - line 627: ], $results->keys()->map(fn ($v) => substr($v, 0, 19))->toArray()); - line 631: ], $results->values()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/QueryBuilderUpdateTest.php - Test @ line 35: public function testBasicUpdateForJson($column, $given, $expected) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 35: public function testBasicUpdateForJson($column, $given, $expected) - line 37: DB::table('example')->insert([ - line 41: DB::table('example')->update([ - line 48: $column => $column === 'payload' ? $this->castAsJson($expected) : $expected, Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 53: public function testSubqueryUpdate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 53: public function testSubqueryUpdate() - line 55: DB::table('example')->insert([ - line 60: DB::table('example_credits')->insert([ - line 77: DB::table('example')->update([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/QueryBuilderWhereLikeTest.php - Test @ line 38: public function testWhereLike() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 38: public function testWhereLike() - line 40: $users = DB::table('users')->whereLike('email', 'john.doe@example.com')->get(); - line 44: $this->assertSame(4, DB::table('users')->whereNotLike('email', 'john.doe@example.com')->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 47: public function testWhereLikeWithPercentWildcard() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 47: public function testWhereLikeWithPercentWildcard() - line 49: $this->assertSame(5, DB::table('users')->whereLike('email', '%@example.com')->count()); - line 50: $this->assertSame(2, DB::table('users')->whereNotLike('email', '%Doe%')->count()); - line 52: $users = DB::table('users')->whereLike('email', 'john%')->get(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 65: public function testWhereLikeCaseSensitive() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 65: public function testWhereLikeCaseSensitive() - line 68: $this->markTestSkipped('The case-sensitive whereLike clause is not supported on MSSQL.'); - line 71: $users = DB::table('users')->whereLike('email', 'john.doe@example.com', true)->get(); - line 74: $users = DB::table('users')->whereLike('email', 'tim.smith@example.com', true)->get(); - line 77: $this->assertSame(5, DB::table('users')->whereNotLike('email', 'john.doe@example.com', true)->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 80: public function testWhereLikeWithPercentWildcardCaseSensitive() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 80: public function testWhereLikeWithPercentWildcardCaseSensitive() - line 83: $this->markTestSkipped('The case-sensitive whereLike clause is not supported on MSSQL.'); - line 86: $this->assertSame(2, DB::table('users')->whereLike('email', '%Doe@example.com', true)->count()); - line 87: $this->assertSame(4, DB::table('users')->whereNotLike('email', '%smith%', true)->count()); - line 89: $users = DB::table('users')->whereLike('email', '%Doe@example.com', true)->get(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 95: public function testWhereLikeWithUnderscoreWildcardCaseSensitive() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 95: public function testWhereLikeWithUnderscoreWildcardCaseSensitive() - line 98: $this->markTestSkipped('The case-sensitive whereLike clause is not supported on MSSQL.'); - line 101: $users = DB::table('users')->whereLike('email', 'j__edoe@example.com', true)->get(); - line 105: $users = DB::table('users')->whereNotLike('email', '%_oe@example.com', true)->get(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/QueryingWithEnumsTest.php - Test @ line 23: public function testCanQueryWithEnums() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 23: public function testCanQueryWithEnums() - line 25: DB::table('enum_casts')->insert([ - line 31: $record = DB::table('enum_casts')->where('string_status', StringStatus::pending)->first(); - line 32: $record2 = DB::table('enum_casts')->where('integer_status', IntegerStatus::pending)->first(); - line 33: $record3 = DB::table('enum_casts')->whereIn('integer_status', [IntegerStatus::pending])->first(); - line 34: $record4 = DB::table('enum_casts')->where('non_backed_status', NonBackedStatus::pending)->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 45: public function testCanInsertWithEnums() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 45: public function testCanInsertWithEnums() - line 47: DB::table('enum_casts')->insert([ - line 53: $record = DB::table('enum_casts')->where('string_status', StringStatus::pending)->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/Queue/BatchableTransactionTest.php - Test @ line 33: public function testItCanHandleTimeoutJob() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 33: public function testItCanHandleTimeoutJob() - line 34: { - line 39: $this->assertSame(1, DB::table('jobs')->count()); - line 40: $this->assertSame(0, DB::table('failed_jobs')->count()); - line 41: $this->assertSame(1, DB::table('job_batches')->count()); - line 47: ])->run(); - line 50: $this->assertSame('The process has been signaled with signal "9".', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/Queue/QueueTransactionTest.php - Test @ line 34: public function testItCanHandleTimeoutJob($job) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 34: public function testItCanHandleTimeoutJob($job) - line 35: { - line 38: $this->assertSame(1, DB::table('jobs')->count()); - line 39: $this->assertSame(0, DB::table('failed_jobs')->count()); - line 45: ])->run(); - line 48: $this->assertSame('The process has been signaled with signal "9".', $e->getMessage()); - line 51: $this->assertSame(0, DB::table('jobs')->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/RefreshCommandTest.php - Test @ line 10: public function testRefreshWithoutRealpath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 10: public function testRefreshWithoutRealpath() - line 12: $this->app->setBasePath(__DIR__); - line 18: $this->migrateRefreshWith($options); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 10: public function testRefreshWithoutRealpath() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 21: public function testRefreshWithRealpath() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 21: public function testRefreshWithRealpath() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/SchemaBuilderSchemaNameTest.php - Test @ line 64: public function testSchemas($connection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 64: public function testSchemas($connection) - line 66: $schema = Schema::connection($connection); - line 68: $schemas = $schema->getSchemas(); - line 70: $this->assertSame($schema->getCurrentSchemaName(), collect($schemas)->firstWhere('default')['name']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 83: public function testCreate($connection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 83: public function testCreate($connection) - line 85: $schema = Schema::connection($connection); - line 87: $schema->create('my_schema.table', function (Blueprint $table) { - line 91: $this->assertTrue($schema->hasTable('my_schema.table')); - line 92: $this->assertFalse($schema->hasTable('table')); - line 94: $currentSchema = $schema->getCurrentSchemaName(); - line 99: $schema->getTableListing([$currentSchema, 'my_schema']) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 104: public function testRename($connection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 104: public function testRename($connection) - line 106: $schema = Schema::connection($connection); - line 108: $schema->create('my_schema.table', function (Blueprint $table) { - line 111: $schema->create('table', function (Blueprint $table) { - line 115: $this->assertTrue($schema->hasTable('my_schema.table')); - line 116: $this->assertFalse($schema->hasTable('my_schema.new_table')); - line 117: $this->assertTrue($schema->hasTable('table')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 134: public function testDrop($connection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 134: public function testDrop($connection) - line 136: $schema = Schema::connection($connection); - line 138: $schema->create('my_schema.table', function (Blueprint $table) { - line 141: $schema->create('table', function (Blueprint $table) { - line 145: $this->assertTrue($schema->hasTable('my_schema.table')); - line 146: $this->assertTrue($schema->hasTable('table')); - line 148: $currentSchema = $schema->getCurrentSchemaName(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 168: public function testDropIfExists($connection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 168: public function testDropIfExists($connection) - line 170: $schema = Schema::connection($connection); - line 172: $schema->create('my_schema.table', function (Blueprint $table) { - line 175: $schema->create('table', function (Blueprint $table) { - line 179: $this->assertTrue($schema->hasTable('my_schema.table')); - line 180: $this->assertTrue($schema->hasTable('table')); - line 182: $schema->dropIfExists('my_schema.table'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 191: public function testAddColumns($connection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 191: public function testAddColumns($connection) - line 193: $schema = Schema::connection($connection); - line 195: $schema->create('my_schema.table', function (Blueprint $table) { - line 199: $schema->create('my_table', function (Blueprint $table) { - line 204: $this->assertEquals(['id', 'title'], $schema->getColumnListing('my_schema.table')); - line 205: $this->assertEquals(['id', 'name'], $schema->getColumnListing('my_table')); - line 207: $schema->table('my_schema.table', function (Blueprint $table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 225: public function testRenameColumns($connection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 225: public function testRenameColumns($connection) - line 227: $schema = Schema::connection($connection); - line 229: $schema->create('my_schema.table', function (Blueprint $table) { - line 233: $schema->create('table', function (Blueprint $table) { - line 238: $this->assertTrue($schema->hasColumn('my_schema.table', 'title')); - line 239: $this->assertTrue($schema->hasColumn('table', 'name')); - line 241: $schema->table('my_schema.table', function (Blueprint $table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 257: public function testModifyColumns($connection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 257: public function testModifyColumns($connection) - line 259: $schema = Schema::connection($connection); - line 261: $schema->create('my_schema.table', function (Blueprint $table) { - line 266: $schema->create('my_table', function (Blueprint $table) { - line 272: $schema->table('my_schema.table', function (Blueprint $table) { - line 276: $schema->table('my_table', function (Blueprint $table) { - line 281: $this->assertStringContainsString('default schema name', collect($schema->getColumns('my_schema.table'))->firstWhere('name', 'name')['default']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 298: public function testDropColumns($connection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 298: public function testDropColumns($connection) - line 300: $schema = Schema::connection($connection); - line 302: $schema->create('my_schema.table', function (Blueprint $table) { - line 308: $schema->create('table', function (Blueprint $table) { - line 315: $this->assertTrue($schema->hasColumns('my_schema.table', ['id', 'name', 'count', 'title'])); - line 316: $this->assertTrue($schema->hasColumns('table', ['id', 'name', 'count', 'title'])); - line 318: $schema->dropColumns('my_schema.table', ['name', 'count']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 332: public function testIndexes($connection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 19. Evidence: - line 332: public function testIndexes($connection) - line 334: $schema = Schema::connection($connection); - line 336: $schema->create('my_schema.table', function (Blueprint $table) { - line 342: $schema->create('my_table', function (Blueprint $table) { - line 349: $this->assertTrue($schema->hasIndex('my_schema.table', ['code'], 'primary')); - line 350: $this->assertTrue($schema->hasIndex('my_schema.table', ['email'], 'unique')); - line 351: $this->assertTrue($schema->hasIndex('my_schema.table', ['name'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 390: public function testForeignKeys($connection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 390: public function testForeignKeys($connection) - line 392: $schema = Schema::connection($connection); - line 394: $schema->create('my_tables', function (Blueprint $table) { - line 397: $schema->create('my_schema.table', function (Blueprint $table) { - line 402: $schema->create('table', function (Blueprint $table) { - line 415: $this->assertTrue(collect($schema->getForeignKeys('my_schema.table'))->contains( - line 421: $this->assertTrue(collect($schema->getForeignKeys('table'))->contains( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 440: public function testForeignKeysOnSameSchema($connection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 440: public function testForeignKeysOnSameSchema($connection) - line 442: $schema = Schema::connection($connection); - line 444: $schema->create('my_schema.my_tables', function (Blueprint $table) { - line 447: $schema->create('my_schema.table', function (Blueprint $table) { - line 451: $schema->create('my_schema.second_table', function (Blueprint $table) { - line 459: $this->assertTrue(collect($schema->getForeignKeys('my_schema.table'))->contains( - line 465: $this->assertTrue(collect($schema->getForeignKeys('my_schema.second_table'))->contains( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 479: public function testHasView($connection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 479: public function testHasView($connection) - line 482: $schema = $db->getSchemaBuilder(); - line 484: $db->statement('create view '.$db->getSchemaGrammar()->wrapTable('my_schema.view').' (name) as select 1'); - line 485: $db->statement('create view '.$db->getSchemaGrammar()->wrapTable('my_view').' (name) as select 1'); - line 487: $this->assertTrue($schema->hasView('my_schema.view')); - line 488: $this->assertTrue($schema->hasView('my_view')); - line 489: $this->assertTrue($schema->hasColumn('my_schema.view', 'name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 512: public function testComment($connection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 512: public function testComment($connection) - line 514: $schema = Schema::connection($connection); - line 516: $schema->create('my_schema.table', function (Blueprint $table) { - line 520: $schema->create('table', function (Blueprint $table) { - line 525: $tables = collect($schema->getTables()); - line 530: $tables->first(fn ($table) => $table['name'] === $tableName && $table['schema'] === 'my_schema')['comment'] - line 533: $tables->first(fn ($table) => $table['name'] === $tableName && $table['schema'] === $defaultSchema)['comment'] Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 545: public function testAutoIncrementStartingValue($connection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 545: public function testAutoIncrementStartingValue($connection) - line 547: $this->expectNotToPerformAssertions(); - line 551: $schema->create('my_schema.table', function (Blueprint $table) { - line 554: $schema->create('table', function (Blueprint $table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 545: public function testAutoIncrementStartingValue($connection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 561: public function testHasTable($connection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 561: public function testHasTable($connection) - line 564: $schema = $db->getSchemaBuilder(); - line 567: $db->statement("create login my_user with password = 'Passw0rd'"); - line 568: $db->statement('create user my_user for login my_user'); - line 573: $db->statement('grant create table to my_user'); - line 574: $db->statement('grant alter on SCHEMA::my_schema to my_user'); - line 575: $db->statement("alter user my_user with default_schema = my_schema execute as user='my_user'"); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/SchemaBuilderTest.php - Test @ line 18: public function testDropAllTables() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 18: public function testDropAllTables() - line 20: $this->expectNotToPerformAssertions(); - line 23: $table->increments('id'); - line 26: Schema::dropAllTables(); - line 31: $table->increments('id'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 18: public function testDropAllTables() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 35: public function testDropAllViews() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 35: public function testDropAllViews() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 47: public function testChangeToTinyInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 47: public function testChangeToTinyInteger() - line 50: $table->string('test_column'); - line 53: $blueprint = new Blueprint($this->getConnection(), 'test', function (Blueprint $table) { - line 57: $blueprint->build(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 63: public function testChangeToTextColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 63: public function testChangeToTextColumn() - line 66: $table->integer('test_column'); - line 70: $blueprint = new Blueprint($this->getConnection(), 'test', function ($table) use ($type) { - line 78: $this->assertEquals($expected, $blueprint->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 83: public function testChangeTextColumnToTextColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 83: public function testChangeTextColumnToTextColumn() - line 86: $table->text('test_column'); - line 90: $blueprint = new Blueprint($this->getConnection(), 'test', function ($table) use ($type) { - line 98: $this->assertEquals($expected, $blueprint->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 103: public function testModifyNullableColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 103: public function testModifyNullableColumn() - line 106: $table->string('not_null_column_to_not_null'); - line 112: $blueprint = new Blueprint($this->getConnection(), 'test', function ($table) { - line 126: $this->assertEquals($expected, $blueprint->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 129: public function testChangeNullableColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 129: public function testChangeNullableColumn() - line 132: $table->string('not_null_column_to_not_null'); - line 140: $this->assertFalse($columns->firstWhere('name', 'not_null_column_to_not_null')['nullable']); - line 141: $this->assertFalse($columns->firstWhere('name', 'not_null_column_to_nullable')['nullable']); - line 142: $this->assertTrue($columns->firstWhere('name', 'nullable_column_to_nullable')['nullable']); - line 143: $this->assertTrue($columns->firstWhere('name', 'nullable_column_to_not_null')['nullable']); - line 146: $table->text('not_null_column_to_not_null')->change(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 160: public function testRenameColumnWithDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 160: public function testRenameColumnWithDefault() - line 163: $table->timestamp('foo')->useCurrent(); - line 168: $defaultFoo = collect($columns)->firstWhere('name', 'foo')['default']; - line 169: $defaultBar = collect($columns)->firstWhere('name', 'bar')['default']; - line 172: $table->renameColumn('foo', 'new_foo'); - line 176: $this->assertEquals(collect(Schema::getColumns('test'))->firstWhere('name', 'new_foo')['default'], $defaultFoo); - line 177: $this->assertEquals(collect(Schema::getColumns('test'))->firstWhere('name', 'new_bar')['default'], $defaultBar); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 181: public function testModifyColumnWithZeroDefaultOnSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 181: public function testModifyColumnWithZeroDefaultOnSqlite() - line 184: $table->integer('column_default_zero')->default(new Expression('0')); - line 189: $table->smallInteger('column_to_change')->default(new Expression('0'))->change(); - line 194: $this->assertSame('0', $columns->firstWhere('name', 'column_default_zero')['default']); - line 195: $this->assertSame('0', $columns->firstWhere('name', 'column_to_change')['default']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 198: public function testCompoundPrimaryWithAutoIncrement() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 198: public function testCompoundPrimaryWithAutoIncrement() - line 201: $this->markTestSkipped('Compound primary key with an auto increment column is not supported on SQLite.'); - line 205: $table->id(); - line 211: $this->assertTrue(collect(Schema::getColumns('test'))->firstWhere('name', 'id')['auto_increment']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 215: public function testModifyingAutoIncrementColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 215: public function testModifyingAutoIncrementColumn() - line 218: $this->markTestSkipped('Changing a primary column is not supported on SQL Server.'); - line 222: $table->increments('id'); - line 225: $this->assertTrue(collect(Schema::getColumns('test'))->firstWhere('name', 'id')['auto_increment']); - line 229: $table->bigIncrements('id')->change(); - line 232: $this->assertTrue(collect(Schema::getColumns('test'))->firstWhere('name', 'id')['auto_increment']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 236: public function testModifyingColumnToAutoIncrementColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 236: public function testModifyingColumnToAutoIncrementColumn() - line 239: $this->markTestSkipped('Changing a column to auto increment is not supported on PostgreSQL and SQL Server.'); - line 243: $table->unsignedBigInteger('id'); - line 246: $this->assertFalse(collect(Schema::getColumns('test'))->firstWhere('name', 'id')['auto_increment']); - line 250: $table->bigIncrements('id')->primary()->change(); - line 253: $this->assertTrue(collect(Schema::getColumns('test'))->firstWhere('name', 'id')['auto_increment']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 257: public function testAddingAutoIncrementColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 257: public function testAddingAutoIncrementColumn() - line 260: $this->markTestSkipped('Adding a primary column is not supported on SQLite.'); - line 264: $table->string('name'); - line 268: $table->bigIncrements('id'); - line 271: $this->assertTrue(collect(Schema::getColumns('test'))->firstWhere('name', 'id')['auto_increment']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 275: public function testGetTables() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 275: public function testGetTables() - line 278: $table->comment('This is a comment'); - line 283: $table->string('name'); - line 287: $table->integer('votes'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 275: public function testGetTables() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 308: public function testGetViews() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 308: public function testGetViews() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 320: public function testGetAndDropTypes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 320: public function testGetAndDropTypes() - line 332: $types = Schema::getTypes(); - line 334: if (version_compare($this->getConnection()->getServerVersion(), '14.0', '<')) { - line 340: $this->assertTrue(collect($types)->contains(fn ($type) => $type['name'] === 'pseudo_foo' && $type['type'] === 'pseudo' && ! $type['implicit'])); - line 341: $this->assertTrue(collect($types)->contains(fn ($type) => $type['name'] === 'comp_foo' && $type['type'] === 'composite' && ! $type['implicit'])); - line 342: $this->assertTrue(collect($types)->contains(fn ($type) => $type['name'] === 'enum_foo' && $type['type'] === 'enum' && ! $type['implicit'])); - line 343: $this->assertTrue(collect($types)->contains(fn ($type) => $type['name'] === 'range_foo' && $type['type'] === 'range' && ! $type['implicit'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 353: public function testGetColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 353: public function testGetColumns() - line 356: $table->id(); - line 364: $this->assertTrue(collect($columns)->contains( - line 367: $this->assertTrue(collect($columns)->contains( - line 370: $this->assertTrue(collect($columns)->contains( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 406: public function testGetUniqueIndexes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 406: public function testGetUniqueIndexes() - line 409: $table->id(); - line 419: $this->assertTrue(collect($indexes)->contains( - line 422: $this->assertTrue(collect($indexes)->contains( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 432: public function testGetIndexesWithCompositeKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 432: public function testGetIndexesWithCompositeKeys() - line 435: $table->unsignedBigInteger('key'); - line 445: $this->assertTrue(collect($indexes)->contains( - line 448: $this->assertTrue(collect($indexes)->contains( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 454: public function testGetFullTextIndexes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 454: public function testGetFullTextIndexes() - line 457: $table->id(); - line 467: $this->assertTrue(collect($indexes)->contains(fn ($index) => $index['columns'] === ['id'] && $index['primary'])); - line 468: $this->assertTrue(collect($indexes)->contains('name', 'articles_body_title_fulltext')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 491: public function testGetForeignKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 491: public function testGetForeignKeys() - line 494: $table->id(); - line 498: $table->foreignId('user_id')->nullable()->constrained()->cascadeOnUpdate()->nullOnDelete(); - line 504: $this->assertTrue(collect($foreignKeys)->contains( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 511: public function testGetCompoundForeignKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 511: public function testGetCompoundForeignKeys() - line 514: $table->id(); - line 522: $table->integer('c'); - line 531: $this->assertTrue(collect($foreignKeys)->contains( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 538: public function testAlteringTableWithForeignKeyConstraintsEnabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 538: public function testAlteringTableWithForeignKeyConstraintsEnabled() - line 540: Schema::enableForeignKeyConstraints(); - line 543: $table->id(); - line 548: $table->foreignId('parent_id')->constrained(); - line 551: $id = DB::table('parents')->insertGetId(['name' => 'foo']); - line 552: DB::table('children')->insert(['parent_id' => $id]); - line 555: $table->string('name')->change(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 568: public function testSystemVersionedTables() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 568: public function testSystemVersionedTables() - line 572: $this->assertTrue(Schema::hasTable('test')); - line 574: Schema::dropAllTables(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 582: public function testAddingStoredColumnOnSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 582: public function testAddingStoredColumnOnSqlite() - line 585: $table->integer('price'); - line 589: $table->integer('virtual_column')->virtualAs('"price" - 5'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 597: public function testModifyingStoredColumnOnSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 597: public function testModifyingStoredColumnOnSqlite() - line 600: $table->integer('price'); - line 607: DB::table('test')->insert(['price' => 100]); - line 610: $table->integer('virtual_price_changed')->virtualAs('price - 5')->change(); - line 616: (array) DB::table('test')->first() - line 621: $this->assertTrue(collect($columns)->contains( - line 625: $this->assertTrue(collect($columns)->contains( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 640: public function testGettingGeneratedColumns() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 640: public function testGettingGeneratedColumns() - line 643: $table->integer('price'); - line 656: $this->assertTrue(collect($columns)->contains( - line 659: $this->assertTrue(collect($columns)->contains( - line 670: $this->assertTrue(collect($columns)->contains( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 684: public function testAddForeignKeysOnSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 684: public function testAddForeignKeysOnSqlite() - line 687: $table->id(); - line 692: $table->string('title')->unique(); - line 696: $table->foreignId('user_id')->nullable()->index()->constrained(); - line 703: $this->assertTrue(collect($foreignKeys)->contains(fn ($foreign) => $foreign['columns'] === ['user_id'] && $foreign['foreign_table'] === 'users' && $foreign['foreign_columns'] === ['id'])); - line 704: $this->assertTrue(collect($foreignKeys)->contains(fn ($foreign) => $foreign['columns'] === ['user_name'] && $foreign['foreign_table'] === 'users' && $foreign['foreign_columns'] === ['name'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 711: public function testDropForeignKeysOnSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 711: public function testDropForeignKeysOnSqlite() - line 714: $table->id(); - line 719: $table->id(); - line 727: $this->assertTrue(collect($foreignKeys)->contains(fn ($foreign) => $foreign['columns'] === ['user_id'] && $foreign['foreign_table'] === 'users' && $foreign['foreign_columns'] === ['id'])); - line 728: $this->assertTrue(collect($foreignKeys)->contains(fn ($foreign) => $foreign['columns'] === ['user_name'] && $foreign['foreign_table'] === 'users' && $foreign['foreign_columns'] === ['name'])); - line 732: $table->string('title')->unique(); - line 740: $this->assertTrue(collect($foreignKeys)->contains(fn ($foreign) => $foreign['columns'] === ['user_name'] && $foreign['foreign_table'] === 'users' && $foreign['foreign_columns'] === ['name'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 750: public function testAddAndDropPrimaryOnSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 750: public function testAddAndDropPrimaryOnSqlite() - line 753: $table->id(); - line 758: $table->foreignId('user_id')->nullable()->index()->constrained(); - line 764: $table->string('title')->primary(); - line 772: $this->assertTrue(collect($foreignKeys)->contains(fn ($foreign) => $foreign['columns'] === ['user_name'] && $foreign['foreign_table'] === 'users' && $foreign['foreign_columns'] === ['name'])); - line 780: $table->dropPrimary(); - line 786: $this->assertTrue(collect($foreignKeys)->contains(fn ($foreign) => $foreign['columns'] === ['user_name'] && $foreign['foreign_table'] === 'users' && $foreign['foreign_columns'] === ['name'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 792: public function testAddingMacros() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 792: public function testAddingMacros() - line 794: Schema::macro('foo', fn () => 'foo'); - line 800: ->contains(function (array $foreignKey) use ($column, $foreignTable) { - line 807: $table->id(); - line 812: $table->id(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/Sqlite/ConnectorTest.php - Test @ line 25: public function testConnectionConfigurations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 19. Evidence: - line 25: public function testConnectionConfigurations() - line 30: ])->getSchemaBuilder(); - line 32: $this->assertSame(0, $schema->pragma('foreign_keys')); - line 33: $this->assertSame(60000, $schema->pragma('busy_timeout')); - line 34: $this->assertSame('memory', $schema->pragma('journal_mode')); - line 35: $this->assertSame(2, $schema->pragma('synchronous')); - line 47: ])->getSchemaBuilder(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/Sqlite/DatabaseSchemaBlueprintTest.php - Test @ line 28: public function testRenamingAndChangingColumnsWork() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 28: public function testRenamingAndChangingColumnsWork() - line 30: DB::connection()->getSchemaBuilder()->create('users', function ($table) { - line 35: $blueprint = $this->getBlueprint('SQLite', 'users', function ($table) { - line 40: $queries = $blueprint->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 28: public function testRenamingAndChangingColumnsWork() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 53: public function testRenamingColumnsWorks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 53: public function testRenamingColumnsWorks() - line 55: $schema = DB::connection()->getSchemaBuilder(); - line 57: $schema->create('test', function (Blueprint $table) { - line 62: $schema->table('test', function (Blueprint $table) { - line 67: $this->assertFalse($schema->hasColumn('test', 'foo')); - line 68: $this->assertFalse($schema->hasColumn('test', 'baz')); - line 69: $this->assertTrue($schema->hasColumns('test', ['bar', 'qux'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 72: public function testNativeColumnModifyingOnPostgreSql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 72: public function testNativeColumnModifyingOnPostgreSql() - line 74: $blueprint = $this->getBlueprint('Postgres', 'users', function ($table) { - line 84: ], $blueprint->toSql()); - line 86: $blueprint = $this->getBlueprint('Postgres', 'users', function ($table) { - line 97: ], $blueprint->toSql()); - line 99: $blueprint = $this->getBlueprint('Postgres', 'users', function ($table) { - line 111: ], $blueprint->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 141: public function testNativeColumnModifyingOnSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 141: public function testNativeColumnModifyingOnSqlServer() - line 143: $blueprint = $this->getBlueprint('SqlServer', 'users', function ($table) { - line 151: ], $blueprint->toSql()); - line 153: $blueprint = $this->getBlueprint('SqlServer', 'users', function ($table) { - line 161: ], $blueprint->toSql()); - line 163: $blueprint = $this->getBlueprint('SqlServer', 'users', function ($table) { - line 170: ], $blueprint->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 173: public function testChangingColumnWithCollationWorks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 173: public function testChangingColumnWithCollationWorks() - line 175: DB::connection()->getSchemaBuilder()->create('users', function ($table) { - line 179: $blueprint = $this->getBlueprint('SQLite', 'users', function ($table) { - line 183: $blueprint2 = $this->getBlueprint('SQLite', 'users', function ($table) { - line 187: $queries = $blueprint->toSql(); - line 198: $queries = $blueprint2->toSql(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 173: public function testChangingColumnWithCollationWorks() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 210: public function testChangingCharColumnsWork() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 210: public function testChangingCharColumnsWork() - line 212: DB::connection()->getSchemaBuilder()->create('users', function ($table) { - line 217: return $this->getBlueprint($grammar, 'users', function ($table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 232: public function testChangingPrimaryAutoincrementColumnsToNonAutoincrementColumnsWork() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 232: public function testChangingPrimaryAutoincrementColumnsToNonAutoincrementColumnsWork() - line 234: DB::connection()->getSchemaBuilder()->create('users', function ($table) { - line 239: return $this->getBlueprint($grammar, 'users', function ($table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 254: public function testChangingDoubleColumnsWork() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 254: public function testChangingDoubleColumnsWork() - line 256: DB::connection()->getSchemaBuilder()->create('products', function ($table) { - line 261: return $this->getBlueprint($grammar, 'products', function ($table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 276: public function testChangingColumnsWithDefaultWorks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 276: public function testChangingColumnsWithDefaultWorks() - line 278: DB::connection()->getSchemaBuilder()->create('products', function ($table) { - line 286: return $this->getBlueprint($grammar, 'products', function ($table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 301: public function testRenameIndexWorks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 301: public function testRenameIndexWorks() - line 303: DB::connection()->getSchemaBuilder()->create('users', function ($table) { - line 307: DB::connection()->getSchemaBuilder()->table('users', function ($table) { - line 312: return $this->getBlueprint($grammar, 'users', function ($table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 343: public function testAddUniqueIndexWithoutNameWorks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 343: public function testAddUniqueIndexWithoutNameWorks() - line 345: DB::connection()->getSchemaBuilder()->create('users', function ($table) { - line 350: return $this->getBlueprint($grammar, 'users', function ($table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 389: public function testAddUniqueIndexWithNameWorks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 389: public function testAddUniqueIndexWithNameWorks() - line 391: DB::connection()->getSchemaBuilder()->create('users', function ($table) { - line 396: return $this->getBlueprint($grammar, 'users', function ($table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 435: public function testAddColumnNamedCreateWorks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 435: public function testAddColumnNamedCreateWorks() - line 438: $table->string('name'); - line 442: $table->string('create')->nullable(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 448: public function testDropIndexOnColumnChangeWorks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 448: public function testDropIndexOnColumnChangeWorks() - line 450: DB::connection()->getSchemaBuilder()->create('users', function ($table) { - line 455: return $this->getBlueprint($grammar, 'users', function ($table) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 481: public function testItDoesNotSetPrecisionHigherThanSupportedWhenRenamingTimestamps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 481: public function testItDoesNotSetPrecisionHigherThanSupportedWhenRenamingTimestamps() - line 484: $table->timestamp('created_at'); - line 490: $table->renameColumn('created_at', 'new_created_at'); - line 493: $this->addToAssertionCount(1); // it did not throw - line 498: $this->fail('test_it_does_not_set_precision_higher_than_supported_when_renaming_timestamps has failed. Error: '.$e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 481: public function testItDoesNotSetPrecisionHigherThanSupportedWhenRenamingTimestamps() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 502: public function testItEnsuresDroppingForeignKeyIsAvailable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 502: public function testItEnsuresDroppingForeignKeyIsAvailable() - line 504: $this->expectException(RuntimeException::class); - line 505: $this->expectExceptionMessage('This database driver does not support dropping foreign keys by name.'); - line 508: $table->dropForeign('something'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 502: public function testItEnsuresDroppingForeignKeyIsAvailable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/Sqlite/DatabaseSchemaBuilderTest.php - Test @ line 33: public function testDropAllTablesWorksWithForeignKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 33: public function testDropAllTablesWorksWithForeignKeys() - line 36: $table->integer('id'); - line 41: $table->integer('id'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 55: public function testHasColumnAndIndexWithPrefixIndexDisabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 55: public function testHasColumnAndIndexWithPrefixIndexDisabled() - line 59: Schema::connection('sqlite-with-prefix')->create('table1', function (Blueprint $table) { - line 64: $indexes = array_column($connection->getSchemaBuilder()->getIndexes('table1'), 'name'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 55: public function testHasColumnAndIndexWithPrefixIndexDisabled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 69: public function testHasColumnAndIndexWithPrefixIndexEnabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 69: public function testHasColumnAndIndexWithPrefixIndexEnabled() - line 73: Schema::connection('sqlite-with-indexed-prefix')->create('table1', function (Blueprint $table) { - line 78: $indexes = array_column($connection->getSchemaBuilder()->getIndexes('table1'), 'name'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 69: public function testHasColumnAndIndexWithPrefixIndexEnabled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 83: public function testAlterTableAddForeignKeyWithPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 83: public function testAlterTableAddForeignKeyWithPrefix() - line 85: $schema = Schema::connection('sqlite-with-prefix'); - line 87: $schema->create('table1', function (Blueprint $table) { - line 91: $schema->create('table2', function (Blueprint $table) { - line 96: $schema->table('table2', function (Blueprint $table) { - line 100: $foreignKeys = collect($schema->getForeignKeys('table2')); - line 102: $this->assertTrue($foreignKeys->contains( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 115: public function testAlterTableAddForeignKeyWithExpressionDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 115: public function testAlterTableAddForeignKeyWithExpressionDefault() - line 118: $table->id(); - line 123: $table->foreignId('item_id')->nullable()->constrained('items'); - line 126: $this->assertTrue(collect(Schema::getForeignKeys('items'))->contains( - line 134: $this->assertTrue(collect($columns)->contains( - line 138: $this->assertTrue(collect($columns)->contains(fn ($column) => $column['name'] === 'item_id' && $column['nullable'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/Sqlite/DatabaseSqliteConnectionTest.php - Test @ line 43: public function testWhereJsonContainsKey($count, $column) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 43: public function testWhereJsonContainsKey($count, $column) - line 45: DB::table('json_table')->insert([ - line 53: $this->assertSame($count, DB::table('json_table')->whereJsonContainsKey($column)->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/Sqlite/DatabaseSqliteSchemaBuilderTest.php - Test @ line 42: public function testGetTablesAndColumnListing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 42: public function testGetTablesAndColumnListing() - line 44: $tables = Schema::getTables(); - line 56: $table->integer('id'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 64: public function testGetViews() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 64: public function testGetViews() - line 66: DB::connection('conn1')->statement(<<<'SQL' - line 77: DB::connection('conn1')->statement(<<<'SQL' Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 84: public function testGetRawIndex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 84: public function testGetRawIndex() - line 87: $table->id(); - line 94: $this->assertSame([], collect($indexes)->firstWhere('name', 'table_raw_index')['columns']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/Sqlite/EloquentModelConnectionsTest.php - Test @ line 57: public function testChildObeysParentConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 57: public function testChildObeysParentConnection() - line 59: $parent1 = ParentModel::create(['name' => Str::random()]); - line 60: $parent1->children()->create(['name' => 'childOnConn1']); - line 62: $this->assertSame('childOnConn1', ChildModel::on('conn1')->first()->name); - line 63: $this->assertSame('childOnConn1', $parent1->children()->first()->name); - line 66: $parent2 = ParentModel::on('conn2')->create(['name' => Str::random()]); - line 67: $parent2->children()->create(['name' => 'childOnConn2']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 74: public function testChildUsesItsOwnConnectionIfSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 74: public function testChildUsesItsOwnConnectionIfSet() - line 76: $parent1 = ParentModel::create(['name' => Str::random()]); - line 77: $parent1->childrenDefaultConn2()->create(['name' => 'childAlwaysOnConn2']); - line 80: $this->assertSame('childAlwaysOnConn2', $parent1->childrenDefaultConn2()->first()->name); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 85: public function testChildUsesItsOwnConnectionIfSetEvenIfParentExplicitConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 85: public function testChildUsesItsOwnConnectionIfSetEvenIfParentExplicitConnection() - line 87: $parent1 = ParentModel::on('conn1')->create(['name' => Str::random()]); - line 88: $parent1->childrenDefaultConn2()->create(['name' => 'childAlwaysOnConn2']); - line 91: $this->assertSame('childAlwaysOnConn2', $parent1->childrenDefaultConn2()->first()->name); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/Sqlite/EscapeTest.php - Test @ line 25: public function testEscapeInt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 25: public function testEscapeInt() - line 27: $this->assertSame('42', $this->app['db']->escape(42)); - line 28: $this->assertSame('-6', $this->app['db']->escape(-6)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 31: public function testEscapeFloat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 31: public function testEscapeFloat() - line 33: $this->assertSame('3.14159', $this->app['db']->escape(3.14159)); - line 34: $this->assertSame('-3.14159', $this->app['db']->escape(-3.14159)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 37: public function testEscapeBool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 37: public function testEscapeBool() - line 39: $this->assertSame('1', $this->app['db']->escape(true)); - line 40: $this->assertSame('0', $this->app['db']->escape(false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 43: public function testEscapeNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 43: public function testEscapeNull() - line 45: $this->assertSame('null', $this->app['db']->escape(null)); - line 46: $this->assertSame('null', $this->app['db']->escape(null, true)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 54: public function testEscapeString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 54: public function testEscapeString() - line 56: $this->assertSame("'2147483647'", $this->app['db']->escape('2147483647')); - line 57: $this->assertSame("'true'", $this->app['db']->escape('true')); - line 58: $this->assertSame("'false'", $this->app['db']->escape('false')); - line 59: $this->assertSame("'null'", $this->app['db']->escape('null')); - line 60: $this->assertSame("'Hello''World'", $this->app['db']->escape("Hello'World")); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 63: public function testEscapeStringInvalidUtf8() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 63: public function testEscapeStringInvalidUtf8() - line 65: $this->expectException(RuntimeException::class); - line 67: $this->app['db']->escape("I am hiding an invalid \x80 utf-8 continuation byte"); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 63: public function testEscapeStringInvalidUtf8() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 70: public function testEscapeStringNullByte() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 70: public function testEscapeStringNullByte() - line 72: $this->expectException(RuntimeException::class); - line 74: $this->app['db']->escape("I am hiding a \00 byte"); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 70: public function testEscapeStringNullByte() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 77: public function testEscapeArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 77: public function testEscapeArray() - line 79: $this->expectException(RuntimeException::class); - line 81: $this->app['db']->escape(['a', 'b']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 77: public function testEscapeArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/Sqlite/SchemaStateTest.php - Test @ line 37: public function testSchemaDumpOnSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 37: public function testSchemaDumpOnSqlite() - line 39: if ($this->usesSqliteInMemoryDatabaseConnection()) { - line 44: $connection->getSchemaBuilder()->createDatabase($connection->getConfig('database')); - line 46: $connection->statement('CREATE TABLE IF NOT EXISTS migrations (id integer primary key autoincrement not null, migration varchar not null, batch integer not null);'); - line 47: $connection->statement('CREATE TABLE users (id integer primary key autoincrement not null, email varchar not null, name varchar not null);'); - line 48: $connection->statement('INSERT INTO users (email, name) VALUES ("taylor@laravel.com", "Taylor Otwell");'); - line 50: $this->assertTrue($connection->table('sqlite_sequence')->exists()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/SqlServer/DatabaseSqlServerConnectionTest.php - Test @ line 31: public function testWhereJsonContainsKey($count, $column) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 31: public function testWhereJsonContainsKey($count, $column) - line 33: DB::table('json_table')->insert([ - line 41: $this->assertSame($count, DB::table('json_table')->whereJsonContainsKey($column)->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Database/SqlServer/DatabaseSqlServerSchemaBuilderTest.php - Test @ line 28: public function testGetTables() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 28: public function testGetTables() - line 32: $rows = Schema::getTables(); - line 36: collect($rows)->contains('name', 'migrations'), - line 40: collect($rows)->contains('name', 'users'), - line 44: collect($rows)->contains('name', 'users_view'), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 69: public function testComputedColumnsListing() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 69: public function testComputedColumnsListing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 77: public function testCreateIndexesOnline() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 77: public function testCreateIndexesOnline() - line 80: $table->id(); - line 89: $indexNames = collect($indexes)->pluck('name'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 77: public function testCreateIndexesOnline() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/SqlServer/EscapeTest.php - Test @ line 9: public function testEscapeInt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 9: public function testEscapeInt() - line 11: $this->assertSame('42', $this->app['db']->escape(42)); - line 12: $this->assertSame('-6', $this->app['db']->escape(-6)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 15: public function testEscapeFloat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 15: public function testEscapeFloat() - line 17: $this->assertSame('3.14159', $this->app['db']->escape(3.14159)); - line 18: $this->assertSame('-3.14159', $this->app['db']->escape(-3.14159)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 21: public function testEscapeBool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 21: public function testEscapeBool() - line 23: $this->assertSame('1', $this->app['db']->escape(true)); - line 24: $this->assertSame('0', $this->app['db']->escape(false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 27: public function testEscapeNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 27: public function testEscapeNull() - line 29: $this->assertSame('null', $this->app['db']->escape(null)); - line 30: $this->assertSame('null', $this->app['db']->escape(null, true)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 38: public function testEscapeString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 38: public function testEscapeString() - line 40: $this->assertSame("'2147483647'", $this->app['db']->escape('2147483647')); - line 41: $this->assertSame("'true'", $this->app['db']->escape('true')); - line 42: $this->assertSame("'false'", $this->app['db']->escape('false')); - line 43: $this->assertSame("'null'", $this->app['db']->escape('null')); - line 44: $this->assertSame("'Hello''World'", $this->app['db']->escape("Hello'World")); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 47: public function testEscapeStringInvalidUtf8() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 47: public function testEscapeStringInvalidUtf8() - line 49: $this->expectException(RuntimeException::class); - line 51: $this->app['db']->escape("I am hiding an invalid \x80 utf-8 continuation byte"); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 47: public function testEscapeStringInvalidUtf8() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 54: public function testEscapeStringNullByte() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 54: public function testEscapeStringNullByte() - line 56: $this->expectException(RuntimeException::class); - line 58: $this->app['db']->escape("I am hiding a \00 byte"); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 54: public function testEscapeStringNullByte() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 61: public function testEscapeArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 61: public function testEscapeArray() - line 63: $this->expectException(RuntimeException::class); - line 65: $this->app['db']->escape(['a', 'b']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 61: public function testEscapeArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/SqlServer/JoinLateralTest.php - Test @ line 49: public function testJoinLateral() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 49: public function testJoinLateral() - line 52: ->select('title as best_post_title', 'rating as best_post_rating') - line 58: ->where('id', 1) - line 67: ->where('id', 2) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testJoinLateral() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 74: public function testLeftJoinLateral() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 74: public function testLeftJoinLateral() - line 77: ->select('title as best_post_title', 'rating as best_post_rating') - line 83: ->where('id', 1) - line 92: ->where('id', 2) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 74: public function testLeftJoinLateral() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Database/TimestampTypeTest.php - Test @ line 11: public function testChangeDatetimeColumnToTimestampColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 11: public function testChangeDatetimeColumnToTimestampColumn() - line 14: $table->addColumn('datetime', 'datetime_to_timestamp'); - line 18: $table->timestamp('datetime_to_timestamp')->nullable()->change(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 32: public function testChangeTimestampColumnToDatetimeColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 32: public function testChangeTimestampColumnToDatetimeColumn() - line 35: $table->addColumn('timestamp', 'timestamp_to_datetime'); - line 39: $table->dateTime('timestamp_to_datetime')->nullable()->change(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 54: public function testChangeStringColumnToTimestampColumn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 54: public function testChangeStringColumnToTimestampColumn() - line 57: $table->string('string_to_timestamp'); - line 60: $blueprint = new Blueprint($this->getConnection(), 'test', function ($table) { - line 66: $this->assertEquals($expected, $blueprint->toSql()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Encryption/EncryptionTest.php - Test @ line 13: public function testEncryptionProviderBind() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 13: public function testEncryptionProviderBind() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 18: public function testEncryptionWillNotBeInstantiableWhenMissingAppKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 18: public function testEncryptionWillNotBeInstantiableWhenMissingAppKey() - line 20: $this->expectException(RuntimeException::class); - line 24: $this->app->make('encrypter'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 18: public function testEncryptionWillNotBeInstantiableWhenMissingAppKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Events/DeferEventsTest.php - Test @ line 11: public function testDeferEvents() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 16: $_SERVER['__event.test'] = $foo; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 13: unset($_SERVER['__event.test']); - Test @ line 31: public function testDeferModelEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 31: public function testDeferModelEvents() - line 35: TestModel::saved(function () { - line 41: $model->fireModelEvent('saved', false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 33: $_SERVER['__model_event.test'] = []; - Test @ line 52: public function testDeferMultipleModelEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 52: public function testDeferMultipleModelEvents() - line 56: TestModel::saved(function () { - line 66: $model1->fireModelEvent('saved'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 54: $_SERVER['__model_events'] = []; - Test @ line 81: public function testDeferSpecificModelEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 81: public function testDeferSpecificModelEvents() - line 85: TestModel::creating(function () { - line 95: $model->fireModelEvent('creating'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 83: $_SERVER['__model_events'] = []; ❌ tests/Integration/Events/EventFakeTest.php - Test @ line 37: public function testNonFakedEventGetsProperlyDispatched() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 37: public function testNonFakedEventGetsProperlyDispatched() - line 40: Post::observe([PostObserver::class]); - line 44: $post->save(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 69: public function testNonFakedEventGetsProperlyDispatchedAndCancelsFutureListeners() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 69: public function testNonFakedEventGetsProperlyDispatchedAndCancelsFutureListeners() - line 79: $this->fail('should not be called'); - line 80: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 105: public function testFakeExceptAllowsGivenEventToBeDispatched() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome requires facade fake setup (Event::fake()). Evidence: - line 105: public function testFakeExceptAllowsGivenEventToBeDispatched() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 114: public function testFakeExceptAllowsGivenEventsToBeDispatched() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 114: public function testFakeExceptAllowsGivenEventsToBeDispatched() - line 119: ]); - line 121: Event::dispatch(NonImportantEvent::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome requires facade fake setup (Event::fake()). Evidence: - line 114: public function testFakeExceptAllowsGivenEventsToBeDispatched() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 128: public function testEventsListedInExceptAreProperlyDispatched() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 128: public function testEventsListedInExceptAreProperlyDispatched() - line 130: Event::fake()->except('important-event'); - line 138: }); - line 140: $this->assertEquals(null, Event::dispatch('test')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 144: public function testAssertListening() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 144: public function testAssertListening() - line 148: $listenersOfSameEventInRandomOrder = Arr::shuffle([ - line 168: (new Post)->save(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 224: public function testAssertNothingDispatchedShouldDispatchAfterCommit() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 224: public function testAssertNothingDispatchedShouldDispatchAfterCommit() - line 227: Event::assertNothingDispatched(); - line 229: Event::dispatch(new ShouldDispatchAfterCommitEvent); - line 234: $this->fail(); - line 236: $this->assertStringContainsString("2 unexpected events were dispatched:\n\n- Illuminate\Tests\Integration\Events\ShouldDispatchAfterCommitEvent dispatched 2 times", $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Events/ListenerTest.php - Test @ line 20: public function testClassListenerRunsNormallyIfNoTransactions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 20: public function testClassListenerRunsNormallyIfNoTransactions() - line 22: $this->app->singleton('db.transactions', function () { - line 29: Event::listen(ListenerTestEvent::class, ListenerTestListener::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 23: $transactionManager = m::mock(DatabaseTransactionsManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 20: public function testClassListenerRunsNormallyIfNoTransactions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 36: public function testClassListenerDoesntRunInsideTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 36: public function testClassListenerDoesntRunInsideTransaction() - line 38: $this->app->singleton('db.transactions', function () { - line 45: Event::listen(ListenerTestEvent::class, ListenerTestListenerAfterCommit::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 39: $transactionManager = m::mock(DatabaseTransactionsManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 36: public function testClassListenerDoesntRunInsideTransaction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Events/QueuedClosureListenerTest.php - Test @ line 14: public function testAnonymousQueuedListenerIsQueued() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 14: public function testAnonymousQueuedListenerIsQueued() - line 20: })->catch(function (TestEvent $event) { - line 22: })->onConnection(null)->onQueue(null)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 31: public function testAnonymousQueuedListenerIsQueuedOnMessageGroup() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 31: public function testAnonymousQueuedListenerIsQueuedOnMessageGroup() - line 39: })->catch(function (TestEvent $event) { - line 41: })->onConnection(null)->onQueue(null)->onGroup($messageGroup)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 50: public function testAnonymousQueuedListenerIsQueuedWithDeduplicator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 50: public function testAnonymousQueuedListenerIsQueuedWithDeduplicator() - line 58: })->catch(function (TestEvent $event) { - line 60: })->onConnection(null)->onQueue(null)->withDeduplicator($deduplicator)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Events/ShouldDispatchAfterCommitEventTest.php - Test @ line 21: public function testEventIsDispatchedIfThereIsNoTransaction() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 21: public function testEventIsDispatchedIfThereIsNoTransaction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 30: public function testEventIsNotDispatchedIfTransactionFails() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 30: public function testEventIsNotDispatchedIfTransactionFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 46: public function testEventIsDispatchedIfTransactionSucceeds() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 46: public function testEventIsDispatchedIfTransactionSucceeds() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 57: public function testItHandlesNestedTransactions() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 57: public function testItHandlesNestedTransactions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 84: public function testItOnlyDispatchesNestedTransactionsEventsAfterTheRootTransactionIsCommitted() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 84: public function testItOnlyDispatchesNestedTransactionsEventsAfterTheRootTransactionIsCommitted() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 108: public function testItOnlyDispatchesNestedTransactionsEventsAfterTheRootTransactionIsCommittedDifferentOrder() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 108: public function testItOnlyDispatchesNestedTransactionsEventsAfterTheRootTransactionIsCommittedDifferentOrder() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 133: public function testItDoesNotDispatchAfterCommitEventsImmediatelyIfASiblingTransactionIsCommittedFirst() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 133: public function testItDoesNotDispatchAfterCommitEventsImmediatelyIfASiblingTransactionIsCommittedFirst() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 149: public function testChildEventsAreNotDispatchedIfParentTransactionFails() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 149: public function testChildEventsAreNotDispatchedIfParentTransactionFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 173: public function testItHandlesNestedTransactionsWhereTheSecondOneFails() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 173: public function testItHandlesNestedTransactionsWhereTheSecondOneFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 197: public function testChildCallbacksShouldNotBeDispatchedIfTheirParentFails() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 197: public function testChildCallbacksShouldNotBeDispatchedIfTheirParentFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 218: public function testItHandlesFailuresWithTransactionsTwoLevelsHigher() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 218: public function testItHandlesFailuresWithTransactionsTwoLevelsHigher() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 243: public function testCommittedTransactionThatWasDeeplyNestedIsRemovedIfTopLevelFails() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 243: public function testCommittedTransactionThatWasDeeplyNestedIsRemovedIfTopLevelFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Filesystem/FilesystemTest.php - Test @ line 41: public function testItCanDeleteViaFilesystemRequiresManualClearStatCacheOnFileExistsFromDifferentProcess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 41: public function testItCanDeleteViaFilesystemRequiresManualClearStatCacheOnFileExistsFromDifferentProcess() - line 43: $this->assertTrue(File::exists($this->stubFile)); - line 46: Process::fromShellCommandline("rm {$this->stubFile}")->run(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 62: public function testItCanDeleteViaFilesystemRequiresManualClearStatCacheOnIsFileFromDifferentProcess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 62: public function testItCanDeleteViaFilesystemRequiresManualClearStatCacheOnIsFileFromDifferentProcess() - line 64: $this->assertTrue(File::exists($this->stubFile)); - line 67: Process::fromShellCommandline("rm {$this->stubFile}")->run(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Filesystem/ServeFileTest.php - Test @ line 25: public function testItCanServeAnExistingFile() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 25: public function testItCanServeAnExistingFile() - line 27: $url = Storage::temporaryUrl('serve-file-test.txt', now()->addMinutes(1)); - line 31: $this->assertEquals('Hello World', $response->streamedContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 34: public function testItWill404OnMissingFile() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 34: public function testItWill404OnMissingFile() - line 36: $url = Storage::temporaryUrl('serve-missing-test.txt', now()->addMinutes(1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 43: public function testItWill403OnWrongSignature() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 43: public function testItWill403OnWrongSignature() - line 45: $url = Storage::temporaryUrl('serve-file-test.txt', now()->addMinutes(1)); - line 47: $url = $url.'c'; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Filesystem/StorageTest.php - Test @ line 32: public function testItCanDeleteViaStorage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 32: public function testItCanDeleteViaStorage() - line 34: Storage::disk('public')->assertExists('StardewTaylor.png'); - line 35: $this->assertTrue(Storage::disk('public')->exists('StardewTaylor.png')); - line 37: Storage::disk('public')->delete('StardewTaylor.png'); - line 40: $this->assertFalse(Storage::disk('public')->exists('StardewTaylor.png')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 43: public function testItCanDeleteViaFilesystemShouldUpdatesStorage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 43: public function testItCanDeleteViaFilesystemShouldUpdatesStorage() - line 45: Storage::disk('public')->assertExists('StardewTaylor.png'); - line 46: $this->assertTrue(Storage::disk('public')->exists('StardewTaylor.png')); - line 51: $this->assertFalse(Storage::disk('public')->exists('StardewTaylor.png')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 54: public function testItCanDeleteViaFilesystemRequiresManualClearStatCacheOnStorageFromDifferentProcess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 54: public function testItCanDeleteViaFilesystemRequiresManualClearStatCacheOnStorageFromDifferentProcess() - line 56: Storage::disk('public')->assertExists('StardewTaylor.png'); - line 57: $this->assertTrue(Storage::disk('public')->exists('StardewTaylor.png')); - line 59: Process::fromShellCommandline("rm {$this->stubFile}")->run(); - line 63: $this->assertFalse(Storage::disk('public')->exists('StardewTaylor.png')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 66: public function testConditionable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 66: public function testConditionable() - line 68: Storage::disk('public')->assertExists('StardewTaylor.png'); - line 69: $this->assertTrue(Storage::disk('public')->exists('StardewTaylor.png')); - line 71: Storage::disk('public')->when(false)->delete('StardewTaylor.png'); - line 74: $this->assertTrue(Storage::disk('public')->exists('StardewTaylor.png')); - line 76: Storage::disk('public')->when(true)->delete('StardewTaylor.png'); - line 79: $this->assertFalse(Storage::disk('public')->exists('StardewTaylor.png')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 82: public function testItCanDeleteDirectoryViaStorage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 82: public function testItCanDeleteDirectoryViaStorage() - line 84: if (! Storage::disk('public')->exists('testdir')) { - line 89: $this->assertTrue(Storage::disk('public')->exists('testdir')); - line 91: Storage::disk('public')->deleteDirectory('testdir'); - line 94: $this->assertFalse(Storage::disk('public')->exists('testdir')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Foundation/CloudTest.php - Test @ line 23: public function test_it_can_configure_disks() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 25: $_SERVER['LARAVEL_CLOUD_DISK_CONFIG'] = json_encode( - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 53: unset($_SERVER['LARAVEL_CLOUD_DISK_CONFIG']); - Test @ line 56: public function test_it_respects_log_levels() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 62: $_SERVER['LOG_LEVEL'] = 'notice'; - line 71: $_SERVER['LOG_LEVEL'] = $logLevelBackup; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 68: unset($_SERVER['LOG_LEVEL']); ❌ tests/Integration/Foundation/Configuration/WithScheduleTest.php - Test @ line 35: public function testDisplaySchedule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 35: public function testDisplaySchedule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Foundation/Console/AboutCommandTest.php - Test @ line 13: public function testItCanDisplayAboutCommandAsJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 13: public function testItCanDisplayAboutCommandAsJson() - line 15: $process = remote('about --json', ['APP_ENV' => 'local'])->mustRun(); - line 17: tap(json_decode($process->getOutput(), true), function ($output) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 13: public function testItCanDisplayAboutCommandAsJson() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Foundation/Console/ClosureCommandTest.php - Test @ line 19: public function testItCanRunClosureCommand() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 19: public function testItCanRunClosureCommand() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Foundation/Console/ConfigCacheCommandTest.php - Test @ line 34: public function testConfigurationCanBeCachedSuccessfully() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 34: public function testConfigurationCanBeCachedSuccessfully() - line 37: $files->put($this->app->configPath('testconfig.php'), <<<'PHP' - line 51: ); - line 57: $this->assertFileExists($this->app->getCachedConfigPath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function testConfigurationCanBeCachedSuccessfully() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 60: public function testConfigurationCacheFailsWithNonSerializableValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 60: public function testConfigurationCacheFailsWithNonSerializableValue() - line 63: $files->put($this->app->configPath('testconfig.php'), <<<'PHP' - line 74: $this->expectException(LogicException::class); - line 75: $this->expectExceptionMessage('Your configuration files could not be serialized because the value at "testconfig.closure" is non-serializable.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 60: public function testConfigurationCacheFailsWithNonSerializableValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 80: public function testConfigurationCacheFailsWithNestedNonSerializableValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 80: public function testConfigurationCacheFailsWithNestedNonSerializableValue() - line 83: $files->put($this->app->configPath('testconfig.php'), <<<'PHP' - line 98: $this->expectException(LogicException::class); - line 99: $this->expectExceptionMessage('Your configuration files could not be serialized because the value at "testconfig.nested.deep.closure" is non-serializable.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 80: public function testConfigurationCacheFailsWithNestedNonSerializableValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 104: public function testConfigurationCacheIsDeletedWhenSerializationFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 104: public function testConfigurationCacheIsDeletedWhenSerializationFails() - line 107: $files->put($this->app->configPath('testconfig.php'), <<<'PHP' - line 116: ); - line 120: $this->fail('should have thrown an exception'); - line 125: $this->assertFileDoesNotExist($this->app->getCachedConfigPath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 104: public function testConfigurationCacheIsDeletedWhenSerializationFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Foundation/Console/ConfigPublishCommandTest.php - Test @ line 49: public function testItCanPublishConfigFilesWhenConfiguredWithDontMergeFrameworkConfiguration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 49: public function testItCanPublishConfigFilesWhenConfiguredWithDontMergeFrameworkConfiguration() - line 50: { - line 64: $this->assertSame(config('app.providers'), ServiceProvider::defaultProviders()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Foundation/CoreContainerAliasesTest.php - Test @ line 11: public function testItCanResolveCoreContainerAliases() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 11: public function testItCanResolveCoreContainerAliases() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Foundation/ExceptionHandlerTest.php - Test @ line 38: public function testItRendersAuthorizationExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 38: public function testItRendersAuthorizationExceptions() - line 40: Route::get('test-route', fn () => Response::deny('expected message', 321)->authorize()); - line 45: ->assertSeeText('expected message'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 55: public function testItDoesntReportExceptionsWithShouldntReportInterface() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 55: public function testItDoesntReportExceptionsWithShouldntReportInterface() - line 59: $this->app[ExceptionHandler::class]->reportable(function (Throwable $e) use (&$reported) { - line 71: Route::get('test-route', fn () => throw $exception); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 57: Config::set('app.debug', true); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - Test @ line 80: public function testItRendersAuthorizationExceptionsWithCustomStatusCode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 80: public function testItRendersAuthorizationExceptionsWithCustomStatusCode() - line 82: Route::get('test-route', fn () => Response::deny('expected message', 321)->withStatus(404)->authorize()); - line 87: ->assertSeeText('Not Found'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 97: public function testItRendersAuthorizationExceptionsWithStatusCodeTextWhenNoMessageIsSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 97: public function testItRendersAuthorizationExceptionsWithStatusCodeTextWhenNoMessageIsSet() - line 99: Route::get('test-route', fn () => Response::denyWithStatus(404)->authorize()); - line 104: ->assertSeeText('Not Found'); - line 113: Route::get('test-route', fn () => Response::denyWithStatus(418)->authorize()); - line 118: ->assertSeeText("I'm a teapot", false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 128: public function testItRendersAuthorizationExceptionsWithStatusButWithoutResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 128: public function testItRendersAuthorizationExceptionsWithStatusButWithoutResponse() - line 130: Route::get('test-route', fn () => throw (new AuthorizationException())->withStatus(418)); - line 135: ->assertSeeText("I'm a teapot", false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 145: public function testItHasFallbackErrorMessageForUnknownStatusCodes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 145: public function testItHasFallbackErrorMessageForUnknownStatusCodes() - line 147: Route::get('test-route', fn () => throw (new AuthorizationException())->withStatus(399)); - line 152: ->assertSeeText('Whoops, looks like something went wrong.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 162: public function testItReturns400CodeOnMalformedRequests() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 162: public function testItReturns400CodeOnMalformedRequests() - line 163: { - line 167: ->assertSeeText('Bad Request'); // see https://github.com/symfony/symfony/blob/1d439995eb6d780531b97094ff5fa43e345fc42e/src/Symfony/Component/ErrorHandler/Resources/views/error.html.php#L12 Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 178: public function testItReturnsNonZeroExitCodesForUncaughtExceptions($providers, $successful) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 178: public function testItReturnsNonZeroExitCodesForUncaughtExceptions($providers, $successful) - line 180: $basePath = static::applicationBasePath(); - line 189: \$laravel->singleton('Illuminate\Contracts\Debug\ExceptionHandler', 'Illuminate\Foundation\Exceptions\Handler'); - line 196: $process->run(); - line 198: $this->assertSame($successful, $process->isSuccessful()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 207: public function test_it_handles_malformed_error_views_in_production() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 207: public function test_it_handles_malformed_error_views_in_production() - line 212: $this->app[ExceptionHandler::class]->reportable(function (Throwable $e) use (&$reported) { - line 214: }); - line 223: $this->assertSame('Undefined variable $foo (View: '.__DIR__.DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR.'MalformedErrorViews'.DIRECTORY_SEPARATOR.'errors'.DIRECTORY_SEPARATOR.'404.blade.php)', $reported[0]->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 209: Config::set('view.paths', [__DIR__.'/Fixtures/MalformedErrorViews']); - line 210: Config::set('app.debug', false); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - Test @ line 228: public function test_it_handles_malformed_error_views_in_development() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 228: public function test_it_handles_malformed_error_views_in_development() - line 233: $this->app[ExceptionHandler::class]->reportable(function (Throwable $e) use (&$reported) { - line 235: }); - line 244: $this->assertSame('Undefined variable $foo (View: '.__DIR__.DIRECTORY_SEPARATOR.'Fixtures'.DIRECTORY_SEPARATOR.'MalformedErrorViews'.DIRECTORY_SEPARATOR.'errors'.DIRECTORY_SEPARATOR.'404.blade.php)', $reported[0]->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 230: Config::set('view.paths', [__DIR__.'/Fixtures/MalformedErrorViews']); - line 231: Config::set('app.debug', true); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - Test @ line 249: public function test_it_use_custom_json_response_factory_in_exception_handler() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 249: public function test_it_use_custom_json_response_factory_in_exception_handler() - line 251: $this->app->singleton(ResponseFactoryContract::class, function ($app) { - line 278: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 289: public function test_it_reports_request_exceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 289: public function test_it_reports_request_exceptions() - line 296: Log::setDefaultDriver('test_log'); - line 308: $recordedLogs = Log::getLogger()->getHandlers()[0]->getRecords(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Foundation/Exceptions/RendererTest.php - Test @ line 23: public function testItCanRenderExceptionPage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 23: public function testItCanRenderExceptionPage() - line 25: $this->assertTrue($this->app->bound(Renderer::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 34: public function testItCanRenderExceptionPageUsingSymfonyIfRendererIsNotDefined() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 34: public function testItCanRenderExceptionPageUsingSymfonyIfRendererIsNotDefined() - line 38: $this->assertFalse($this->app->bound(Renderer::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 47: public function testItCanRenderExceptionPageWithRendererWhenDebugEnabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 47: public function testItCanRenderExceptionPageWithRendererWhenDebugEnabled() - line 49: $this->app->singleton(ExceptionRenderer::class, function () { - line 59: $this->assertTrue($this->app->bound(ExceptionRenderer::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 67: public function testItDoesNotRenderExceptionPageWithRendererWhenDebugDisabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 67: public function testItDoesNotRenderExceptionPageWithRendererWhenDebugDisabled() - line 69: $this->app->singleton(ExceptionRenderer::class, function () { - line 79: $this->assertTrue($this->app->bound(ExceptionRenderer::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 87: public function testItDoesNotRegisterListenersWhenDebugDisabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 87: public function testItDoesNotRegisterListenersWhenDebugDisabled() - line 89: $this->app->forgetInstance(ExceptionRenderer::class); - line 90: $this->assertFalse($this->app->bound(ExceptionRenderer::class)); - line 93: $listener->shouldReceive('registerListeners')->never(); - line 95: $this->app->instance(Listener::class, $listener); - line 96: $this->app->instance(Dispatcher::class, Mockery::mock(Dispatcher::class)); - line 98: $provider = $this->app->getProvider(FoundationServiceProvider::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 92: $listener = Mockery::mock(Listener::class); - line 96: $this->app->instance(Dispatcher::class, Mockery::mock(Dispatcher::class)); - Test @ line 103: public function testItDoesNotRegisterListenersWhenRendererBound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 103: public function testItDoesNotRegisterListenersWhenRendererBound() - line 105: $this->app->singleton(ExceptionRenderer::class, function () { - line 115: $this->assertTrue($this->app->bound(ExceptionRenderer::class)); - line 118: $listener->shouldReceive('registerListeners')->never(); - line 120: $this->app->instance(Listener::class, $listener); - line 121: $this->app->instance(Dispatcher::class, Mockery::mock(Dispatcher::class)); - line 123: $provider = $this->app->getProvider(FoundationServiceProvider::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 117: $listener = Mockery::mock(Listener::class); - line 121: $this->app->instance(Dispatcher::class, Mockery::mock(Dispatcher::class)); - Test @ line 128: public function testItRegistersListenersWhenRendererNotBound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 128: public function testItRegistersListenersWhenRendererNotBound() - line 130: $this->app->forgetInstance(ExceptionRenderer::class); - line 131: $this->assertFalse($this->app->bound(ExceptionRenderer::class)); - line 136: $this->app->instance(Listener::class, $listener); - line 137: $this->app->instance(Dispatcher::class, Mockery::mock(Dispatcher::class)); - line 139: $provider = $this->app->getProvider(FoundationServiceProvider::class); - line 140: $provider->boot(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 133: $listener = Mockery::mock(Listener::class); - line 137: $this->app->instance(Dispatcher::class, Mockery::mock(Dispatcher::class)); ❌ tests/Integration/Foundation/FoundationHelpersTest.php - Test @ line 55: public function testMixReportsExceptionWhenAssetIsMissingFromManifest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 55: public function testMixReportsExceptionWhenAssetIsMissingFromManifest() - line 58: $this->app->instance(ExceptionHandler::class, $handler); - line 59: $manifest = $this->makeManifest(); - line 64: $this->assertSame('Unable to locate Mix file: /missing.js.', $handler->reported[0]->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 66: unlink($manifest); - Test @ line 70: public function testMixSilentlyFailsWhenAssetIsMissingFromManifestWhenNotInDebugMode() Violations: - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 78: unlink($manifest); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 70: public function testMixSilentlyFailsWhenAssetIsMissingFromManifestWhenNotInDebugMode() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 82: public function testMixThrowsExceptionWhenAssetIsMissingFromManifestWhenInDebugMode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 82: public function testMixThrowsExceptionWhenAssetIsMissingFromManifestWhenInDebugMode() - line 84: $this->expectException(Exception::class); - line 85: $this->expectExceptionMessage('Unable to locate Mix file: /missing.js.'); - line 87: $manifest = $this->makeManifest(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 94: unlink($manifest); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 82: public function testMixThrowsExceptionWhenAssetIsMissingFromManifestWhenInDebugMode() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 99: public function testMixOnlyThrowsAndReportsOneExceptionWhenAssetIsMissingFromManifestWhenInDebugMode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 99: public function testMixOnlyThrowsAndReportsOneExceptionWhenAssetIsMissingFromManifestWhenInDebugMode() - line 102: $this->app->instance(ExceptionHandler::class, $handler); - line 104: $manifest = $this->makeManifest(); - line 108: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 114: unlink($manifest); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 99: public function testMixOnlyThrowsAndReportsOneExceptionWhenAssetIsMissingFromManifestWhenInDebugMode() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 117: public function testFakeReturnsSameInstance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 117: public function testFakeReturnsSameInstance() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 117: public function testFakeReturnsSameInstance() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 125: public function testFakeUsesLocale() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 125: public function testFakeUsesLocale() - line 130: $this->assertSame('Arkansas', fake()->state()); - line 131: $this->assertContains(fake('de_DE')->state(), [ - line 134: $this->assertContains(fake('fr_FR')->region(), [ - line 144: $this->assertSame('Australian Capital Territory', fake()->state()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Foundation/FoundationServiceProvidersTest.php - Test @ line 15: public function testItCanBootServiceProviderRegisteredFromAnotherServiceProvider() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 15: public function testItCanBootServiceProviderRegisteredFromAnotherServiceProvider() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 15: public function testItCanBootServiceProviderRegisteredFromAnotherServiceProvider() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Foundation/MaintenanceModeTest.php - Test @ line 28: public function testBasicMaintenanceModeResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 28: public function testBasicMaintenanceModeResponse() - line 37: })->middleware(PreventRequestsDuringMaintenance::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 46: public function testMaintenanceModeCanHaveCustomStatus() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 46: public function testMaintenanceModeCanHaveCustomStatus() - line 55: })->middleware(PreventRequestsDuringMaintenance::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 63: public function testMaintenanceModeCanHaveCustomTemplate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 63: public function testMaintenanceModeCanHaveCustomTemplate() - line 72: })->middleware(PreventRequestsDuringMaintenance::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 81: public function testMaintenanceModeCanRedirectWithBypassCookie() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 81: public function testMaintenanceModeCanRedirectWithBypassCookie() - line 91: })->middleware(PreventRequestsDuringMaintenance::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 99: public function testMaintenanceModeCanBeBypassedWithValidCookie() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 99: public function testMaintenanceModeCanBeBypassedWithValidCookie() - line 106: $cookie = MaintenanceModeBypassCookie::create('foo'); - line 110: })->middleware(PreventRequestsDuringMaintenance::class); - line 112: $response = $this->withUnencryptedCookies([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 120: public function testMaintenanceModeCanBeBypassedOnExcludedUrls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 120: public function testMaintenanceModeCanBeBypassedOnExcludedUrls() - line 122: $this->app->instance(PreventRequestsDuringMaintenance::class, new class($this->app) extends PreventRequestsDuringMaintenance - line 131: Route::get('/test', fn () => 'Hello World')->middleware(PreventRequestsDuringMaintenance::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 139: public function testMaintenanceModeCantBeBypassedWithInvalidCookie() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 139: public function testMaintenanceModeCantBeBypassedWithInvalidCookie() - line 146: $cookie = MaintenanceModeBypassCookie::create('test-key'); - line 150: })->middleware(PreventRequestsDuringMaintenance::class); - line 152: $response = $this->withUnencryptedCookies([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 159: public function testCanCreateBypassCookies() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 159: public function testCanCreateBypassCookies() - line 161: $cookie = MaintenanceModeBypassCookie::create('test-key'); - line 164: $this->assertSame('laravel_maintenance', $cookie->getName()); - line 166: $this->assertTrue(MaintenanceModeBypassCookie::isValid($cookie->getValue(), 'test-key')); - line 167: $this->assertFalse(MaintenanceModeBypassCookie::isValid($cookie->getValue(), 'wrong-key')); - line 169: Carbon::setTestNow(now()->addMonths(6)); - line 170: $this->assertFalse(MaintenanceModeBypassCookie::isValid($cookie->getValue(), 'test-key')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Foundation/RoutingServiceProviderTest.php - Test @ line 12: public function testItIncludesMergedDataInServerRequestInterfaceInstancesUsingGetRequests() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 12: public function testItIncludesMergedDataInServerRequestInterfaceInstancesUsingGetRequests() - line 15: return $request->getParsedBody(); - line 18: $response = $this->withoutExceptionHandling()->get('test-route?'.http_build_query([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 29: public function testItWorksNormallyWithoutMergeDataMiddlewareWithEmptyRequests() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 29: public function testItWorksNormallyWithoutMergeDataMiddlewareWithEmptyRequests() - line 32: return $request->getParsedBody(); - line 35: $response = $this->withoutExceptionHandling()->get('test-route', [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 43: public function testItIncludesMergedDataInServerRequestInterfaceInstancesUsingGetJsonRequestsWithContentTypeHeader() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 43: public function testItIncludesMergedDataInServerRequestInterfaceInstancesUsingGetJsonRequestsWithContentTypeHeader() - line 46: return $request->getParsedBody(); - line 47: })->middleware(MergeDataMiddleware::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 65: public function testItIncludesMergedDataInServerRequestInterfaceInstancesUsingGetJsonRequests() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 65: public function testItIncludesMergedDataInServerRequestInterfaceInstancesUsingGetJsonRequests() - line 68: return $request->getParsedBody(); - line 69: })->middleware(MergeDataMiddleware::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 85: public function testItIncludesMergedDataInServerRequestInterfaceInstancesUsingPostRequests() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 85: public function testItIncludesMergedDataInServerRequestInterfaceInstancesUsingPostRequests() - line 88: return $request->getParsedBody(); - line 89: })->middleware(MergeDataMiddleware::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 105: public function testItIncludesMergedDataInServerRequestInterfaceInstancesUsingPostJsonRequests() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 105: public function testItIncludesMergedDataInServerRequestInterfaceInstancesUsingPostJsonRequests() - line 108: return $request->getParsedBody(); - line 109: })->middleware(MergeDataMiddleware::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 126: public function testItHandlesGzippedBodyPayloadsWhenCreatingServerRequestInterfaceInstances() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 126: public function testItHandlesGzippedBodyPayloadsWhenCreatingServerRequestInterfaceInstances() - line 129: return gzdecode((string) $request->getBody()); - line 132: $response = $this->call('POST', 'test-route', content: file_get_contents(__DIR__.'/Fixtures/laravel.txt.gz')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Foundation/Support/Providers/RouteServiceProviderTest.php - Test @ line 41: public function test_it_can_register_multiple_route_service_providers() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 41: public function test_it_can_register_multiple_route_service_providers() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Foundation/Testing/Concerns/InteractsWithAuthenticationTest.php - Test @ line 47: public function testActingAsIsProperlyHandledForSessionAuth() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 47: public function testActingAsIsProperlyHandledForSessionAuth() - line 50: return 'Hello '.$request->user()->username; - line 53: $user = User::where('username', '=', 'taylorotwell')->first(); - line 55: $this->actingAs($user) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 47: public function testActingAsIsProperlyHandledForSessionAuth() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 61: public function testActingAsIsProperlyHandledForAuthViaRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 61: public function testActingAsIsProperlyHandledForAuthViaRequest() - line 64: return 'Hello '.$request->user()->username; - line 68: return $request->user(); - line 71: $user = User::where('username', '=', 'taylorotwell')->first(); - line 73: $this->actingAs($user, 'api') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 61: public function testActingAsIsProperlyHandledForAuthViaRequest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 79: public function testActingAsGuestClearsTheUser() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 79: public function testActingAsGuestClearsTheUser() - line 82: return 'Hello '.$request->user()->username; - line 86: })->name('login'); - line 88: $user = User::where('username', '=', 'taylorotwell')->first(); - line 90: $this->actingAs($user); - line 91: $this->assertAuthenticated(); - line 97: $this->actingAsGuest(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Generators/CacheTableCommandTest.php - Test @ line 9: public function testCreateMakesMigration() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 9: public function testCreateMakesMigration() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/CastMakeCommandTest.php - Test @ line 11: public function testItCanGenerateCastFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 11: public function testItCanGenerateCastFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 25: public function testItCanGenerateInboundCastFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 25: public function testItCanGenerateInboundCastFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/ChannelMakeCommandTest.php - Test @ line 11: public function testItCanGenerateChannelFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 11: public function testItCanGenerateChannelFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/ClassMakeCommandTest.php - Test @ line 12: public function testItCanGenerateClassFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 12: public function testItCanGenerateClassFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 24: public function testItCanGenerateInvokableClassFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 24: public function testItCanGenerateInvokableClassFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/ComponentMakeCommandTest.php - Test @ line 17: public function testItCanGenerateComponentFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 17: public function testItCanGenerateComponentFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 33: public function testItCanGenerateInlineComponentFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 33: public function testItCanGenerateInlineComponentFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 48: public function testItCanGenerateComponentFileWithTest() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 48: public function testItCanGenerateComponentFileWithTest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 58: public function testItCanGenerateComponentFileWithCustomPath() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 58: public function testItCanGenerateComponentFileWithCustomPath() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 74: public function testItCanGenerateNestedComponentFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 74: public function testItCanGenerateNestedComponentFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 90: public function testItCanGenerateNestedComponentFileWithCustomPath() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 90: public function testItCanGenerateNestedComponentFileWithCustomPath() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/ConsoleMakeCommandTest.php - Test @ line 11: public function testItCanGenerateConsoleFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 11: public function testItCanGenerateConsoleFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 24: public function testItCanGenerateConsoleFileWithCommandOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 24: public function testItCanGenerateConsoleFileWithCommandOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/ControllerMakeCommandTest.php - Test @ line 15: public function testItCanGenerateControllerFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 15: public function testItCanGenerateControllerFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 34: public function testItCanGenerateControllerFileWhenBaseControllerExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 34: public function testItCanGenerateControllerFileWhenBaseControllerExists() - line 35: { - line 37: ->assertExitCode(0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function testItCanGenerateControllerFileWhenBaseControllerExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 57: public function testItCanGenerateControllerFileWithInvokableTypeOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 57: public function testItCanGenerateControllerFileWithInvokableTypeOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 70: public function testItCanGenerateControllerFileWithInvokableOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 70: public function testItCanGenerateControllerFileWithInvokableOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 83: public function testItCanGenerateControllerFileWithModelOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 83: public function testItCanGenerateControllerFileWithModelOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 102: public function testItCanGenerateControllerFileWithModelAndParentOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 102: public function testItCanGenerateControllerFileWithModelAndParentOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 123: public function testItCanGenerateControllerFileWithApiOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 123: public function testItCanGenerateControllerFileWithApiOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 144: public function testItCanGenerateControllerFileWithInvokableIgnoresApiOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 144: public function testItCanGenerateControllerFileWithInvokableIgnoresApiOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 164: public function testItCanGenerateControllerFileWithApiAndModelOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 164: public function testItCanGenerateControllerFileWithApiAndModelOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 186: public function testItCanGenerateControllerFileWithTest() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 186: public function testItCanGenerateControllerFileWithTest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/EnumMakeCommandTest.php - Test @ line 16: public function testItCanGenerateEnumFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 16: public function testItCanGenerateEnumFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 27: public function testItCanGenerateEnumFileWithString() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 27: public function testItCanGenerateEnumFileWithString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 38: public function testItCanGenerateEnumFileWithInt() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 38: public function testItCanGenerateEnumFileWithInt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 49: public function testItCanGenerateEnumFileInEnumsFolder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 49: public function testItCanGenerateEnumFileInEnumsFolder() - line 56: $files->ensureDirectoryExists($enumsFolderPath); - line 66: $files->deleteDirectory($enumsFolderPath); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testItCanGenerateEnumFileInEnumsFolder() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 69: public function testItCanGenerateEnumFileInEnumerationsFolder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 69: public function testItCanGenerateEnumFileInEnumerationsFolder() - line 76: $files->ensureDirectoryExists($enumerationsFolderPath); - line 86: $files->deleteDirectory($enumerationsFolderPath); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 69: public function testItCanGenerateEnumFileInEnumerationsFolder() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/EventMakeCommandTest.php - Test @ line 11: public function testItCanGenerateEventFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 11: public function testItCanGenerateEventFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/ExceptionMakeCommandTest.php - Test @ line 11: public function testItCanGenerateExceptionFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 11: public function testItCanGenerateExceptionFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 28: public function testItCanGenerateExceptionFileWithReportOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 28: public function testItCanGenerateExceptionFileWithReportOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 45: public function testItCanGenerateExceptionFileWithRenderOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 45: public function testItCanGenerateExceptionFileWithRenderOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 62: public function testItCanGenerateExceptionFileWithReportAndRenderOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 62: public function testItCanGenerateExceptionFileWithReportAndRenderOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/FactoryMakeCommandTest.php - Test @ line 11: public function testItCanGenerateFactoryFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 11: public function testItCanGenerateFactoryFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/InterfaceMakeCommandTest.php - Test @ line 15: public function testItCanGenerateInterfaceFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 15: public function testItCanGenerateInterfaceFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 26: public function testItCanGenerateInterfaceFileWhenContractsFolderExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 26: public function testItCanGenerateInterfaceFileWhenContractsFolderExists() - line 33: $files->ensureDirectoryExists($interfacesFolderPath); - line 43: $files->deleteDirectory($interfacesFolderPath); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 26: public function testItCanGenerateInterfaceFileWhenContractsFolderExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 46: public function testItCanGenerateInterfaceFileWhenInterfacesFolderExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 46: public function testItCanGenerateInterfaceFileWhenInterfacesFolderExists() - line 53: $files->ensureDirectoryExists($interfacesFolderPath); - line 63: $files->deleteDirectory($interfacesFolderPath); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 46: public function testItCanGenerateInterfaceFileWhenInterfacesFolderExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/JobMakeCommandTest.php - Test @ line 12: public function testItCanGenerateJobFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 12: public function testItCanGenerateJobFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 28: public function testItCanGenerateSyncJobFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 28: public function testItCanGenerateSyncJobFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 48: public function testItCanGenerateJobFileWithTest() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 48: public function testItCanGenerateJobFileWithTest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/JobMiddlewareMakeCommandTest.php - Test @ line 12: public function testItCanGenerateJobFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 12: public function testItCanGenerateJobFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 25: public function testItCanGenerateJobFileWithTest() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 25: public function testItCanGenerateJobFileWithTest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/ListenerMakeCommandTest.php - Test @ line 12: public function testItCanGenerateListenerFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 12: public function testItCanGenerateListenerFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 28: public function testItCanGenerateListenerFileForEvent() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 28: public function testItCanGenerateListenerFileForEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 41: public function testItCanGenerateListenerFileForIlluminateEvent() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 41: public function testItCanGenerateListenerFileForIlluminateEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 54: public function testItCanGenerateQueuedListenerFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 54: public function testItCanGenerateQueuedListenerFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 68: public function testItCanGenerateQueuedListenerFileForEvent() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 68: public function testItCanGenerateQueuedListenerFileForEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 83: public function testItCanGenerateQueuedListenerFileForIlluminateEvent() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 83: public function testItCanGenerateQueuedListenerFileForIlluminateEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 98: public function testItCanGenerateQueuedListenerFileWithTest() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 98: public function testItCanGenerateQueuedListenerFileWithTest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/MailMakeCommandTest.php - Test @ line 14: public function testItCanGenerateMailFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 14: public function testItCanGenerateMailFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 29: public function testItCanGenerateMailFileWithMarkdownOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 29: public function testItCanGenerateMailFileWithMarkdownOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 50: public function testErrorsWillBeDisplayedWhenMarkdownsAlreadyExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 50: public function testErrorsWillBeDisplayedWhenMarkdownsAlreadyExist() - line 54: ->put( - line 57: ); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 50: public function testErrorsWillBeDisplayedWhenMarkdownsAlreadyExist() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 76: public function testItCanGenerateMailFileWithViewOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 76: public function testItCanGenerateMailFileWithViewOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 92: public function testErrorsWillBeDisplayedWhenViewsAlreadyExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 92: public function testErrorsWillBeDisplayedWhenViewsAlreadyExist() - line 96: ->put( - line 99: ); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 92: public function testErrorsWillBeDisplayedWhenViewsAlreadyExist() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 117: public function testItCanGenerateMailFileWithTest() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 117: public function testItCanGenerateMailFileWithTest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 127: public function testItCanGenerateMailWithNoInitialInput() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 127: public function testItCanGenerateMailWithNoInitialInput() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 138: public function testItCanGenerateMailWithViewWithNoInitialInput() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 138: public function testItCanGenerateMailWithViewWithNoInitialInput() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 149: public function testItCanGenerateMailWithMarkdownViewWithNoInitialInput() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 149: public function testItCanGenerateMailWithMarkdownViewWithNoInitialInput() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/MiddlewareMakeCommandTest.php - Test @ line 12: public function testItCanGenerateMiddlewareFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 12: public function testItCanGenerateMiddlewareFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 29: public function testItCanGenerateMiddlewareFile_with_tests() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 29: public function testItCanGenerateMiddlewareFile_with_tests() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/MigrateMakeCommandTest.php - Test @ line 7: public function testItCanGenerateMigrationFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 7: public function testItCanGenerateMigrationFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 19: public function testItCanGenerateMigrationFileWIthTableOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 19: public function testItCanGenerateMigrationFileWIthTableOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 31: public function testItCanGenerateMigrationFileUsingCreateKeyword() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 31: public function testItCanGenerateMigrationFileUsingCreateKeyword() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 44: public function testItCanGenerateMigrationFileUsingCreateOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 44: public function testItCanGenerateMigrationFileUsingCreateOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/ModelMakeCommandTest.php - Test @ line 19: public function testItCanGenerateModelFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 19: public function testItCanGenerateModelFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 44: public function testItCanGenerateModelFileWithPivotOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 44: public function testItCanGenerateModelFileWithPivotOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 56: public function testItCanGenerateModelFileWithMorphPivotOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 56: public function testItCanGenerateModelFileWithMorphPivotOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 68: public function testItCanGenerateModelFileWithControllerOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 68: public function testItCanGenerateModelFileWithControllerOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 100: public function testItCanGenerateModelFileWithFactoryOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 100: public function testItCanGenerateModelFileWithFactoryOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 124: public function testItCanGenerateModelFileWithFactoryOptionForDeepFolder() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 124: public function testItCanGenerateModelFileWithFactoryOptionForDeepFolder() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 148: public function testItGeneratesModelWithHasFactoryTraitWhenUsingAllOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 148: public function testItGeneratesModelWithHasFactoryTraitWhenUsingAllOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 174: public function testItCanGenerateModelFileWithMigrationOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 174: public function testItCanGenerateModelFileWithMigrationOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 197: public function testItCanGenerateModelFileWithSeederption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 197: public function testItCanGenerateModelFileWithSeederption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 213: public function testItCanGenerateNestedModelFileWithControllerOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 213: public function testItCanGenerateNestedModelFileWithControllerOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 234: public function testItCanGenerateModelFileWithTest() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 234: public function testItCanGenerateModelFileWithTest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 251: public function testItAsksForAdditionalComponentsForExistingModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 251: public function testItAsksForAdditionalComponentsForExistingModel() - line 252: { - line 254: ->assertExitCode(0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 251: public function testItAsksForAdditionalComponentsForExistingModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/NotificationMakeCommandTest.php - Test @ line 13: public function testItCanGenerateNotificationFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 13: public function testItCanGenerateNotificationFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 29: public function testItCanGenerateNotificationFileWithMarkdownOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 29: public function testItCanGenerateNotificationFileWithMarkdownOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 45: public function testItCanGenerateNotificationFileWithTest() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 45: public function testItCanGenerateNotificationFileWithTest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 55: public function testItCanGenerateNotificationFileWithNotInitialInput() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 55: public function testItCanGenerateNotificationFileWithNotInitialInput() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 66: public function testItCanGenerateNotificationFileWithMarkdownTemplateWithNotInitialInput() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 66: public function testItCanGenerateNotificationFileWithMarkdownTemplateWithNotInitialInput() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/NotificationTableCommandTest.php - Test @ line 9: public function testCreateMakesMigration() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 9: public function testCreateMakesMigration() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/ObserverMakeCommandTest.php - Test @ line 11: public function testItCanGenerateObserverFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 11: public function testItCanGenerateObserverFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 22: public function testItCanGenerateObserverFileWithModel() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 22: public function testItCanGenerateObserverFileWithModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/PolicyMakeCommandTest.php - Test @ line 11: public function testItCanGeneratePolicyFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 11: public function testItCanGeneratePolicyFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 23: public function testItCanGeneratePolicyFileWithModelOption() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testItCanGeneratePolicyFileWithModelOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/ProviderMakeCommandTest.php - Test @ line 11: public function testItCanGenerateServiceProviderFile() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 11: public function testItCanGenerateServiceProviderFile() - line 12: { - line 24: $this->assertEquals(require $this->app->getBootstrapProvidersPath(), [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Generators/QueueBatchesTableCommandTest.php - Test @ line 9: public function testCreateMakesMigration() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 9: public function testCreateMakesMigration() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/QueueFailedTableCommandTest.php - Test @ line 9: public function testCreateMakesMigration() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 9: public function testCreateMakesMigration() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/QueueTableCommandTest.php - Test @ line 9: public function testCreateMakesMigration() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 9: public function testCreateMakesMigration() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/RequestMakeCommandTest.php - Test @ line 11: public function testItCanGenerateRequestFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 11: public function testItCanGenerateRequestFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/ResourceMakeCommandTest.php - Test @ line 12: public function testItCanGenerateResourceFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 12: public function testItCanGenerateResourceFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 24: public function testItCanGenerateResourceCollectionFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 24: public function testItCanGenerateResourceCollectionFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/RuleMakeCommandTest.php - Test @ line 11: public function testItCanGenerateRuleFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 11: public function testItCanGenerateRuleFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 23: public function testItCanGenerateInvokableRuleFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testItCanGenerateInvokableRuleFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 36: public function testItCanGenerateImplicitRuleFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 36: public function testItCanGenerateImplicitRuleFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/SeederMakeCommandTest.php - Test @ line 11: public function testItCanGenerateSeederFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 11: public function testItCanGenerateSeederFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/SessionTableCommandTest.php - Test @ line 9: public function testCreateMakesMigration() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 9: public function testCreateMakesMigration() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/TestMakeCommandTest.php - Test @ line 12: public function testItCanGenerateFeatureTest() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 12: public function testItCanGenerateFeatureTest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 26: public function testItCanGenerateUnitTest() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 26: public function testItCanGenerateUnitTest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 38: public function testItCanGenerateFeatureTestUsingPest() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 38: public function testItCanGenerateFeatureTestUsingPest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 50: public function testItCanGenerateUnitTestUsingPest() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 50: public function testItCanGenerateUnitTestUsingPest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/TraitMakeCommandTest.php - Test @ line 9: public function testItCanGenerateTraitFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 9: public function testItCanGenerateTraitFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 20: public function testItCanGenerateTraitFileWhenTraitsFolderExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 20: public function testItCanGenerateTraitFileWhenTraitsFolderExists() - line 27: $files->ensureDirectoryExists($traitsFolderPath); - line 37: $files->deleteDirectory($traitsFolderPath); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 20: public function testItCanGenerateTraitFileWhenTraitsFolderExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 40: public function testItCanGenerateTraitFileWhenConcernsFolderExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 40: public function testItCanGenerateTraitFileWhenConcernsFolderExists() - line 47: $files->ensureDirectoryExists($traitsFolderPath); - line 57: $files->deleteDirectory($traitsFolderPath); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 40: public function testItCanGenerateTraitFileWhenConcernsFolderExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Generators/ViewMakeCommandTest.php - Test @ line 12: public function testItCanGenerateViewFile() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 12: public function testItCanGenerateViewFile() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 21: public function testItCanGenerateViewFileWithTest() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 21: public function testItCanGenerateViewFileWithTest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Http/HttpClientTest.php - Test @ line 92: public function testCanSetRequestAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 92: public function testCanSetRequestAttributes() - line 95: '*' => fn (Request $request) => match ($request->attributes()['name'] ?? null) { - line 107: $this->assertEquals('first response', $response1->body()); - line 108: $this->assertEquals('second response', $response2->body()); - line 109: $this->assertEquals('unnamed', $response3->body()); - line 110: $this->assertEquals('unnamed', $response4->body()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Http/JsonResponseTest.php - Test @ line 13: public function testResponseWithInvalidJsonThrowsException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 13: public function testResponseWithInvalidJsonThrowsException() - line 15: $this->expectException('InvalidArgumentException'); - line 16: $this->expectExceptionMessage('Malformed UTF-8 characters, possibly incorrectly encoded'); - line 28: $this->withoutExceptionHandling(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 13: public function testResponseWithInvalidJsonThrowsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 33: public function testResponseSetDataPassesWithPriorJsonErrors() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 33: public function testResponseSetDataPassesWithPriorJsonErrors() - line 40: $response->setData(new class implements Jsonable - line 48: $this->assertJson($response->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Http/Middleware/HandleCorsTest.php - Test @ line 38: public function testShouldReturnHeaderAssessControlAllowOriginWhenDontHaveHttpOriginOnRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 38: public function testShouldReturnHeaderAssessControlAllowOriginWhenDontHaveHttpOriginOnRequest() - line 40: $crawler = $this->call('OPTIONS', 'api/ping', [], [], [], [ - line 45: $this->assertEquals(204, $crawler->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 48: public function testOptionsAllowOriginAllowed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 48: public function testOptionsAllowOriginAllowed() - line 50: $crawler = $this->call('OPTIONS', 'api/ping', [], [], [], [ - line 56: $this->assertEquals(204, $crawler->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 59: public function testAllowAllOrigins() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 59: public function testAllowAllOrigins() - line 63: $crawler = $this->call('OPTIONS', 'api/ping', [], [], [], [ - line 69: $this->assertEquals(204, $crawler->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 72: public function testAllowAllOriginsWildcard() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 72: public function testAllowAllOriginsWildcard() - line 76: $crawler = $this->call('OPTIONS', 'api/ping', [], [], [], [ - line 82: $this->assertEquals(204, $crawler->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 85: public function testOriginsWildcardIncludesNestedSubdomains() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 85: public function testOriginsWildcardIncludesNestedSubdomains() - line 89: $crawler = $this->call('OPTIONS', 'api/ping', [], [], [], [ - line 95: $this->assertEquals(204, $crawler->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 110: public function testOptionsAllowOriginAllowedNonExistingRoute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 110: public function testOptionsAllowOriginAllowedNonExistingRoute() - line 112: $crawler = $this->call('OPTIONS', 'api/pang', [], [], [], [ - line 118: $this->assertEquals(204, $crawler->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 131: public function testAllowMethodAllowed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 131: public function testAllowMethodAllowed() - line 133: $crawler = $this->call('POST', 'web/ping', [], [], [], [ - line 138: $this->assertEquals(200, $crawler->getStatusCode()); - line 140: $this->assertSame('PONG', $crawler->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 143: public function testAllowMethodNotAllowed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 143: public function testAllowMethodNotAllowed() - line 145: $crawler = $this->call('POST', 'web/ping', [], [], [], [ - line 150: $this->assertEquals(200, $crawler->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 153: public function testAllowHeaderAllowedOptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 153: public function testAllowHeaderAllowedOptions() - line 155: $crawler = $this->call('OPTIONS', 'api/ping', [], [], [], [ - line 161: $this->assertEquals(204, $crawler->getStatusCode()); - line 163: $this->assertSame('', $crawler->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 166: public function testAllowHeaderAllowedWildcardOptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 166: public function testAllowHeaderAllowedWildcardOptions() - line 170: $crawler = $this->call('OPTIONS', 'api/ping', [], [], [], [ - line 176: $this->assertEquals(204, $crawler->getStatusCode()); - line 178: $this->assertSame('', $crawler->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 191: public function testAllowHeaderAllowed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 191: public function testAllowHeaderAllowed() - line 193: $crawler = $this->call('POST', 'web/ping', [], [], [], [ - line 198: $this->assertEquals(200, $crawler->getStatusCode()); - line 200: $this->assertSame('PONG', $crawler->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 203: public function testAllowHeaderAllowedWildcard() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 203: public function testAllowHeaderAllowedWildcard() - line 207: $crawler = $this->call('POST', 'web/ping', [], [], [], [ - line 212: $this->assertEquals(200, $crawler->getStatusCode()); - line 214: $this->assertSame('PONG', $crawler->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 217: public function testAllowHeaderNotAllowed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 217: public function testAllowHeaderNotAllowed() - line 219: $crawler = $this->call('POST', 'web/ping', [], [], [], [ - line 224: $this->assertEquals(200, $crawler->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 227: public function testError() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 227: public function testError() - line 229: $crawler = $this->call('POST', 'api/error', [], [], [], [ - line 235: $this->assertEquals(500, $crawler->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 238: public function testValidationException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 238: public function testValidationException() - line 240: $crawler = $this->call('POST', 'api/validation', [], [], [], [ - line 245: $this->assertEquals(302, $crawler->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Http/Middleware/VerifyCsrfTokenExceptTest.php - Test @ line 23: public function testItCanExceptPaths() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 23: public function testItCanExceptPaths() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testItCanExceptPaths() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 30: public function testPathsCanBeGloballyIgnored() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 30: public function testPathsCanBeGloballyIgnored() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 36: public function testItCanExceptWildcardPaths() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 36: public function testItCanExceptWildcardPaths() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 36: public function testItCanExceptWildcardPaths() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 42: public function testItCanExceptFullUrlPaths() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 42: public function testItCanExceptFullUrlPaths() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 42: public function testItCanExceptFullUrlPaths() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 51: public function testItCanExceptFullUrlWildcardPaths() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 51: public function testItCanExceptFullUrlWildcardPaths() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Http/RequestDurationThresholdTest.php - Test @ line 16: public function testItCanHandleExceedingRequestDuration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 16: public function testItCanHandleExceedingRequestDuration() - line 19: $request = Request::create('http://localhost/test-route'); - line 23: $kernel->whenRequestLifecycleIsLongerThan(CarbonInterval::seconds(1), function () use (&$called) { - line 27: Carbon::setTestNow(now()); - line 30: Carbon::setTestNow(Carbon::now()->addSeconds(1)->addMilliseconds(1)); - line 31: $kernel->terminate($request, $response); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 16: public function testItCanHandleExceedingRequestDuration() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 36: public function testItDoesntCallWhenExactlyThresholdDuration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 36: public function testItDoesntCallWhenExactlyThresholdDuration() - line 39: $request = Request::create('http://localhost/test-route'); - line 43: $kernel->whenRequestLifecycleIsLongerThan(CarbonInterval::seconds(1), function () use (&$called) { - line 47: Carbon::setTestNow(now()); - line 50: Carbon::setTestNow(Carbon::now()->addSeconds(1)); - line 51: $kernel->terminate($request, $response); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 36: public function testItDoesntCallWhenExactlyThresholdDuration() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 56: public function testItProvidesRequestToHandler() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 56: public function testItProvidesRequestToHandler() - line 59: $request = Request::create('http://localhost/test-route'); - line 63: $kernel->whenRequestLifecycleIsLongerThan(CarbonInterval::seconds(1), function ($startedAt, $request) use (&$url) { - line 67: Carbon::setTestNow(now()); - line 70: Carbon::setTestNow(Carbon::now()->addSeconds(2)); - line 71: $kernel->terminate($request, $response); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 56: public function testItProvidesRequestToHandler() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 76: public function testUsesTheConfiguredDateTimezone() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 76: public function testUsesTheConfiguredDateTimezone() - line 82: $kernel->whenRequestLifecycleIsLongerThan(CarbonInterval::seconds(1), function ($started) use (&$startedAt) { - line 87: Carbon::setTestNow(now()->startOfDay()); - line 89: Carbon::setTestNow(now()->addMinute()); - line 90: $kernel->terminate($request, new Response); - line 92: $this->assertSame('Australia/Melbourne', $startedAt->timezone->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 78: Config::set('app.timezone', 'UTC'); - line 86: Config::set('app.timezone', 'Australia/Melbourne'); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - Test @ line 95: public function testItCanExceedThresholdWhenSpecifyingDurationAsMilliseconds() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 95: public function testItCanExceedThresholdWhenSpecifyingDurationAsMilliseconds() - line 98: $request = Request::create('http://localhost/test-route'); - line 102: $kernel->whenRequestLifecycleIsLongerThan(1000, function () use (&$called) { - line 106: Carbon::setTestNow(now()); - line 109: Carbon::setTestNow(Carbon::now()->addSeconds(1)->addMilliseconds(1)); - line 110: $kernel->terminate($request, $response); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 95: public function testItCanExceedThresholdWhenSpecifyingDurationAsMilliseconds() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 115: public function testItCanStayUnderThresholdWhenSpecifyingDurationAsMilliseconds() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 115: public function testItCanStayUnderThresholdWhenSpecifyingDurationAsMilliseconds() - line 118: $request = Request::create('http://localhost/test-route'); - line 122: $kernel->whenRequestLifecycleIsLongerThan(1000, function () use (&$called) { - line 126: Carbon::setTestNow(now()); - line 129: Carbon::setTestNow(Carbon::now()->addSeconds(1)); - line 130: $kernel->terminate($request, $response); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 115: public function testItCanStayUnderThresholdWhenSpecifyingDurationAsMilliseconds() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 135: public function testItCanExceedThresholdWhenSpecifyingDurationAsDateTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 135: public function testItCanExceedThresholdWhenSpecifyingDurationAsDateTime() - line 138: $request = Request::create('http://localhost/test-route'); - line 142: $kernel->whenRequestLifecycleIsLongerThan(now()->addSeconds(1), function () use (&$called) { - line 146: Carbon::setTestNow(now()); - line 149: Carbon::setTestNow(Carbon::now()->addSeconds(1)->addMilliseconds(1)); - line 150: $kernel->terminate($request, $response); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 135: public function testItCanExceedThresholdWhenSpecifyingDurationAsDateTime() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 155: public function testItCanStayUnderThresholdWhenSpecifyingDurationAsDateTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 155: public function testItCanStayUnderThresholdWhenSpecifyingDurationAsDateTime() - line 158: $request = Request::create('http://localhost/test-route'); - line 162: $kernel->whenRequestLifecycleIsLongerThan(now()->addSeconds(1), function () use (&$called) { - line 166: Carbon::setTestNow(now()); - line 169: Carbon::setTestNow(Carbon::now()->addSeconds(1)); - line 170: $kernel->terminate($request, $response); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 155: public function testItCanStayUnderThresholdWhenSpecifyingDurationAsDateTime() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 175: public function testItClearsStartTimeAfterHandlingRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 175: public function testItClearsStartTimeAfterHandlingRequest() - line 179: $request = Request::create('http://localhost/test-route'); - line 182: Carbon::setTestNow(now()); - line 184: $this->assertTrue(Carbon::now()->eq($kernel->requestStartedAt())); - line 186: $kernel->terminate($request, $response); - line 187: $this->assertNull($kernel->requestStartedAt()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 190: public function testItHandlesCallingTerminateWithoutHandle() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 190: public function testItHandlesCallingTerminateWithoutHandle() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Http/Resources/JsonApi/JsonApiCollectionTest.php - Test @ line 12: public function testItCanGenerateJsonApiResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 12: public function testItCanGenerateJsonApiResponse() - line 14: $users = User::factory()->times(5)->create(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 31: public function testItCanGenerateJsonApiResponseWithSparseFieldsets() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 31: public function testItCanGenerateJsonApiResponseWithSparseFieldsets() - line 33: $users = User::factory()->times(5)->create(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 49: public function testItCanGenerateJsonApiResponseWithEmptyRelationshipsUsingSparseIncluded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 49: public function testItCanGenerateJsonApiResponseWithEmptyRelationshipsUsingSparseIncluded() - line 51: $users = User::factory()->times(5)->create(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 73: public function testItCanGenerateJsonApiResponseWithRelationshipsUsingSparseIncluded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 73: public function testItCanGenerateJsonApiResponseWithRelationshipsUsingSparseIncluded() - line 75: $now = $this->freezeSecond(); - line 77: $users = User::factory()->times(4)->create(); - line 78: $user = User::factory()->create(); - line 80: $profile = Profile::factory()->create([ - line 86: $team = Team::factory()->create([ - line 90: $user->teams()->attach($team, ['role' => 'Admin']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Http/Resources/JsonApi/JsonApiRequestTest.php - Test @ line 10: public function testItCanResolveSparseFields() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 10: public function testItCanResolveSparseFields() - line 12: $request = JsonApiRequest::create(uri: '/?'.http_build_query([ - line 19: $this->assertSame(['name', 'email'], $request->sparseFields('users')); - line 20: $this->assertSame(['name'], $request->sparseFields('teams')); - line 21: $this->assertSame([], $request->sparseFields('posts')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 24: public function testItCanResolveEmptySparseFields() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 24: public function testItCanResolveEmptySparseFields() - line 26: $request = JsonApiRequest::create(uri: '/'); - line 28: $this->assertSame([], $request->sparseFields('users')); - line 29: $this->assertSame([], $request->sparseFields('teams')); - line 30: $this->assertSame([], $request->sparseFields('posts')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 33: public function testItCanResolveSparseIncluded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 33: public function testItCanResolveSparseIncluded() - line 35: $request = JsonApiRequest::create(uri: '/?'.http_build_query([ - line 39: $this->assertSame(['teams', 'posts', 'profile'], $request->sparseIncluded()); - line 40: $this->assertSame([], $request->sparseIncluded('teams')); - line 41: $this->assertSame(['author', 'comments'], $request->sparseIncluded('posts')); - line 42: $this->assertSame(['user.profile'], $request->sparseIncluded('profile')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 45: public function testItCanREsolveSparseIncludedWithMaxRelationshipNesting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 45: public function testItCanREsolveSparseIncludedWithMaxRelationshipNesting() - line 47: JsonApiResource::maxRelationshipDepth(2); - line 53: $this->assertSame(['teams', 'posts', 'profile'], $request->sparseIncluded()); - line 54: $this->assertSame([], $request->sparseIncluded('teams')); - line 55: $this->assertSame(['author', 'comments'], $request->sparseIncluded('posts')); - line 56: $this->assertSame(['user'], $request->sparseIncluded('profile')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 59: public function testItCanResolveEmptySparseIncluded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 59: public function testItCanResolveEmptySparseIncluded() - line 61: $request = JsonApiRequest::create(uri: '/'); - line 63: $this->assertSame([], $request->sparseIncluded()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Http/Resources/JsonApi/JsonApiResourceTest.php - Test @ line 14: public function testItCanGenerateJsonApiResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 14: public function testItCanGenerateJsonApiResponse() - line 16: $user = User::factory()->create(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 33: public function testItCanGenerateJsonApiResponseWithSparseFieldsets() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 33: public function testItCanGenerateJsonApiResponseWithSparseFieldsets() - line 35: $user = User::factory()->create(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 51: public function testItCanGenerateJsonApiResponseWithEmptyRelationshipsUsingSparseIncluded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 51: public function testItCanGenerateJsonApiResponseWithEmptyRelationshipsUsingSparseIncluded() - line 53: $user = User::factory()->create(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 75: public function testItCanGenerateJsonApiResponseWithRelationshipsUsingSparseIncluded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 75: public function testItCanGenerateJsonApiResponseWithRelationshipsUsingSparseIncluded() - line 77: $now = $this->freezeSecond(); - line 79: $user = User::factory()->create(); - line 81: $profile = Profile::factory()->create([ - line 87: $team = Team::factory()->create([ - line 91: $user->teams()->attach($team, ['role' => 'Admin']); - line 92: $user->teams()->attach($team, ['role' => 'Member']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 192: public function testItCanGenerateJsonApiResponseWithRelationshipsUsingSparseIncludedAndSparseFieldsets() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 192: public function testItCanGenerateJsonApiResponseWithRelationshipsUsingSparseIncludedAndSparseFieldsets() - line 194: $now = $this->freezeSecond(); - line 196: $user = User::factory()->create(); - line 198: [$post1, $post2] = Post::factory()->times(2)->create([ - line 200: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 273: public function testItCanResolveRelationshipWithCustomNameAndResourceClass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 273: public function testItCanResolveRelationshipWithCustomNameAndResourceClass() - line 275: $now = $this->freezeSecond(); - line 277: $user = User::factory()->create(); - line 279: $profile = Profile::factory()->create([ - line 285: [$post1, $post2] = Post::factory()->times(2)->create([ - line 289: $comment = Comment::factory()->create([ - line 292: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 327: public function testItCanResolveRelationshipWithNestedRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 327: public function testItCanResolveRelationshipWithNestedRelationship() - line 329: $now = $this->freezeSecond(); - line 331: $user = User::factory()->create(); - line 333: $profile = Profile::factory()->create([ - line 339: [$post1, $post2] = Post::factory()->times(2)->create([ - line 343: $comment = Comment::factory()->create([ - line 346: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 409: public function testItCanResolveRelationshipWithRecursiveNestedRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 409: public function testItCanResolveRelationshipWithRecursiveNestedRelationship() - line 411: $now = $this->freezeSecond(); - line 413: $user = User::factory()->create(); - line 415: $profile = Profile::factory()->create([ - line 419: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 469: public function testItCanResolveRelationshipWithRecursiveNestedRelationshipLimitedToDepthConfiguration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 469: public function testItCanResolveRelationshipWithRecursiveNestedRelationshipLimitedToDepthConfiguration() - line 471: JsonApiResource::maxRelationshipDepth(2); - line 473: $now = $this->freezeSecond(); - line 475: $user = User::factory()->create(); - line 477: $profile = Profile::factory()->create([ - line 481: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 526: public function testItCanResolveRelationshipWithoutRedundantIncludedRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 526: public function testItCanResolveRelationshipWithoutRedundantIncludedRelationship() - line 528: $now = $this->freezeSecond(); - line 530: $user = User::factory()->create(); - line 532: [$post1, $post2] = Post::factory()->times(2)->create([ - line 534: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Http/ResourceTest.php - Test @ line 88: public function testAnObjectsMayBeConvertedToJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 88: public function testAnObjectsMayBeConvertedToJson() - line 91: return ObjectResource::make( - line 96: $this->withoutExceptionHandling() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 88: public function testAnObjectsMayBeConvertedToJson() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 107: public function testArraysWithObjectsMayBeConvertedToJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 107: public function testArraysWithObjectsMayBeConvertedToJson() - line 115: return ObjectResource::collection($objects); - line 118: $this->withoutExceptionHandling() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 107: public function testArraysWithObjectsMayBeConvertedToJson() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 274: public function testResourcesMayHaveOptionalAppendedAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 274: public function testResourcesMayHaveOptionalAppendedAttributes() - line 281: $post->append('is_published'); - line 286: $response = $this->withoutExceptionHandling()->get( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 479: public function testResourcesMayLoadOptionalRelationships() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 479: public function testResourcesMayLoadOptionalRelationships() - line 487: $post->setRelation('author', new Author(['name' => 'jrrmartin'])); - line 492: $response = $this->withoutExceptionHandling()->get( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 564: public function testResourcesMayShowsNullForLoadedRelationshipWithValueNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 564: public function testResourcesMayShowsNullForLoadedRelationshipWithValueNull() - line 572: $post->setRelation('author', null); - line 577: $response = $this->withoutExceptionHandling()->get( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 615: public function testResourcesMayHaveOptionalPivotRelationships() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 615: public function testResourcesMayHaveOptionalPivotRelationships() - line 619: $post->setRelation('pivot', new Subscription); - line 624: $response = $this->withoutExceptionHandling()->get( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 640: public function testResourceDoesNotThrowErrorWhenUsingEloquentStrictModeAndCheckingOptionalPivotRelationship() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 640: public function testResourceDoesNotThrowErrorWhenUsingEloquentStrictModeAndCheckingOptionalPivotRelationship() - line 642: Model::shouldBeStrict(true); - line 649: })->bindTo($post)(); - line 654: $response = $this->withoutExceptionHandling()->get( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 690: public function testWhenLoadedUsingNamedDefaultParameterOnLoadedRelation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 690: public function testWhenLoadedUsingNamedDefaultParameterOnLoadedRelation() - line 694: $post->setRelation('author', new Author(['name' => 'jrrmartin'])); - line 699: $response = $this->withoutExceptionHandling()->get( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 715: public function testResourcesMayHaveOptionalPivotRelationshipsWithCustomAccessor() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 715: public function testResourcesMayHaveOptionalPivotRelationshipsWithCustomAccessor() - line 719: $post->setRelation('accessor', new Subscription); - line 724: $response = $this->withoutExceptionHandling()->get( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 740: public function testResourceIsUrlRoutable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 740: public function testResourceIsUrlRoutable() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 740: public function testResourceIsUrlRoutable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 750: public function testNamedRoutesAreUrlRoutable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 750: public function testNamedRoutesAreUrlRoutable() - line 759: })->name('post.show'); - line 761: $response = $this->withoutExceptionHandling()->get('/post/1'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 827: public function testResourcesMayCustomizeExtraDataWhenBuildingResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 827: public function testResourcesMayCustomizeExtraDataWhenBuildingResponse() - line 833: ])))->additional(['baz' => 'qux']); - line 836: $response = $this->withoutExceptionHandling()->get( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 850: public function testResourcesMayCustomizeJsonOptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 850: public function testResourcesMayCustomizeJsonOptions() - line 860: $response = $this->withoutExceptionHandling()->get( - line 866: $response->baseResponse->content() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 870: public function testCollectionResourcesMayCustomizeJsonOptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 870: public function testCollectionResourcesMayCustomizeJsonOptions() - line 873: return PostResourceWithJsonOptions::collection(collect([ - line 878: $response = $this->withoutExceptionHandling()->get( - line 884: $response->baseResponse->content() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 888: public function testResourcesMayCustomizeJsonOptionsOnPaginatedResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 888: public function testResourcesMayCustomizeJsonOptionsOnPaginatedResponse() - line 896: return PostResourceWithJsonOptions::collection($paginator); - line 899: $response = $this->withoutExceptionHandling()->get( - line 905: $response->baseResponse->content() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 909: public function testResourcesMayCustomizeJsonOptionsWithTypeHintedConstructor() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 909: public function testResourcesMayCustomizeJsonOptionsWithTypeHintedConstructor() - line 919: $response = $this->withoutExceptionHandling()->get( - line 925: $response->baseResponse->content() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 929: public function testCustomHeadersMayBeSetOnResponses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 929: public function testCustomHeadersMayBeSetOnResponses() - line 935: ])))->response()->setStatusCode(202)->header('X-Custom', 'True'); - line 938: $response = $this->withoutExceptionHandling()->get( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1033: public function testPaginatorResourceCanPreserveQueryParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1033: public function testPaginatorResourceCanPreserveQueryParameters() - line 1041: return PostCollectionResource::make($paginator)->preserveQuery(); - line 1044: $response = $this->withoutExceptionHandling()->get( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1075: public function testPaginatorResourceCanReceiveQueryParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1075: public function testPaginatorResourceCanReceiveQueryParameters() - line 1083: return PostCollectionResource::make($paginator)->withQuery(['author' => 'Taylor']); - line 1086: $response = $this->withoutExceptionHandling()->get( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1117: public function testCursorPaginatorReceiveLinks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1117: public function testCursorPaginatorReceiveLinks() - line 1128: $response = $this->withoutExceptionHandling()->get( - line 1145: 'next' => '/?cursor='.(new Cursor(['id' => 5]))->encode(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1156: public function testCursorPaginatorResourceCanPreserveQueryParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1156: public function testCursorPaginatorResourceCanPreserveQueryParameters() - line 1164: return PostCollectionResource::make($paginator)->preserveQuery(); - line 1167: $response = $this->withoutExceptionHandling()->get( - line 1184: 'next' => '/?framework=laravel&author=Otwell&cursor='.(new Cursor(['id' => 5]))->encode(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1193: public function testCursorPaginatorResourceCanReceiveQueryParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1193: public function testCursorPaginatorResourceCanReceiveQueryParameters() - line 1201: return PostCollectionResource::make($paginator)->withQuery(['author' => 'Taylor']); - line 1204: $response = $this->withoutExceptionHandling()->get( - line 1221: 'next' => '/?author=Taylor&cursor='.(new Cursor(['id' => 5]))->encode(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1294: public function testOriginalOnResponseIsModelWhenSingleResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1294: public function testOriginalOnResponseIsModelWhenSingleResource() - line 1300: $response = $this->withoutExceptionHandling()->get( - line 1303: $this->assertTrue($createdPost->is($response->getOriginalContent())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1306: public function testOriginalOnResponseIsCollectionOfModelWhenCollectionResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1306: public function testOriginalOnResponseIsCollectionOfModelWhenCollectionResource() - line 1315: $response = $this->withoutExceptionHandling()->get( - line 1318: $createdPosts->each(function ($post) use ($response) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1354: public function testResourceWithPaginationInformation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1354: public function testResourceWithPaginationInformation() - line 1361: return PostResourceWithAnonymousResourceCollectionWithPaginationInformation::collection(new LengthAwarePaginator($posts, 10, 1, 1)); - line 1364: $response = $this->withoutExceptionHandling()->get( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1385: public function testCollectionResourcesAreCountable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1385: public function testCollectionResourcesAreCountable() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1385: public function testCollectionResourcesAreCountable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1398: public function testCollectionResourcesMustCollectResources() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1398: public function testCollectionResourcesMustCollectResources() - line 1405: $this->expectException(LogicException::class); - line 1406: $this->expectExceptionMessage('must collect'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1398: public function testCollectionResourcesMustCollectResources() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1449: public function testKeysArePreservedInAnAnonymousCollectionIfTheResourceIsFlaggedToPreserveKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1449: public function testKeysArePreservedInAnAnonymousCollectionIfTheResourceIsFlaggedToPreserveKeys() - line 1451: $data = Collection::make([ - line 1473: $response = $this->withoutExceptionHandling()->get( - line 1479: $response->assertJson(['data' => $data->toArray()]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1482: public function testLeadingMergeKeyedValueIsMergedCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1482: public function testLeadingMergeKeyedValueIsMergedCorrectly() - line 1490: return $this->filter([ - line 1496: $results = $filter->work(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1503: public function testPostTooLargeException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1503: public function testPostTooLargeException() - line 1506: $post = new ValidatePostSize; - line 1509: $this->expectException(PostTooLargeException::class); - line 1510: $this->expectExceptionMessage('The POST data is too large.'); - line 1513: $post = new ValidatePostSize; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1503: public function testPostTooLargeException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1517: public function testLeadingMergeKeyedValueIsMergedCorrectlyWhenFirstValueIsMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1517: public function testLeadingMergeKeyedValueIsMergedCorrectlyWhenFirstValueIsMissing() - line 1525: return $this->filter([ - line 1535: $results = $filter->work(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1542: public function testLeadingMergeValueIsMergedCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1542: public function testLeadingMergeValueIsMergedCorrectly() - line 1550: return $this->filter([ - line 1561: $results = $filter->work(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1568: public function testMergeValuesMayBeMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1568: public function testMergeValuesMayBeMissing() - line 1576: return $this->filter([ - line 1587: $results = $filter->work(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1594: public function testInitialMergeValuesMayBeMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1594: public function testInitialMergeValuesMayBeMissing() - line 1602: return $this->filter([ - line 1613: $results = $filter->work(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1620: public function testMergeValueCanMergeJsonSerializable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1620: public function testMergeValueCanMergeJsonSerializable() - line 1633: return $this->filter([ - line 1641: $results = $filter->work(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1652: public function testMergeValueCanMergeCollectionOfJsonSerializable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1652: public function testMergeValueCanMergeCollectionOfJsonSerializable() - line 1665: return $this->filter([ - line 1671: $results = $filter->work(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1679: public function testAllMergeValuesMayBeMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1679: public function testAllMergeValuesMayBeMissing() - line 1687: return $this->filter([ - line 1698: $results = $filter->work(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1705: public function testMergeValuesMayFallbackToDefaults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1705: public function testMergeValuesMayFallbackToDefaults() - line 1713: return $this->filter([ - line 1721: $results = $filter->work(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1728: public function testNestedMerges() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1728: public function testNestedMerges() - line 1736: return $this->filter([ - line 1749: $results = $filter->work(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1764: public function testTheResourceCanBeAnArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1764: public function testTheResourceCanBeAnArray() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1764: public function testTheResourceCanBeAnArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1777: public function testItWillReturnAsAnArrayWhenStringKeysAreStripped() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1777: public function testItWillReturnAsAnArrayWhenStringKeysAreStripped() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1777: public function testItWillReturnAsAnArrayWhenStringKeysAreStripped() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1798: public function testItStripsNumericKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1798: public function testItStripsNumericKeys() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1798: public function testItStripsNumericKeys() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1817: public function testItWontKeysIfAnyOfThemAreStrings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1817: public function testItWontKeysIfAnyOfThemAreStrings() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1817: public function testItWontKeysIfAnyOfThemAreStrings() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1832: public function testItThrowsNoErrorInStrictModeWhenResourceIsPaginated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1832: public function testItThrowsNoErrorInStrictModeWhenResourceIsPaginated() - line 1834: $originalMode = Model::preventsAccessingMissingAttributes(); - line 1846: $response = $this->withoutExceptionHandling()->get( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1856: public function testResourceSkipsWrappingWhenDataKeyExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1856: public function testResourceSkipsWrappingWhenDataKeyExists() - line 1863: $response = $resource->toResponse(request()); - line 1864: $content = json_decode($response->getContent(), true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1856: public function testResourceSkipsWrappingWhenDataKeyExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1873: public function testResourceWrapsWhenDataKeyDoesNotExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1873: public function testResourceWrapsWhenDataKeyDoesNotExist() - line 1880: $response = $resource->toResponse(request()); - line 1881: $content = json_decode($response->getContent(), true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1873: public function testResourceWrapsWhenDataKeyDoesNotExist() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1891: public function testResourceForceWrapOverridesDataKeyCheck() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1891: public function testResourceForceWrapOverridesDataKeyCheck() - line 1899: $response = $resource->toResponse(request()); - line 1900: $content = json_decode($response->getContent(), true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1891: public function testResourceForceWrapOverridesDataKeyCheck() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Http/ResponseTest.php - Test @ line 12: public function testResponseWithInvalidJsonThrowsException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 12: public function testResponseWithInvalidJsonThrowsException() - line 14: $this->expectException('InvalidArgumentException'); - line 15: $this->expectExceptionMessage('Malformed UTF-8 characters, possibly incorrectly encoded'); - line 18: return (new Response())->setContent(new class implements JsonSerializable - line 27: $this->withoutExceptionHandling(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 12: public function testResponseWithInvalidJsonThrowsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Http/ThrottleRequestsTest.php - Test @ line 32: public function testLockOpensImmediatelyAfterDecay() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 32: public function testLockOpensImmediatelyAfterDecay() - line 38: })->middleware(ThrottleRequests::class.':2,1'); - line 40: $response = $this->withoutExceptionHandling()->get('/'); - line 41: $this->assertSame('yes', $response->getContent()); - line 45: $response = $this->withoutExceptionHandling()->get('/'); - line 46: $this->assertSame('yes', $response->getContent()); - line 53: $this->withoutExceptionHandling()->get('/'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 64: public function testLimitingUsingNamedLimiter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 64: public function testLimitingUsingNamedLimiter() - line 66: $rateLimiter = Container::getInstance()->make(RateLimiter::class); - line 68: $rateLimiter->for('test', function ($request) { - line 76: })->middleware(ThrottleRequests::class.':test'); - line 78: $response = $this->withoutExceptionHandling()->get('/'); - line 79: $this->assertSame('yes', $response->getContent()); - line 83: $response = $this->withoutExceptionHandling()->get('/'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 133: public function testItCanThrottlePerMinute(string $middleware) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 133: public function testItCanThrottlePerMinute(string $middleware) - line 135: $rateLimiter = Container::getInstance()->make(RateLimiter::class); - line 136: $rateLimiter->for('test', fn () => Limit::perMinute(3)); - line 137: Route::get('/', fn () => 'ok')->middleware($middleware); - line 145: 0 => $this->assertSame('2000-01-01 00:00:00.000', now()->toDateTimeString('m')), - line 148: }; - line 156: Carbon::setTestNow(now()->addSecond()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 191: public function testItCanThrottlePerSecond() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 191: public function testItCanThrottlePerSecond() - line 193: $rateLimiter = Container::getInstance()->make(RateLimiter::class); - line 194: $rateLimiter->for('test', fn () => Limit::perSecond(3)); - line 195: Route::get('/', fn () => 'ok')->middleware(ThrottleRequests::using('test')); - line 203: 0 => $this->assertSame('2000-01-01 00:00:00.000', now()->toDateTimeString('m')), - line 206: }; - line 214: Carbon::setTestNow(now()->addMilliseconds(100)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 248: public function testItCanCombineRateLimitsWithoutSpecifyingUniqueKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 17. Evidence: - line 248: public function testItCanCombineRateLimitsWithoutSpecifyingUniqueKeys() - line 250: $rateLimiter = Container::getInstance()->make(RateLimiter::class); - line 251: $rateLimiter->for('test', fn () => [ - line 255: Route::get('/', fn () => 'ok')->middleware(ThrottleRequests::using('test')); - line 263: 0 => $this->assertSame('2000-01-01 00:00:00.000', now()->toDateTimeString('m')), - line 266: }; - line 272: Carbon::setTestNow(now()->addMilliseconds(100)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 327: public function testItFailsIfNamedLimiterDoesNotExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 327: public function testItFailsIfNamedLimiterDoesNotExist() - line 329: $this->expectException(MissingRateLimiterException::class); - line 330: $this->expectExceptionMessage('Rate limiter [test] is not defined.'); - line 332: Route::get('/', fn () => 'ok')->middleware(ThrottleRequests::using('test')); - line 334: $this->withoutExceptionHandling()->get('/'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 327: public function testItFailsIfNamedLimiterDoesNotExist() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 337: public function testItFailsIfNamedLimiterDoesNotExistAndAuthenticatedUserDoesNotHaveFallbackProperty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 337: public function testItFailsIfNamedLimiterDoesNotExistAndAuthenticatedUserDoesNotHaveFallbackProperty() - line 339: $this->expectException(MissingRateLimiterException::class); - line 340: $this->expectExceptionMessage('Rate limiter ['.User::class.'::rateLimiting] is not defined.'); - line 342: Route::get('/', fn () => 'ok')->middleware(['auth', ThrottleRequests::using('rateLimiting')]); - line 354: $this->withoutExceptionHandling()->actingAs($user)->get('/'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 337: public function testItFailsIfNamedLimiterDoesNotExistAndAuthenticatedUserDoesNotHaveFallbackProperty() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 357: public function testItFallbacksToUserPropertyWhenThereIsNoNamedLimiterWhenAuthenticated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 357: public function testItFallbacksToUserPropertyWhenThereIsNoNamedLimiterWhenAuthenticated() - line 359: $user = User::make()->forceFill([ - line 367: Route::get('/', fn () => 'yes')->middleware(['auth', ThrottleRequests::using('rateLimiting')]); - line 369: $response = $this->withoutExceptionHandling()->actingAs($user)->get('/'); - line 370: $this->assertSame('yes', $response->getContent()); - line 377: $this->withoutExceptionHandling()->actingAs($user)->get('/'); - line 380: $this->assertEquals(429, $e->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 388: public function testItFallbacksToUserAccessorWhenThereIsNoNamedLimiterWhenAuthenticated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 388: public function testItFallbacksToUserAccessorWhenThereIsNoNamedLimiterWhenAuthenticated() - line 390: $user = UserWithAccessor::make(); - line 396: Route::get('/', fn () => 'yes')->middleware(['auth', ThrottleRequests::using('rateLimiting')]); - line 398: $response = $this->withoutExceptionHandling()->actingAs($user)->get('/'); - line 399: $this->assertSame('yes', $response->getContent()); - line 406: $this->withoutExceptionHandling()->actingAs($user)->get('/'); - line 409: $this->assertEquals(429, $e->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 417: public function testItCanThrottleBasedOnResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 20. Evidence: - line 417: public function testItCanThrottleBasedOnResponse() - line 420: return Limit::perMinute(1)->after(fn ($response) => $response->status() === 404); - line 425: })->middleware(ThrottleRequests::using('throttle-not-found')); - line 427: $this->travelTo('2000-01-01 00:00:00'); - line 428: $this->get('?status=404')->assertNotFound(); - line 429: $this->get('?status=404')->assertTooManyRequests(); - line 432: $this->travelTo('2000-01-01 00:00:59'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 451: public function testItDoesNotHitLimiterUntilResponseHasBeenGenerated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 451: public function testItDoesNotHitLimiterUntilResponseHasBeenGenerated() - line 453: ThrottleRequests::shouldHashKeys(false); - line 455: return Limit::perMinute(1)->after(fn ($response) => $response->status() === 404); - line 465: })->middleware(ThrottleRequests::using('throttle-not-found')); - line 467: $this->travelTo('2000-01-01 00:00:00'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Log/ContextIntegrationTest.php - Test @ line 26: public function test_it_handles_eloquent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 26: public function test_it_handles_eloquent() - line 28: $user = UserFactory::new()->create(['name' => 'Tim']); - line 47: $this->assertTrue($user->is(Context::get('model'))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 52: public function test_it_ignores_deleted_models_when_hydrating() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 52: public function test_it_ignores_deleted_models_when_hydrating() - line 54: $user = UserFactory::new()->create(['name' => 'Tim']); - line 60: $user->delete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 71: public function test_it_ignores_deleted_models_within_collections_when_hydrating() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 71: public function test_it_ignores_deleted_models_within_collections_when_hydrating() - line 73: $user = UserFactory::new()->create(['name' => 'Tim']); - line 79: $user->delete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 91: public function test_it_throws_on_incomplete_classes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 91: public function test_it_throws_on_incomplete_classes() - line 100: $this->expectException(RuntimeException::class); - line 101: $this->expectExceptionMessage('Value is incomplete class: {"__PHP_Incomplete_Class_Name":"App\\\\MyContextClass"}'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 91: public function test_it_throws_on_incomplete_classes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 106: public function test_it_throws_generic_unserialize_exceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 106: public function test_it_throws_generic_unserialize_exceptions() - line 115: $this->expectException(ErrorException::class); - line 116: $this->expectExceptionMessage('unserialize(): Error at offset 0 of 8 bytes'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 106: public function test_it_throws_generic_unserialize_exceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Log/LoggingIntegrationTest.php - Test @ line 13: public function testLoggingCanBeRunWithoutEncounteringExceptions() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 13: public function testLoggingCanBeRunWithoutEncounteringExceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Mail/AttachingFromStorageTest.php - Test @ line 13: public function testItCanAttachFromStorage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 13: public function testItCanAttachFromStorage() - line 15: Storage::disk('local')->put('/dir/foo.png', 'expected body contents'); - line 18: ->as('bar') - line 21: $attachment->attachTo($mail); - line 31: Storage::disk('local')->delete('/dir/foo.png'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 13: public function testItCanAttachFromStorage() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 34: public function testItCanAttachFromStorageAndFallbackToStorageNameAndMime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 34: public function testItCanAttachFromStorageAndFallbackToStorageNameAndMime() - line 36: Storage::disk()->put('/dir/foo.png', 'expected body contents'); - line 40: $attachment->attachTo($mail); - line 55: Storage::disk('local')->delete('/dir/foo.png'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function testItCanAttachFromStorageAndFallbackToStorageNameAndMime() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 58: public function testItCanChainAttachWithMailMessage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 58: public function testItCanChainAttachWithMailMessage() - line 60: Storage::disk('local')->put('/dir/foo.png', 'expected body contents'); - line 63: $result = $message->attach( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 70: public function testItCanCheckForStorageBasedAttachments() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 70: public function testItCanCheckForStorageBasedAttachments() - line 72: Storage::disk()->put('/dir/foo.png', 'expected body contents'); - line 74: $mailable->attach(Attachment::fromStorage('/dir/foo.png')); - line 76: $this->assertTrue($mailable->hasAttachment(Attachment::fromStorage('/dir/foo.png'))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Mail/MailableTestCase.php - Test @ line 21: public function testItCanAssertMarkdownEncodedString($given, $expected) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 21: public function testItCanAssertMarkdownEncodedString($given, $expected) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 21: public function testItCanAssertMarkdownEncodedString($given, $expected) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Mail/MailableWithoutSecuredEncodingTest.php - Test @ line 28: public function testItCanAssertMarkdownEncodedStringUsingTemplate($given, $expected) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 28: public function testItCanAssertMarkdownEncodedStringUsingTemplate($given, $expected) - line 30: $user = UserFactory::new()->create([ - line 45: return $this->markdown('message-with-template'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 28: public function testItCanAssertMarkdownEncodedStringUsingTemplate($given, $expected) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 54: public function testItCanAssertMarkdownEncodedStringUsingTemplateWithTable($given, $expected) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 54: public function testItCanAssertMarkdownEncodedStringUsingTemplateWithTable($given, $expected) - line 56: $user = UserFactory::new()->create([ - line 71: return $this->markdown('table-with-template'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 54: public function testItCanAssertMarkdownEncodedStringUsingTemplateWithTable($given, $expected) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Mail/MailableWithSecuredEncodingTest.php - Test @ line 28: public function testItCanAssertMarkdownEncodedStringUsingTemplate($given, $expected) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 28: public function testItCanAssertMarkdownEncodedStringUsingTemplate($given, $expected) - line 30: $user = UserFactory::new()->create([ - line 45: return $this->markdown('message-with-template'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 28: public function testItCanAssertMarkdownEncodedStringUsingTemplate($given, $expected) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 54: public function testItCanAssertMarkdownEncodedStringUsingTemplateWithTable($given, $expected) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 54: public function testItCanAssertMarkdownEncodedStringUsingTemplateWithTable($given, $expected) - line 56: $user = UserFactory::new()->create([ - line 71: return $this->markdown('table-with-template'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 54: public function testItCanAssertMarkdownEncodedStringUsingTemplateWithTable($given, $expected) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Mail/MarkdownParserTest.php - Test @ line 35: public function testItCanParseMarkdownEncodedString($given, $expected) Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 35: public function testItCanParseMarkdownEncodedString($given, $expected) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Mail/RenderingMailWithLocaleTest.php - Test @ line 26: public function testMailableRendersInDefaultLocale() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 26: public function testMailableRendersInDefaultLocale() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 33: public function testMailableRendersInSelectedLocale() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 33: public function testMailableRendersInSelectedLocale() - line 35: $mail = (new RenderedTestMail)->locale('es'); - line 37: $this->assertStringContainsString('nombre', $mail->render()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 40: public function testMailableRendersInAppSelectedLocale() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 40: public function testMailableRendersInAppSelectedLocale() - line 42: $this->app->setLocale('es'); - line 46: $this->assertStringContainsString('nombre', $mail->render()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 40: public function testMailableRendersInAppSelectedLocale() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Mail/SendingMailWithLocaleTest.php - Test @ line 36: public function testMailIsSentWithDefaultLocale() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 36: public function testMailIsSentWithDefaultLocale() - line 38: Mail::to('test@mail.com')->send(new TestMail); - line 41: app('mailer')->getSymfonyTransport()->messages()[0]->toString() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 36: public function testMailIsSentWithDefaultLocale() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 45: public function testMailIsSentWithSelectedLocale() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 45: public function testMailIsSentWithSelectedLocale() - line 47: Mail::to('test@mail.com')->locale('ar')->send(new TestMail); - line 50: app('mailer')->getSymfonyTransport()->messages()[0]->toString() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 45: public function testMailIsSentWithSelectedLocale() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 54: public function testMailIsSentWithLocaleFromMailable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 54: public function testMailIsSentWithLocaleFromMailable() - line 57: $mailable->locale('ar'); - line 59: Mail::to('test@mail.com')->send($mailable); - line 62: app('mailer')->getSymfonyTransport()->messages()[0]->toString() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 54: public function testMailIsSentWithLocaleFromMailable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 66: public function testMailIsSentWithLocaleUpdatedListenersCalled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 66: public function testMailIsSentWithLocaleUpdatedListenersCalled() - line 74: Mail::to('test@mail.com')->locale('es')->send(new TimestampTestMail); - line 77: app('mailer')->getSymfonyTransport()->messages()[0]->toString() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 85: public function testLocaleIsSentWithModelPreferredLocale() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 85: public function testLocaleIsSentWithModelPreferredLocale() - line 92: Mail::to($recipient)->send(new TestMail); - line 95: app('mailer')->getSymfonyTransport()->messages()[0]->toString() - line 99: $mailable->to($recipient); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 85: public function testLocaleIsSentWithModelPreferredLocale() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 104: public function testLocaleIsSentWithSelectedLocaleOverridingModelPreferredLocale() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 104: public function testLocaleIsSentWithSelectedLocaleOverridingModelPreferredLocale() - line 111: Mail::to($recipient)->locale('ar')->send(new TestMail); - line 114: app('mailer')->getSymfonyTransport()->messages()[0]->toString() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 104: public function testLocaleIsSentWithSelectedLocaleOverridingModelPreferredLocale() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 118: public function testLocaleIsSentWithModelPreferredLocaleWillIgnorePreferredLocaleOfTheCcRecipient() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 118: public function testLocaleIsSentWithModelPreferredLocaleWillIgnorePreferredLocaleOfTheCcRecipient() - line 130: Mail::to($toRecipient)->cc($ccRecipient)->send(new TestMail); - line 133: app('mailer')->getSymfonyTransport()->messages()[0]->toString() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 118: public function testLocaleIsSentWithModelPreferredLocaleWillIgnorePreferredLocaleOfTheCcRecipient() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 137: public function testLocaleIsNotSentWithModelPreferredLocaleWhenThereAreMultipleRecipients() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 137: public function testLocaleIsNotSentWithModelPreferredLocaleWhenThereAreMultipleRecipients() - line 150: Mail::to($recipients)->send(new TestMail); - line 153: app('mailer')->getSymfonyTransport()->messages()[0]->toString() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 137: public function testLocaleIsNotSentWithModelPreferredLocaleWhenThereAreMultipleRecipients() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 157: public function testLocaleIsSetBackToDefaultAfterMailSent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 157: public function testLocaleIsSetBackToDefaultAfterMailSent() - line 159: Mail::to('test@mail.com')->locale('ar')->send(new TestMail); - line 160: Mail::to('test@mail.com')->send(new TestMail); - line 162: $this->assertSame('en', app('translator')->getLocale()); - line 165: app('mailer')->getSymfonyTransport()->messages()[0]->toString() - line 169: app('mailer')->getSymfonyTransport()->messages()[1]->toString() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Mail/SendingMarkdownMailTest.php - Test @ line 23: public function testMailIsSent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 23: public function testMailIsSent() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testMailIsSent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 33: public function testMailMayHaveSpecificTextView() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 33: public function testMailMayHaveSpecificTextView() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 33: public function testMailMayHaveSpecificTextView() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 44: public function testEmbed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 44: public function testEmbed() - line 46: Mail::to('test@mail.com')->send($mailable = new EmbedMailable()); - line 52: $email = app('mailer')->getSymfonyTransport()->messages()[0]->getOriginalMessage()->toString(); - line 54: $cid = explode(' cid:', (new Stringable($email))->explode("\r\n") - line 58: $filename = explode('Embed file: ', (new Stringable($email))->explode("\r\n") Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 71: public function testEmbedData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 71: public function testEmbedData() - line 73: Mail::to('test@mail.com')->send($mailable = new EmbedDataMailable()); - line 78: $email = app('mailer')->getSymfonyTransport()->messages()[0]->getOriginalMessage()->toString(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 87: public function testEmbedMultilineImage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 87: public function testEmbedMultilineImage() - line 89: Mail::to('test@mail.com')->send($mailable = new EmbedMultilineMailable()); - line 91: $html = html_entity_decode($mailable->render()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 109: public function testMessageAsPublicPropertyMayBeDefinedAsViewData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 109: public function testMessageAsPublicPropertyMayBeDefinedAsViewData() - line 111: Mail::to('test@mail.com')->send($mailable = new MessageAsPublicPropertyMailable()); - line 117: $email = app('mailer')->getSymfonyTransport()->messages()[0]->getOriginalMessage()->toString(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 122: public function testMessageAsWithNamedParameterMayBeDefinedAsViewData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 122: public function testMessageAsWithNamedParameterMayBeDefinedAsViewData() - line 124: Mail::to('test@mail.com')->send($mailable = new MessageAsWithNamedParameterMailable()); - line 130: $email = app('mailer')->getSymfonyTransport()->messages()[0]->getOriginalMessage()->toString(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 135: public function testTheme() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 135: public function testTheme() - line 137: Mail::to('test@mail.com')->send(new BasicMailable()); - line 138: $this->assertSame('default', app(Markdown::class)->getTheme()); - line 140: Mail::to('test@mail.com')->send(new BasicMailableWithTheme()); - line 141: $this->assertSame('taylor', app(Markdown::class)->getTheme()); - line 143: Mail::to('test@mail.com')->send(new BasicMailable()); - line 144: $this->assertSame('default', app(Markdown::class)->getTheme()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 147: public function testEmbeddedImageContentIdConsistencyAcrossMailerFailoverClones() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 147: public function testEmbeddedImageContentIdConsistencyAcrossMailerFailoverClones() - line 149: Mail::to('test@mail.com')->send($mailable = new EmbedImageMailable); - line 152: $originalEmail = app('mailer')->getSymfonyTransport()->messages()[0]->getOriginalMessage(); - line 153: $expectedContentId = $originalEmail->getAttachments()[0]->getContentId(); - line 157: $firstClonedEmail = quoted_printable_decode((clone $originalEmail)->toString()); - line 158: [$htmlCid, $attachmentContentId] = $this->extractContentIdsFromEmail($firstClonedEmail); - line 164: $secondClonedEmail = quoted_printable_decode((clone $originalEmail)->toString()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 147: public function testEmbeddedImageContentIdConsistencyAcrossMailerFailoverClones() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Mail/SentMessageMailTest.php - Test @ line 32: public function testDispatchesNotificationSent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 32: public function testDispatchesNotificationSent() - line 36: $user = SentMessageUser::create(); - line 49: $this->assertTrue($user->is($afterSerialization->notifiable)); - line 54: $user->notify(new SentMessageMailNotification()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Migration/MigratorTest.php - Test @ line 40: public function testMigrate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 40: public function testMigrate() - line 42: $this->expectInfo('Running migrations.'); - line 44: $this->expectTask('2014_10_12_000000_create_people_table', 'DONE'); - line 45: $this->expectTask('2015_10_04_000000_modify_people_table', 'DONE'); - line 46: $this->expectTask('2016_10_04_000000_modify_people_table', 'DONE'); - line 47: $this->expectTask('2017_10_04_000000_add_age_to_people', 'SKIPPED'); - line 51: $this->subject->run([__DIR__.'/fixtures']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 59: public function testMigrateWithoutOutput() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 59: public function testMigrateWithoutOutput() - line 61: $this->app->forgetInstance('migrator'); - line 62: $this->subject = $this->app->make('migrator'); - line 64: $this->subject->run([__DIR__.'/fixtures']); - line 66: $this->assertTrue(DB::getSchemaBuilder()->hasTable('people')); - line 67: $this->assertTrue(DB::getSchemaBuilder()->hasColumn('people', 'first_name')); - line 68: $this->assertTrue(DB::getSchemaBuilder()->hasColumn('people', 'last_name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 72: public function testWithSkippedMigrations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 72: public function testWithSkippedMigrations() - line 74: $this->app->forgetInstance('migrator'); - line 75: $this->subject = $this->app->make('migrator'); - line 79: $this->subject->run([__DIR__.'/fixtures']); - line 80: $this->assertTrue(DB::getSchemaBuilder()->hasTable('people')); - line 81: $this->assertFalse(DB::getSchemaBuilder()->hasColumn('people', 'first_name')); - line 82: $this->assertFalse(DB::getSchemaBuilder()->hasColumn('people', 'last_name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 90: public function testRollback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 90: public function testRollback() - line 92: $this->getConnection()->statement('CREATE TABLE people(id INT, first_name VARCHAR, last_name VARCHAR);'); - line 93: $this->subject->getRepository()->log('2014_10_12_000000_create_people_table', 1); - line 94: $this->subject->getRepository()->log('2015_10_04_000000_modify_people_table', 1); - line 95: $this->subject->getRepository()->log('2016_10_04_000000_modify_people_table', 1); - line 97: $this->expectInfo('Rolling back migrations.'); - line 99: $this->expectTask('2016_10_04_000000_modify_people_table', 'DONE'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 110: public function testPretendMigrate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 110: public function testPretendMigrate() - line 112: $this->expectInfo('Running migrations.'); - line 114: $this->expectTwoColumnDetail('CreatePeopleTable'); - line 115: $this->expectBulletList([ - line 120: $this->expectTwoColumnDetail('ModifyPeopleTable'); - line 121: $this->expectBulletList(['alter table "people" add column "first_name" varchar']); - line 123: $this->expectTwoColumnDetail('2016_10_04_000000_modify_people_table'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 133: public function testIgnorePretendModeForCallbackData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 133: public function testIgnorePretendModeForCallbackData() - line 139: $table->increments('id'); - line 144: $table->increments('id'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 200: public function testIgnorePretendModeForCallbackOutputDynamicContentIsShown() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 200: public function testIgnorePretendModeForCallbackOutputDynamicContentIsShown() - line 203: $this->expectInfo('Running migrations.'); - line 204: $this->expectTask('2014_10_12_000000_create_people_is_dynamic_table', 'DONE'); - line 208: $this->subject->run([__DIR__.'/pretending/2014_10_12_000000_create_people_is_dynamic_table.php'], ['pretend' => false]); - line 210: $this->assertTrue(DB::getSchemaBuilder()->hasTable('people')); - line 213: $this->expectInfo('Running migrations.'); - line 214: $this->expectTwoColumnDetail('DynamicContentIsShown'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 233: public function testIgnorePretendModeForCallbackOutputDynamicContentNotShown() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 233: public function testIgnorePretendModeForCallbackOutputDynamicContentNotShown() - line 236: $this->expectInfo('Running migrations.'); - line 237: $this->expectTask('2014_10_12_000000_create_people_non_dynamic_table', 'DONE'); - line 241: $this->subject->run([__DIR__.'/pretending/2014_10_12_000000_create_people_non_dynamic_table.php'], ['pretend' => false]); - line 243: $this->assertTrue(DB::getSchemaBuilder()->hasTable('people')); - line 246: $this->expectInfo('Running migrations.'); - line 247: $this->expectTwoColumnDetail('DynamicContentNotShown'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Notifications/DatabaseNotificationTest.php - Test @ line 22: public function testAssertSentToWhenNotifiableHasStringableKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 22: public function testAssertSentToWhenNotifiableHasStringableKey() - line 26: $user = UuidUserFactoryStub::new()->create(); - line 28: $user->notify(new NotificationStub); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Notifications/SendingMailableNotificationsTest.php - Test @ line 44: public function testMarkdownNotification() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 44: public function testMarkdownNotification() - line 46: $user = MailableNotificationUser::forceCreate([ - line 50: $user->notify(new MarkdownNotification()); - line 52: $message = app('mailer')->getSymfonyTransport()->messages()[0]->getOriginalMessage(); - line 53: $email = $message->toString(); - line 54: $textBody = $message->getTextBody(); - line 56: $cid = explode(' cid:', (new Stringable($textBody))->explode("\n") Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 44: public function testMarkdownNotification() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 73: public function testCanSetTheme() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 73: public function testCanSetTheme() - line 75: $user = MailableNotificationUser::forceCreate([ - line 79: $user->notify(new MarkdownNotification('color-test')); - line 80: $mailTransport = app('mailer')->getSymfonyTransport(); - line 82: $contents = $mailTransport->messages()[0]->getOriginalMessage()->toString(); - line 86: $user->notify(new MarkdownNotification()); - line 88: $contents = $mailTransport->messages()[1]->getOriginalMessage()->toString(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 73: public function testCanSetTheme() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Notifications/SendingMailNotificationsTest.php - Test @ line 60: public function testMailIsSent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 60: public function testMailIsSent() - line 63: $notification->id = Str::uuid()->toString(); - line 73: $this->setMailerSendAssertions($notification, $user, function ($closure) { - line 95: $user->notify($notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 74: $message = m::mock(Message::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 60: public function testMailIsSent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 98: public function testMailIsSentWithCustomTheme() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 98: public function testMailIsSentWithCustomTheme() - line 101: $notification->id = Str::uuid()->toString(); - line 111: $this->setMailerSendAssertions($notification, $user, function ($closure) { - line 133: $user->notify($notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 112: $message = m::mock(Message::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 98: public function testMailIsSentWithCustomTheme() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 171: public function testMailIsSentToNamedAddress() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 171: public function testMailIsSentToNamedAddress() - line 174: $notification->id = Str::uuid()->toString(); - line 185: $this->setMailerSendAssertions($notification, $user, function ($closure) { - line 207: $user->notify($notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 186: $message = m::mock(Message::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 171: public function testMailIsSentToNamedAddress() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 210: public function testMailIsSentWithSubject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 210: public function testMailIsSentWithSubject() - line 213: $notification->id = Str::uuid()->toString(); - line 223: $this->setMailerSendAssertions($notification, $user, function ($closure) { - line 235: $user->notify($notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 224: $message = m::mock(Message::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 210: public function testMailIsSentWithSubject() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 238: public function testMailIsSentToMultipleAddresses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 238: public function testMailIsSentToMultipleAddresses() - line 241: $notification->id = Str::uuid()->toString(); - line 251: $this->setMailerSendAssertions($notification, $user, function ($closure) { - line 263: $user->notify($notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 252: $message = m::mock(Message::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 238: public function testMailIsSentToMultipleAddresses() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 266: public function testMailIsSentUsingMailable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 266: public function testMailIsSentUsingMailable() - line 270: $user = NotifiableUser::forceCreate([ - line 274: $user->notify($notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 266: public function testMailIsSentUsingMailable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 277: public function testMailIsSentUsingMailMessageWithHtmlAndPlain() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 277: public function testMailIsSentUsingMailMessageWithHtmlAndPlain() - line 280: $notification->id = Str::uuid()->toString(); - line 288: array_merge($notification->toMail($user)->toArray(), [ - line 306: $user->notify($notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 294: $message = m::mock(Message::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 277: public function testMailIsSentUsingMailMessageWithHtmlAndPlain() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 309: public function testMailIsSentUsingMailMessageWithHtmlOnly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 309: public function testMailIsSentUsingMailMessageWithHtmlOnly() - line 312: $notification->id = Str::uuid()->toString(); - line 320: array_merge($notification->toMail($user)->toArray(), [ - line 338: $user->notify($notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 326: $message = m::mock(Message::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 309: public function testMailIsSentUsingMailMessageWithHtmlOnly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 341: public function testMailIsSentUsingMailMessageWithPlainOnly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 341: public function testMailIsSentUsingMailMessageWithPlainOnly() - line 344: $notification->id = Str::uuid()->toString(); - line 352: array_merge($notification->toMail($user)->toArray(), [ - line 370: $user->notify($notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 358: $message = m::mock(Message::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 341: public function testMailIsSentUsingMailMessageWithPlainOnly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Notifications/SendingNotificationsViaAnonymousNotifiableTest.php - Test @ line 13: public function testMailIsSent() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 13: public function testMailIsSent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 29: public function testAnonymousNotifiableWithMultipleRoutes() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 31: $_SERVER['__notifiable.route'] = []; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 29: public function testAnonymousNotifiableWithMultipleRoutes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 43: public function testFaking() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 43: public function testFaking() - line 50: ->route('testchannel', 'enzo') - line 53: NotificationFacade::locale('it')->send( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 43: public function testFaking() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Notifications/SendingNotificationsWithLocaleTest.php - Test @ line 53: public function testMailIsSentWithDefaultLocale() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 53: public function testMailIsSentWithDefaultLocale() - line 55: $user = NotifiableLocalizedUser::forceCreate([ - line 63: app('mailer')->getSymfonyTransport()->messages()[0]->toString() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 53: public function testMailIsSentWithDefaultLocale() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 67: public function testMailIsSentWithFacadeSelectedLocale() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 67: public function testMailIsSentWithFacadeSelectedLocale() - line 69: $user = NotifiableLocalizedUser::forceCreate([ - line 74: NotificationFacade::locale('fr')->send($user, new GreetingMailNotification); - line 77: app('mailer')->getSymfonyTransport()->messages()[0]->toString() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 67: public function testMailIsSentWithFacadeSelectedLocale() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 81: public function testMailIsSentWithNotificationSelectedLocale() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 81: public function testMailIsSentWithNotificationSelectedLocale() - line 84: NotifiableLocalizedUser::forceCreate([ - line 94: NotificationFacade::send($users, (new GreetingMailNotification)->locale('fr')); - line 97: app('mailer')->getSymfonyTransport()->messages()[0]->toString() - line 101: app('mailer')->getSymfonyTransport()->messages()[1]->toString() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 81: public function testMailIsSentWithNotificationSelectedLocale() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 105: public function testMailableIsSentWithSelectedLocale() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 105: public function testMailableIsSentWithSelectedLocale() - line 107: $user = NotifiableLocalizedUser::forceCreate([ - line 112: NotificationFacade::locale('fr')->send($user, new GreetingMailNotificationWithMailable); - line 115: app('mailer')->getSymfonyTransport()->messages()[0]->toString() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 105: public function testMailableIsSentWithSelectedLocale() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 119: public function testMailIsSentWithLocaleUpdatedListenersCalled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 119: public function testMailIsSentWithLocaleUpdatedListenersCalled() - line 127: $user = NotifiableLocalizedUser::forceCreate([ - line 132: $user->notify((new GreetingMailNotification)->locale('fr')); - line 135: app('mailer')->getSymfonyTransport()->messages()[0]->toString() - line 139: app('mailer')->getSymfonyTransport()->messages()[0]->toString() - line 142: $this->assertTrue($this->app->isLocale('en')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 149: public function testLocaleIsSentWithNotifiablePreferredLocale() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 149: public function testLocaleIsSentWithNotifiablePreferredLocale() - line 156: $recipient->notify(new GreetingMailNotification); - line 159: app('mailer')->getSymfonyTransport()->messages()[0]->toString() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 149: public function testLocaleIsSentWithNotifiablePreferredLocale() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 163: public function testLocaleIsSentWithNotifiablePreferredLocaleForMultipleRecipients() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 163: public function testLocaleIsSentWithNotifiablePreferredLocaleForMultipleRecipients() - line 174: NotifiableLocalizedUser::forceCreate([ - line 184: app('mailer')->getSymfonyTransport()->messages()[0]->toString() - line 187: app('mailer')->getSymfonyTransport()->messages()[1]->toString() - line 190: app('mailer')->getSymfonyTransport()->messages()[2]->toString() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 163: public function testLocaleIsSentWithNotifiablePreferredLocaleForMultipleRecipients() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 194: public function testLocaleIsSentWithNotificationSelectedLocaleOverridingNotifiablePreferredLocale() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 194: public function testLocaleIsSentWithNotificationSelectedLocaleOverridingNotifiablePreferredLocale() - line 201: $recipient->notify( - line 206: app('mailer')->getSymfonyTransport()->messages()[0]->toString() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 194: public function testLocaleIsSentWithNotificationSelectedLocaleOverridingNotifiablePreferredLocale() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 210: public function testLocaleIsSentWithFacadeSelectedLocaleOverridingNotifiablePreferredLocale() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 210: public function testLocaleIsSentWithFacadeSelectedLocaleOverridingNotifiablePreferredLocale() - line 217: NotificationFacade::locale('fr')->send( - line 222: app('mailer')->getSymfonyTransport()->messages()[0]->toString() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 210: public function testLocaleIsSentWithFacadeSelectedLocaleOverridingNotifiablePreferredLocale() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Queue/CallQueuedHandlerTest.php - Test @ line 19: public function testJobCanBeDispatched() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 19: public function testJobCanBeDispatched() - line 25: $job = m::mock(Job::class); - line 32: $instance->call($job, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 25: $job = m::mock(Job::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 19: public function testJobCanBeDispatched() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 39: public function testJobCanBeDispatchedThroughMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 39: public function testJobCanBeDispatchedThroughMiddleware() - line 46: $job = m::mock(Job::class); - line 53: $instance->call($job, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 46: $job = m::mock(Job::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 39: public function testJobCanBeDispatchedThroughMiddleware() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 61: public function testJobCanBeDispatchedThroughMiddlewareOnDispatch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 61: public function testJobCanBeDispatchedThroughMiddlewareOnDispatch() - line 69: $job = m::mock(Job::class); - line 77: $command->through([new TestJobMiddleware]); - line 79: $instance->call($job, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 63: $_SERVER['__test.dispatchMiddleware'] = false; - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 69: $job = m::mock(Job::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 61: public function testJobCanBeDispatchedThroughMiddlewareOnDispatch() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 88: public function testJobIsMarkedAsFailedIfModelNotFoundExceptionIsThrown() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 88: public function testJobIsMarkedAsFailedIfModelNotFoundExceptionIsThrown() - line 92: $job = m::mock(Job::class); - line 96: $instance->call($job, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 92: $job = m::mock(Job::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 88: public function testJobIsMarkedAsFailedIfModelNotFoundExceptionIsThrown() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 101: public function testJobIsDeletedIfHasDeleteProperty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 101: public function testJobIsDeletedIfHasDeleteProperty() - line 107: $job = m::mock(Job::class); - line 110: $job->shouldReceive('markAsFailed')->never(); - line 113: $job->shouldReceive('failed')->never(); - line 115: $instance->call($job, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 107: $job = m::mock(Job::class); - Test @ line 122: public function testJobIsDeletedIfHasDeleteAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 122: public function testJobIsDeletedIfHasDeleteAttribute() - line 128: $job = m::mock(Job::class); - line 131: $job->shouldReceive('markAsFailed')->never(); - line 134: $job->shouldReceive('failed')->never(); - line 136: $instance->call($job, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 128: $job = m::mock(Job::class); ❌ tests/Integration/Queue/CustomPayloadTest.php - Test @ line 30: public function test_custom_payload_gets_cleared_for_each_data_provider(string $websites) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 30: public function test_custom_payload_gets_cleared_for_each_data_provider(string $websites) - line 32: $dispatcher = $this->app->make(QueueingDispatcher::class); - line 34: $dispatcher->dispatchToQueue(new MyJob); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 30: public function test_custom_payload_gets_cleared_for_each_data_provider(string $websites) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Queue/DynamoBatchTest.php - Test @ line 47: public function test_running_a_batch() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 47: public function test_running_a_batch() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 57: public function test_retrieve_batch_by_id() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 57: public function test_retrieve_batch_by_id() - line 58: { - line 66: $retrieved = $repo->find($batch->id); - line 69: $this->assertTrue($retrieved->finishedAt->between(now()->subSecond(30), now())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 72: public function test_retrieve_non_existent_batch() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 72: public function test_retrieve_non_existent_batch() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 80: public function test_delete_batch_by_id() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 80: public function test_delete_batch_by_id() - line 81: { - line 88: $retrieved = $repo->find($batch->id); - line 90: $repo->delete($retrieved->id); - line 91: $retrieved = $repo->find($batch->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 80: public function test_delete_batch_by_id() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 95: public function test_delete_non_existent_batch() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 95: public function test_delete_non_existent_batch() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 104: public function test_batch_with_failing_job() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 104: public function test_batch_with_failing_job() - line 105: { - line 113: $retrieved = $repo->find($batch->id); - line 116: $this->assertTrue($retrieved->finishedAt->between(now()->subSecond(30), now())); - line 117: $this->assertTrue($retrieved->cancelledAt->between(now()->subSecond(30), now())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Queue/JobChainingTest.php - Test @ line 52: public function testJobsCanBeChainedOnSuccess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 52: public function testJobsCanBeChainedOnSuccess() - line 53: { - line 58: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 52: public function testJobsCanBeChainedOnSuccess() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 64: public function testJobsCanBeChainedOnSuccessUsingPendingChain() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 64: public function testJobsCanBeChainedOnSuccessUsingPendingChain() - line 65: { - line 70: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 64: public function testJobsCanBeChainedOnSuccessUsingPendingChain() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 76: public function testJobsCanBeChainedOnSuccessUsingBusFacade() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 76: public function testJobsCanBeChainedOnSuccessUsingBusFacade() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 89: public function testJobsCanBeChainedOnSuccessUsingBusFacadeAsArguments() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 89: public function testJobsCanBeChainedOnSuccessUsingBusFacadeAsArguments() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 102: public function testJobsChainedOnExplicitDelete() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 102: public function testJobsChainedOnExplicitDelete() - line 103: { - line 108: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 102: public function testJobsChainedOnExplicitDelete() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 114: public function testJobsCanBeChainedOnSuccessWithSeveralJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 114: public function testJobsCanBeChainedOnSuccessWithSeveralJobs() - line 115: { - line 121: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 114: public function testJobsCanBeChainedOnSuccessWithSeveralJobs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 128: public function testJobsCanBeChainedOnSuccessUsingHelper() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 128: public function testJobsCanBeChainedOnSuccessUsingHelper() - line 129: { - line 134: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 128: public function testJobsCanBeChainedOnSuccessUsingHelper() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 140: public function testJobsCanBeChainedViaQueue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 140: public function testJobsCanBeChainedViaQueue() - line 141: { - line 146: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 140: public function testJobsCanBeChainedViaQueue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 152: public function testSecondJobIsNotFiredIfFirstFailed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 152: public function testSecondJobIsNotFiredIfFirstFailed() - line 153: { - line 158: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 152: public function testSecondJobIsNotFiredIfFirstFailed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 163: public function testSecondJobIsNotFiredIfFirstReleased() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 163: public function testSecondJobIsNotFiredIfFirstReleased() - line 164: { - line 169: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 163: public function testSecondJobIsNotFiredIfFirstReleased() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 174: public function testThirdJobIsNotFiredIfSecondFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 174: public function testThirdJobIsNotFiredIfSecondFails() - line 175: { - line 181: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 174: public function testThirdJobIsNotFiredIfSecondFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 187: public function testCatchCallbackIsCalledOnFailure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 187: public function testCatchCallbackIsCalledOnFailure() - line 188: { - line 197: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 187: public function testCatchCallbackIsCalledOnFailure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 204: public function testChainJobsUseSameConfig() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 204: public function testChainJobsUseSameConfig() - line 205: { - line 211: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 204: public function testChainJobsUseSameConfig() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 223: public function testChainJobsUseOwnConfig() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 223: public function testChainJobsUseOwnConfig() - line 224: { - line 230: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 223: public function testChainJobsUseOwnConfig() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 242: public function testChainJobsUseDefaultConfig() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 242: public function testChainJobsUseDefaultConfig() - line 243: { - line 249: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 242: public function testChainJobsUseDefaultConfig() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 261: public function testChainJobsCanBePrepended() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 261: public function testChainJobsCanBePrepended() - line 262: { - line 265: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); - line 269: $this->assertTrue(JobChainAddingAddedJob::$ranAt->isBefore(JobChainAddingExistingJob::$ranAt)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 272: public function testChainJobsCanBePrependedWithoutExistingChain() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 272: public function testChainJobsCanBePrependedWithoutExistingChain() - line 273: { - line 276: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 272: public function testChainJobsCanBePrependedWithoutExistingChain() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 281: public function testChainJobsCanBeAppended() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 281: public function testChainJobsCanBeAppended() - line 282: { - line 285: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); - line 289: $this->assertTrue(JobChainAddingAddedJob::$ranAt->isAfter(JobChainAddingExistingJob::$ranAt)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 292: public function testChainJobsCanBePrependedBatch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 292: public function testChainJobsCanBePrependedBatch() - line 293: { - line 299: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 292: public function testChainJobsCanBePrependedBatch() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 304: public function testChainJobsCanBeAppendedBatch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 304: public function testChainJobsCanBeAppendedBatch() - line 305: { - line 311: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 304: public function testChainJobsCanBeAppendedBatch() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 316: public function testChainJobsCanBeAppendedWithoutExistingChain() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 316: public function testChainJobsCanBeAppendedWithoutExistingChain() - line 317: { - line 320: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 316: public function testChainJobsCanBeAppendedWithoutExistingChain() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 325: public function testChainCanBeAppended() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 325: public function testChainCanBeAppended() - line 329: $chain->append($firstJob = new JobChainingNamedTestJob('j1')); - line 330: $chain->append($secondJob = new JobChainingNamedTestJob('j2')); - line 331: $chain->append($thirdJob = new JobChainingNamedTestJob('j3')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 352: public function testChainCanBePrepended() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 352: public function testChainCanBePrepended() - line 356: $chain->prepend($firstJob = new JobChainingNamedTestJob('j1')); - line 357: $chain->prepend($secondJob = new JobChainingNamedTestJob('j2')); - line 358: $chain->prepend($thirdJob = new JobChainingNamedTestJob('j3')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 380: public function testBatchCanBeAddedToChain() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 380: public function testBatchCanBeAddedToChain() - line 381: { - line 394: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 380: public function testBatchCanBeAddedToChain() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 399: public function testBatchInChainUsesCorrectQueue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 399: public function testBatchInChainUsesCorrectQueue() - line 401: $otherQueue = $this->getQueueDriver() === 'redis' ? '{other}' : 'other'; - line 414: $this->runQueueWorkerCommand(['--queue' => $otherQueue, '--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 399: public function testBatchInChainUsesCorrectQueue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 419: public function testDynamicBatchCanBeAddedToChain() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 419: public function testDynamicBatchCanBeAddedToChain() - line 420: { - line 433: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); - line 435: if ($this->getQueueDriver() === 'sync') { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 419: public function testDynamicBatchCanBeAddedToChain() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 448: public function testChainBatchChain() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 448: public function testChainBatchChain() - line 449: { - line 466: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); - line 468: if ($this->getQueueDriver() === 'sync') { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 448: public function testChainBatchChain() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 481: public function testChainBatchChainBatch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 481: public function testChainBatchChainBatch() - line 482: { - line 503: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); - line 505: if ($this->getQueueDriver() === 'sync') { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 481: public function testChainBatchChainBatch() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 518: public function testBatchCatchCallbacks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 518: public function testBatchCatchCallbacks() - line 519: { - line 529: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 518: public function testBatchCatchCallbacks() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 535: public function testChainBatchFailureAllowed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 535: public function testChainBatchFailureAllowed() - line 536: { - line 548: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 535: public function testChainBatchFailureAllowed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 555: public function testChainBatchFailureNotAllowed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 555: public function testChainBatchFailureNotAllowed() - line 556: { - line 568: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 555: public function testChainBatchFailureNotAllowed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 574: public function testChainConditionable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 574: public function testChainConditionable() - line 577: ->onConnection('sync1') - line 585: ->onConnection('sync1') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 593: public function testBatchConditionable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 593: public function testBatchConditionable() - line 596: ->onConnection('sync1') - line 601: $this->assertEquals('sync2', $batch->connection()); - line 603: ->onConnection('sync1') - line 608: $this->assertEquals('sync1', $batch->connection()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 611: public function testJobsAreChainedWhenDispatchIfIsTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 611: public function testJobsAreChainedWhenDispatchIfIsTrue() - line 615: ])->dispatchIf(true); - line 617: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 611: public function testJobsAreChainedWhenDispatchIfIsTrue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 623: public function testJobsAreNotChainedWhenDispatchIfIsFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 623: public function testJobsAreNotChainedWhenDispatchIfIsFalse() - line 627: ])->dispatchIf(false); - line 629: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 623: public function testJobsAreNotChainedWhenDispatchIfIsFalse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 635: public function testJobsAreChainedWhenDispatchUnlessIsFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 635: public function testJobsAreChainedWhenDispatchUnlessIsFalse() - line 639: ])->dispatchUnless(false); - line 641: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 635: public function testJobsAreChainedWhenDispatchUnlessIsFalse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 647: public function testJobsAreNotChainedWhenDispatchUnlessIsTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 647: public function testJobsAreNotChainedWhenDispatchUnlessIsTrue() - line 651: ])->dispatchUnless(true); - line 653: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 647: public function testJobsAreNotChainedWhenDispatchUnlessIsTrue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Queue/JobDispatchingTest.php - Test @ line 31: public function testJobCanUseCustomMethodsAfterDispatch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 31: public function testJobCanUseCustomMethodsAfterDispatch() - line 32: { - line 35: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 31: public function testJobCanUseCustomMethodsAfterDispatch() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 41: public function testDispatchesConditionallyWithBoolean() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 41: public function testDispatchesConditionallyWithBoolean() - line 43: Job::dispatchIf(false, 'test')->replaceValue('new-test'); - line 45: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); - line 50: Job::dispatchIf(true, 'test')->replaceValue('new-test'); - line 52: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 41: public function testDispatchesConditionallyWithBoolean() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 58: public function testDispatchesConditionallyWithClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 58: public function testDispatchesConditionallyWithClosure() - line 60: Job::dispatchIf(fn ($job) => $job instanceof Job ? 0 : 1, 'test')->replaceValue('new-test'); - line 62: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); - line 66: Job::dispatchIf(fn ($job) => $job instanceof Job ? 1 : 0, 'test')->replaceValue('new-test'); - line 68: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 58: public function testDispatchesConditionallyWithClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 73: public function testDoesNotDispatchConditionallyWithBoolean() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 73: public function testDoesNotDispatchConditionallyWithBoolean() - line 75: Job::dispatchUnless(true, 'test')->replaceValue('new-test'); - line 77: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); - line 82: Job::dispatchUnless(false, 'test')->replaceValue('new-test'); - line 84: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 73: public function testDoesNotDispatchConditionallyWithBoolean() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 90: public function testDoesNotDispatchConditionallyWithClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 90: public function testDoesNotDispatchConditionallyWithClosure() - line 92: Job::dispatchUnless(fn ($job) => $job instanceof Job ? 1 : 0, 'test')->replaceValue('new-test'); - line 94: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); - line 98: Job::dispatchUnless(fn ($job) => $job instanceof Job ? 0 : 1, 'test')->replaceValue('new-test'); - line 100: $this->runQueueWorkerCommand(['--stop-when-empty' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 90: public function testDoesNotDispatchConditionallyWithClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 105: public function testUniqueJobLockIsReleasedForJobDispatchedAfterResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 105: public function testUniqueJobLockIsReleasedForJobDispatchedAfterResponse() - line 108: $terminatingCallbacksReflectionProperty = (new \ReflectionObject($this->app))->getProperty('terminatingCallbacks'); - line 109: $startTerminatingCallbacks = $terminatingCallbacksReflectionProperty->getValue($this->app); - line 113: $this->getJobLock(UniqueJob::class, 'test') - line 116: $this->app->terminate(); - line 119: $terminatingCallbacksReflectionProperty->setValue($this->app, $startTerminatingCallbacks); - line 121: UniqueJob::$ran = false; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 142: public function testQueueMayBeNullForJobQueueingAndJobQueuedEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 142: public function testQueueMayBeNullForJobQueueingAndJobQueuedEvent() - line 146: $this->app['events']->listen(function (JobQueueing $e) use (&$events) { - line 149: $this->app['events']->listen(function (JobQueued $e) use (&$events) { - line 151: }); - line 153: MyTestDispatchableJob::dispatch(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 144: Config::set('queue.default', 'database'); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 142: public function testQueueMayBeNullForJobQueueingAndJobQueuedEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 169: public function testQueuedClosureCanBeNamed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 169: public function testQueuedClosureCanBeNamed() - line 173: $this->app['events']->listen(function (JobQueued $e) use (&$events) { - line 175: }); - line 184: $this->assertStringContainsString('custom name', $events[0]->job->displayName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 171: Config::set('queue.default', 'database'); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 169: public function testQueuedClosureCanBeNamed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 187: public function testCanDisableDispatchingAfterResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 187: public function testCanDisableDispatchingAfterResponse() - line 189: Job::dispatchAfterResponse('test'); - line 193: $this->app->terminate(); - line 204: $this->app->terminate(); - line 213: $this->app->terminate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 187: public function testCanDisableDispatchingAfterResponse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Queue/JobEncryptionTest.php - Test @ line 40: public function testEncryptedJobPayloadIsStoredEncrypted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 40: public function testEncryptedJobPayloadIsStoredEncrypted() - line 41: { - line 45: decrypt(json_decode(DB::table('jobs')->first()->payload)->data->command) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 40: public function testEncryptedJobPayloadIsStoredEncrypted() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 49: public function testNonEncryptedJobPayloadIsStoredRaw() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 49: public function testNonEncryptedJobPayloadIsStoredRaw() - line 50: { - line 53: $this->expectException(DecryptException::class); - line 54: $this->expectExceptionMessage('The payload is invalid'); - line 57: unserialize(json_decode(DB::table('jobs')->first()->payload)->data->command) - line 60: decrypt(json_decode(DB::table('jobs')->first()->payload)->data->command); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testNonEncryptedJobPayloadIsStoredRaw() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 63: public function testQueueCanProcessEncryptedJob() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 63: public function testQueueCanProcessEncryptedJob() - line 64: { - line 67: Queue::pop()->fire(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 63: public function testQueueCanProcessEncryptedJob() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 72: public function testQueueCanProcessUnEncryptedJob() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 72: public function testQueueCanProcessUnEncryptedJob() - line 73: { - line 76: Queue::pop()->fire(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 72: public function testQueueCanProcessUnEncryptedJob() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Queue/ModelSerializationTest.php - Test @ line 72: public function testItSerializeUserOnDefaultConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 72: public function testItSerializeUserOnDefaultConnection() - line 76: $user = ModelSerializationTestUser::create([ - line 88: $this->assertSame($defaultConnection, $unSerialized->user->getConnectionName()); - line 95: $this->assertSame($defaultConnection, $unSerialized->users[0]->getConnectionName()); - line 97: $this->assertSame($defaultConnection, $unSerialized->users[1]->getConnectionName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 101: public function testItSerializeUserOnDifferentConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 101: public function testItSerializeUserOnDifferentConnection() - line 103: $user = ModelSerializationTestUser::on('custom')->create([ - line 107: ModelSerializationTestUser::on('custom')->create([ - line 115: $this->assertSame('custom', $unSerialized->user->getConnectionName()); - line 122: $this->assertSame('custom', $unSerialized->users[0]->getConnectionName()); - line 124: $this->assertSame('custom', $unSerialized->users[1]->getConnectionName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 128: public function testItFailsIfModelsOnMultiConnections() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 128: public function testItFailsIfModelsOnMultiConnections() - line 130: $this->expectException(LogicException::class); - line 131: $this->expectExceptionMessage('Queueing collections with multiple model connections is not supported.'); - line 133: $user = ModelSerializationTestUser::on('custom')->create([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 128: public function testItFailsIfModelsOnMultiConnections() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 148: public function testItReloadsRelationships() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 148: public function testItReloadsRelationships() - line 150: $order = tap(Order::create(), function (Order $order) { - line 160: $order->load('line', 'lines', 'products'); - line 165: $this->assertEquals($unSerialized->order->getRelations(), $order->getRelations()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 168: public function testItReloadsRelationshipsOnlyOnce() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 168: public function testItReloadsRelationshipsOnlyOnce() - line 170: $order = tap(ModelSerializationTestCustomOrder::create(), function (ModelSerializationTestCustomOrder $order) { - line 180: $order->load('line', 'lines', 'products'); - line 182: $this->expectsDatabaseQueryCount(4); - line 187: $this->assertEquals($unSerialized->order->getRelations(), $order->getRelations()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 190: public function testItReloadsNestedRelationships() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 190: public function testItReloadsNestedRelationships() - line 192: $order = tap(Order::create(), function (Order $order) { - line 202: $order->load('line.product', 'lines', 'lines.product', 'products'); - line 207: $this->assertEquals($nestedUnSerialized->order->getRelations(), $order->getRelations()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 240: public function testItCanUnserializeNestedRelationshipsWithoutPivot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 240: public function testItCanUnserializeNestedRelationshipsWithoutPivot() - line 242: $user = tap(User::create([ - line 254: $user->roles->each(function ($role) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 240: public function testItCanUnserializeNestedRelationshipsWithoutPivot() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 262: public function testItSerializesAnEmptyCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 262: public function testItSerializesAnEmptyCollection() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 262: public function testItSerializesAnEmptyCollection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 271: public function testItSerializesACollectionInCorrectOrder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 271: public function testItSerializesACollectionInCorrectOrder() - line 273: ModelSerializationTestUser::create(['email' => 'mohamed@laravel.com']); - line 282: $this->assertSame('taylor@laravel.com', $unserialized->users->first()->email); - line 283: $this->assertSame('mohamed@laravel.com', $unserialized->users->last()->email); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 286: public function testItCanUnserializeACollectionInCorrectOrderAndHandleDeletedModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 286: public function testItCanUnserializeACollectionInCorrectOrderAndHandleDeletedModels() - line 288: ModelSerializationTestUser::create(['email' => '2@laravel.com']); - line 296: ModelSerializationTestUser::where(['email' => '2@laravel.com'])->delete(); - line 302: $this->assertSame('3@laravel.com', $unserialized->users->first()->email); - line 303: $this->assertSame('1@laravel.com', $unserialized->users->last()->email); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 306: public function testItCanUnserializeCustomCollection() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 306: public function testItCanUnserializeCustomCollection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 320: public function testItSerializesTypedProperties() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 320: public function testItSerializesTypedProperties() - line 326: $user = ModelSerializationTestUser::create([ - line 338: $this->assertSame($defaultConnection, $unSerialized->user->getConnectionName()); - line 340: $this->assertSame(5, $unSerialized->getId()); - line 341: $this->assertSame(['James', 'Taylor', 'Mohamed'], $unSerialized->getNames()); - line 347: $this->assertSame($defaultConnection, $unSerialized->users[0]->getConnectionName()); - line 349: $this->assertSame($defaultConnection, $unSerialized->users[1]->getConnectionName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 354: public function test_model_serialization_structure() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 354: public function test_model_serialization_structure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 368: public function test_it_respects_without_relations_attribute() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 368: public function test_it_respects_without_relations_attribute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 382: public function test_it_respects_without_relations_attribute_applied_to_class() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 382: public function test_it_respects_without_relations_attribute_applied_to_class() - line 386: ])->load(['roles']); - line 398: $this->assertFalse($unserialized->user->relationLoaded('roles')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 402: public function test_serialization_types_empty_custom_eloquent_collection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 402: public function test_serialization_types_empty_custom_eloquent_collection() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 402: public function test_serialization_types_empty_custom_eloquent_collection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Queue/QueueConnectionTest.php - Test @ line 28: public function testJobWontGetDispatchedInsideATransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 28: public function testJobWontGetDispatchedInsideATransaction() - line 30: $this->app->singleton('db.transactions', function () { - line 36: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 31: $transactionManager = m::mock(DatabaseTransactionsManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 28: public function testJobWontGetDispatchedInsideATransaction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 41: public function testJobWillGetDispatchedInsideATransactionWhenExplicitlyIndicated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 41: public function testJobWillGetDispatchedInsideATransactionWhenExplicitlyIndicated() - line 43: $this->app->singleton('db.transactions', function () { - line 49: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 44: $transactionManager = m::mock(DatabaseTransactionsManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 41: public function testJobWillGetDispatchedInsideATransactionWhenExplicitlyIndicated() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 58: public function testJobWontGetDispatchedInsideATransactionWhenExplicitlyIndicated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 58: public function testJobWontGetDispatchedInsideATransactionWhenExplicitlyIndicated() - line 62: $this->app->singleton('db.transactions', function () { - line 68: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 63: $transactionManager = m::mock(DatabaseTransactionsManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 58: public function testJobWontGetDispatchedInsideATransactionWhenExplicitlyIndicated() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 77: public function testUniqueJobWontGetDispatchedInsideATransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 77: public function testUniqueJobWontGetDispatchedInsideATransaction() - line 79: $this->app->singleton('db.transactions', function () { - line 85: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 80: $transactionManager = m::mock(DatabaseTransactionsManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 77: public function testUniqueJobWontGetDispatchedInsideATransaction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 90: public function testUniqueJobWillGetDispatchedInsideATransactionWhenExplicitlyIndicated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 90: public function testUniqueJobWillGetDispatchedInsideATransactionWhenExplicitlyIndicated() - line 92: $this->app->singleton('db.transactions', function () { - line 98: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 93: $transactionManager = m::mock(DatabaseTransactionsManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 90: public function testUniqueJobWillGetDispatchedInsideATransactionWhenExplicitlyIndicated() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 107: public function testUniqueJobWontGetDispatchedInsideATransactionWhenExplicitlyIndicated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 107: public function testUniqueJobWontGetDispatchedInsideATransactionWhenExplicitlyIndicated() - line 111: $this->app->singleton('db.transactions', function () { - line 117: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 112: $transactionManager = m::mock(DatabaseTransactionsManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 107: public function testUniqueJobWontGetDispatchedInsideATransactionWhenExplicitlyIndicated() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Queue/QueueFakeTest.php - Test @ line 17: public function testFakeFor() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome requires facade fake setup (Queue::fake()). Evidence: - line 17: public function testFakeFor() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 25: public function testFakeExceptFor() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome requires facade fake setup (Queue::fake()). Evidence: - line 25: public function testFakeExceptFor() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 36: public function testFakeExcept() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 36: public function testFakeExcept() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 36: public function testFakeExcept() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 43: public function testFakeForReturnValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 43: public function testFakeForReturnValue() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 52: public function testFakeExceptForReturnValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 52: public function testFakeExceptForReturnValue() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Queue/RateLimitedTest.php - Test @ line 23: public function testUnlimitedJobsAreExecuted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 23: public function testUnlimitedJobsAreExecuted() - line 25: $rateLimiter = $this->app->make(RateLimiter::class); - line 27: $rateLimiter->for('test', function ($job) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testUnlimitedJobsAreExecuted() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 35: public function testUnlimitedJobsAreExecutedUsingBackedEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 35: public function testUnlimitedJobsAreExecutedUsingBackedEnum() - line 37: $rateLimiter = $this->app->make(RateLimiter::class); - line 39: $rateLimiter->for(BackedEnumNamedRateLimited::FOO, function ($job) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 35: public function testUnlimitedJobsAreExecutedUsingBackedEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 47: public function testUnlimitedJobsAreExecutedUsingUnitEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 47: public function testUnlimitedJobsAreExecutedUsingUnitEnum() - line 49: $rateLimiter = $this->app->make(RateLimiter::class); - line 51: $rateLimiter->for(UnitEnumNamedRateLimited::LARAVEL, function ($job) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 47: public function testUnlimitedJobsAreExecutedUsingUnitEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 59: public function testRateLimitedJobsAreNotExecutedOnLimitReached2() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 59: public function testRateLimitedJobsAreNotExecutedOnLimitReached2() - line 61: $cache = m::mock(Cache::class); - line 69: $this->app->instance(RateLimiter::class, $rateLimiter); - line 70: $rateLimiter = $this->app->make(RateLimiter::class); - line 72: $rateLimiter->for('test', function ($job) { - line 85: $job->shouldReceive('release')->once()->withArgs(function ($delay) { - line 91: $instance->call($job, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 61: $cache = m::mock(Cache::class); - line 82: $job = m::mock(Job::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 59: public function testRateLimitedJobsAreNotExecutedOnLimitReached2() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 98: public function testRateLimitedJobsAreNotExecutedOnLimitReached() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 98: public function testRateLimitedJobsAreNotExecutedOnLimitReached() - line 100: $rateLimiter = $this->app->make(RateLimiter::class); - line 102: $rateLimiter->for('test', function ($job) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 98: public function testRateLimitedJobsAreNotExecutedOnLimitReached() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 110: public function testRateLimitedJobsCanBeSkippedOnLimitReached() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 110: public function testRateLimitedJobsCanBeSkippedOnLimitReached() - line 112: $rateLimiter = $this->app->make(RateLimiter::class); - line 114: $rateLimiter->for('test', function ($job) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 110: public function testRateLimitedJobsCanBeSkippedOnLimitReached() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 122: public function testJobsCanHaveConditionalRateLimits() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 122: public function testJobsCanHaveConditionalRateLimits() - line 124: $rateLimiter = $this->app->make(RateLimiter::class); - line 126: $rateLimiter->for('test', function ($job) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 122: public function testJobsCanHaveConditionalRateLimits() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 141: public function testRateLimitedJobsCanBeSkippedOnLimitReachedAndReleasedAfter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 141: public function testRateLimitedJobsCanBeSkippedOnLimitReachedAndReleasedAfter() - line 143: $rateLimiter = $this->app->make(RateLimiter::class); - line 145: $rateLimiter->for('test', function ($job) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 141: public function testRateLimitedJobsCanBeSkippedOnLimitReachedAndReleasedAfter() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 153: public function testMiddlewareSerialization() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 153: public function testMiddlewareSerialization() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 245: public function testItCanLimitPerMinute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 245: public function testItCanLimitPerMinute() - line 247: Container::getInstance()->instance(RateLimiter::class, $limiter = new RateLimiter(new Repository(new ArrayStore))); - line 248: $limiter->for('test', fn () => Limit::perMinute(3)); - line 262: Carbon::setTestNow('2000-00-00 00:00:00.000'); - line 269: Carbon::setTestNow(now()->addSeconds(1)); - line 276: Carbon::setTestNow('2000-00-00 00:00:59.999'); - line 282: Carbon::setTestNow('2000-00-00 00:01:00.000'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 289: public function testItCanLimitPerSecond() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 289: public function testItCanLimitPerSecond() - line 291: Container::getInstance()->instance(RateLimiter::class, $limiter = new RateLimiter(new Repository(new ArrayStore))); - line 292: $limiter->for('test', fn () => Limit::perSecond(3)); - line 306: Carbon::setTestNow('2000-00-00 00:00:00.000'); - line 313: Carbon::setTestNow(now()->addMilliseconds(100)); - line 320: Carbon::setTestNow('2000-00-00 00:00:00.999'); - line 326: Carbon::setTestNow('2000-00-00 00:00:01.000'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Queue/RateLimitedWithRedisTest.php - Test @ line 41: public function testUnlimitedJobsAreExecuted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 41: public function testUnlimitedJobsAreExecuted() - line 43: $rateLimiter = $this->app->make(RateLimiter::class); - line 47: $rateLimiter->for($testJob->key, function ($job) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 41: public function testUnlimitedJobsAreExecuted() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 55: public function testRateLimitedJobsAreNotExecutedOnLimitReached() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 55: public function testRateLimitedJobsAreNotExecutedOnLimitReached() - line 57: $rateLimiter = $this->app->make(RateLimiter::class); - line 61: $rateLimiter->for($testJob->key, function ($job) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 55: public function testRateLimitedJobsAreNotExecutedOnLimitReached() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 69: public function testRateLimitedJobsCanBeSkippedOnLimitReached() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 69: public function testRateLimitedJobsCanBeSkippedOnLimitReached() - line 71: $rateLimiter = $this->app->make(RateLimiter::class); - line 75: $rateLimiter->for($testJob->key, function ($job) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 69: public function testRateLimitedJobsCanBeSkippedOnLimitReached() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 83: public function testJobsCanHaveConditionalRateLimits() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 83: public function testJobsCanHaveConditionalRateLimits() - line 85: $rateLimiter = $this->app->make(RateLimiter::class); - line 89: $rateLimiter->for($adminJob->key, function ($job) { - line 102: $rateLimiter->for($nonAdminJob->key, function ($job) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 83: public function testJobsCanHaveConditionalRateLimits() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 114: public function testMiddlewareSerialization() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 114: public function testMiddlewareSerialization() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Queue/RedisQueueTest.php - Test @ line 67: public function testExpiredJobsArePopped($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 67: public function testExpiredJobsArePopped($driver) - line 70: $this->setQueue($driver, $default); - line 79: $this->queue->later(1000, $jobs[0]); - line 80: $this->queue->later(-200, $jobs[1]); - line 81: $this->queue->later(-300, $jobs[2]); - line 82: $this->queue->later(-100, $jobs[3]); - line 84: $this->assertEquals($jobs[2], unserialize(json_decode($this->queue->pop()->getRawBody())->data->command)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 100: public function testBlockingPop($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 100: public function testBlockingPop($driver) - line 102: $this->tearDownRedis(); - line 106: $this->setUpRedis(); - line 107: $this->setQueue($driver, $default, null, 60, 10); - line 108: $this->assertEquals(12, unserialize(json_decode($this->queue->pop()->getRawBody())->data->command)->i); - line 110: $this->setUpRedis(); - line 111: $this->setQueue('phpredis', $default); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 141: public function testPopProperlyPopsJobOffOfRedis($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 141: public function testPopProperlyPopsJobOffOfRedis($driver) - line 144: $this->setQueue($driver, $default); - line 148: $this->queue->push($job); - line 151: $before = $this->currentTime(); - line 153: $redisJob = $this->queue->pop(); - line 154: $after = $this->currentTime(); - line 156: $this->assertEquals($job, unserialize(json_decode($redisJob->getRawBody())->data->command)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 176: public function testPopProperlyPopsDelayedJobOffOfRedis($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 176: public function testPopProperlyPopsDelayedJobOffOfRedis($driver) - line 179: $this->setQueue($driver, $default); - line 182: $this->queue->later(-10, $job); - line 185: $before = $this->currentTime(); - line 186: $this->assertEquals($job, unserialize(json_decode($this->queue->pop()->getRawBody())->data->command)); - line 187: $after = $this->currentTime(); - line 190: $this->assertEquals(1, $this->redis[$driver]->connection()->zcard("queues:$default:reserved")); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 203: public function testPopPopsDelayedJobOffOfRedisWhenExpireNull($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 203: public function testPopPopsDelayedJobOffOfRedisWhenExpireNull($driver) - line 206: $this->setQueue($driver, $default, null, null); - line 210: $this->queue->later(-10, $job); - line 212: $this->container->shouldHaveReceived('bound')->with('events')->twice(); - line 215: $before = $this->currentTime(); - line 216: $this->assertEquals($job, unserialize(json_decode($this->queue->pop()->getRawBody())->data->command)); - line 217: $after = $this->currentTime(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 233: public function testBlockingPopProperlyPopsJobOffOfRedis($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 233: public function testBlockingPopProperlyPopsJobOffOfRedis($driver) - line 236: $this->setQueue($driver, $default, null, 60, 5); - line 240: $this->queue->push($job); - line 244: $redisJob = $this->queue->pop(); - line 247: $this->assertEquals($job, unserialize(json_decode($redisJob->getReservedJob())->data->command)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 254: public function testBlockingPopProperlyPopsExpiredJobs($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 254: public function testBlockingPopProperlyPopsExpiredJobs($driver) - line 256: Str::createUuidsUsing(function () { - line 261: $this->setQueue($driver, $default, null, 60, 5); - line 268: $this->queue->later(-200, $jobs[0]); - line 269: $this->queue->later(-200, $jobs[1]); - line 271: $this->assertEquals($jobs[0], unserialize(json_decode($this->queue->pop()->getRawBody())->data->command)); - line 272: $this->assertEquals($jobs[1], unserialize(json_decode($this->queue->pop()->getRawBody())->data->command)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 285: public function testNotExpireJobsWhenExpireNull($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 285: public function testNotExpireJobsWhenExpireNull($driver) - line 288: $this->setQueue($driver, $default, null, null); - line 292: $this->queue->push($failed); - line 293: $this->container->shouldHaveReceived('bound')->with('events')->twice(); - line 295: $beforeFailPop = $this->currentTime(); - line 296: $this->queue->pop(); - line 297: $afterFailPop = $this->currentTime(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 334: public function testExpireJobsWhenExpireSet($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 334: public function testExpireJobsWhenExpireSet($driver) - line 337: $this->setQueue($driver, $default, null, 30); - line 341: $this->queue->push($job); - line 342: $this->container->shouldHaveReceived('bound')->with('events')->twice(); - line 345: $before = $this->currentTime(); - line 346: $this->assertEquals($job, unserialize(json_decode($this->queue->pop()->getRawBody())->data->command)); - line 347: $after = $this->currentTime(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 363: public function testRelease($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 363: public function testRelease($driver) - line 366: $this->setQueue($driver, $default); - line 370: $this->queue->push($job); - line 374: $redisJob = $this->queue->pop(); - line 375: $before = $this->currentTime(); - line 376: $redisJob->release(1000); - line 377: $after = $this->currentTime(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 404: public function testReleaseInThePast($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 404: public function testReleaseInThePast($driver) - line 407: $this->setQueue($driver, $default); - line 409: $this->queue->push($job); - line 412: $redisJob = $this->queue->pop(); - line 413: $redisJob->release(-3); - line 415: $this->assertInstanceOf(RedisJob::class, $this->queue->pop()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 404: public function testReleaseInThePast($driver) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 422: public function testDelete($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 422: public function testDelete($driver) - line 425: $this->setQueue($driver, $default); - line 428: $this->queue->push($job); - line 431: $redisJob = $this->queue->pop(); - line 433: $redisJob->delete(); - line 435: $this->assertEquals(0, $this->redis[$driver]->connection()->zcard("queues:$default:delayed")); - line 436: $this->assertEquals(0, $this->redis[$driver]->connection()->zcard("queues:$default:reserved")); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 446: public function testClear($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 446: public function testClear($driver) - line 449: $this->setQueue($driver, $default); - line 454: $this->queue->push($job1); - line 455: $this->queue->push($job2); - line 457: $this->assertEquals(2, $this->queue->clear(null)); - line 458: $this->assertEquals(0, $this->queue->size()); - line 459: $this->assertEquals(0, $this->redis[$driver]->connection()->llen('queues:default:notify')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 466: public function testSize($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 466: public function testSize($driver) - line 469: $this->setQueue($driver, $default); - line 470: $this->assertEquals(0, $this->queue->size()); - line 471: $this->queue->push(new RedisQueueIntegrationTestJob(1)); - line 472: $this->assertEquals(1, $this->queue->size()); - line 473: $this->queue->later(60, new RedisQueueIntegrationTestJob(2)); - line 474: $this->assertEquals(2, $this->queue->size()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 487: public function testPushJobQueueingAndJobQueuedEvents($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 487: public function testPushJobQueueingAndJobQueuedEvents($driver) - line 489: $events = m::mock(Dispatcher::class); - line 490: $events->shouldReceive('dispatch')->withArgs(function (JobQueueing $jobQueuing) { - line 495: $events->shouldReceive('dispatch')->withArgs(function (JobQueued $jobQueued) { - line 508: $queue->setContainer($container); - line 510: $queue->push(new RedisQueueIntegrationTestJob(5)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 489: $events = m::mock(Dispatcher::class); - line 502: $container = m::mock(Container::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 487: public function testPushJobQueueingAndJobQueuedEvents($driver) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 517: public function testBulkJobQueuedEvent($driver) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 517: public function testBulkJobQueuedEvent($driver) - line 519: $events = m::mock(Dispatcher::class); - line 520: $events->shouldReceive('dispatch')->with(m::type(JobQueueing::class))->andReturnNull()->times(3); - line 521: $events->shouldReceive('dispatch')->with(m::type(JobQueued::class))->andReturnNull()->times(3); - line 529: $queue->setContainer($container); - line 531: $queue->bulk([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 519: $events = m::mock(Dispatcher::class); - line 523: $container = m::mock(Container::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 517: public function testBulkJobQueuedEvent($driver) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Queue/SkipIfBatchCancelledTest.php - Test @ line 17: public function testJobsAreSkippedOnceBatchIsCancelled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 17: public function testJobsAreSkippedOnceBatchIsCancelled() - line 19: [$beforeCancelled] = (new SkipCancelledBatchableTestJob())->withFakeBatch(); - line 20: [$afterCancelled] = (new SkipCancelledBatchableTestJob())->withFakeBatch( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 17: public function testJobsAreSkippedOnceBatchIsCancelled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Queue/SkipMiddlewareTest.php - Test @ line 17: public function testJobIsSkippedWhenConditionIsTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 17: public function testJobIsSkippedWhenConditionIsTrue() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 17: public function testJobIsSkippedWhenConditionIsTrue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 24: public function testJobIsSkippedWhenConditionIsTrueUsingClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 24: public function testJobIsSkippedWhenConditionIsTrueUsingClosure() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 24: public function testJobIsSkippedWhenConditionIsTrueUsingClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 31: public function testJobIsNotSkippedWhenConditionIsFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 31: public function testJobIsNotSkippedWhenConditionIsFalse() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 31: public function testJobIsNotSkippedWhenConditionIsFalse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 38: public function testJobIsNotSkippedWhenConditionIsFalseUsingClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 38: public function testJobIsNotSkippedWhenConditionIsFalseUsingClosure() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 38: public function testJobIsNotSkippedWhenConditionIsFalseUsingClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 45: public function testJobIsNotSkippedWhenConditionIsTrueWithUnless() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 45: public function testJobIsNotSkippedWhenConditionIsTrueWithUnless() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 45: public function testJobIsNotSkippedWhenConditionIsTrueWithUnless() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 52: public function testJobIsNotSkippedWhenConditionIsTrueWithUnlessUsingClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 52: public function testJobIsNotSkippedWhenConditionIsTrueWithUnlessUsingClosure() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 52: public function testJobIsNotSkippedWhenConditionIsTrueWithUnlessUsingClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 59: public function testJobIsSkippedWhenConditionIsFalseWithUnless() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 59: public function testJobIsSkippedWhenConditionIsFalseWithUnless() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 59: public function testJobIsSkippedWhenConditionIsFalseWithUnless() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 66: public function testJobIsSkippedWhenConditionIsFalseWithUnlessUsingClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 66: public function testJobIsSkippedWhenConditionIsFalseWithUnlessUsingClosure() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 66: public function testJobIsSkippedWhenConditionIsFalseWithUnlessUsingClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Queue/ThrottlesExceptionsTest.php - Test @ line 21: public function testCircuitIsOpenedForJobErrors() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 21: public function testCircuitIsOpenedForJobErrors() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 21: public function testCircuitIsOpenedForJobErrors() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 28: public function testCircuitStaysClosedForSuccessfulJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 28: public function testCircuitStaysClosedForSuccessfulJobs() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 28: public function testCircuitStaysClosedForSuccessfulJobs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 35: public function testCircuitResetsAfterSuccess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 35: public function testCircuitResetsAfterSuccess() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 35: public function testCircuitResetsAfterSuccess() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 44: public function testCircuitCanSkipJob() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 44: public function testCircuitCanSkipJob() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 44: public function testCircuitCanSkipJob() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 49: public function testCircuitCanFailJob() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 49: public function testCircuitCanFailJob() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testCircuitCanFailJob() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 158: public function testItCanLimitPerMinute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 158: public function testItCanLimitPerMinute() - line 181: Carbon::setTestNow('2000-00-00 00:00:00.000'); - line 189: Carbon::setTestNow(now()->addSeconds(1)); - line 197: Carbon::setTestNow('2000-00-00 00:00:59.999'); - line 204: Carbon::setTestNow('2000-00-00 00:01:00.000'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 212: public function testItCanLimitPerSecond() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 212: public function testItCanLimitPerSecond() - line 235: Carbon::setTestNow('2000-00-00 00:00:00.000'); - line 243: Carbon::setTestNow(now()->addMilliseconds(100)); - line 251: Carbon::setTestNow('2000-00-00 00:00:00.999'); - line 258: Carbon::setTestNow('2000-00-00 00:00:01.000'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 266: public function testLimitingWithDefaultValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 266: public function testLimitingWithDefaultValues() - line 289: Carbon::setTestNow('2000-00-00 00:00:00.000'); - line 297: Carbon::setTestNow(now()->addSeconds(1)); - line 305: Carbon::setTestNow('2000-00-00 00:09:59.999'); - line 312: Carbon::setTestNow('2000-00-00 00:10:00.000'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 320: public function testReportingExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 320: public function testReportingExceptions() - line 325: ->with(m::type(RuntimeException::class)); - line 340: $middleware->report(); - line 343: $middleware->report(fn () => true); - line 346: $middleware->report(fn () => false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 320: public function testReportingExceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 350: public function testUsesJobClassNameForCacheKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 350: public function testUsesJobClassNameForCacheKey() - line 352: $rateLimiter = $this->mock(RateLimiter::class); - line 381: $middleware = new ThrottlesExceptions(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 352: $rateLimiter = $this->mock(RateLimiter::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 350: public function testUsesJobClassNameForCacheKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 387: public function testUsesDisplayNameForCacheKeyWhenAvailable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 387: public function testUsesDisplayNameForCacheKeyWhenAvailable() - line 389: $rateLimiter = $this->mock(RateLimiter::class); - line 423: $middleware = new ThrottlesExceptions(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 389: $rateLimiter = $this->mock(RateLimiter::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 387: public function testUsesDisplayNameForCacheKeyWhenAvailable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Queue/ThrottlesExceptionsWithRedisTest.php - Test @ line 42: public function testCircuitIsOpenedForJobErrors() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 42: public function testCircuitIsOpenedForJobErrors() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 49: public function testCircuitStaysClosedForSuccessfulJobs() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testCircuitStaysClosedForSuccessfulJobs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 56: public function testCircuitResetsAfterSuccess() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 56: public function testCircuitResetsAfterSuccess() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 124: public function testReportingExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 124: public function testReportingExceptions() - line 129: ->with(m::type(RuntimeException::class)); - line 144: $middleware->report(); - line 147: $middleware->report(fn () => true); - line 150: $middleware->report(fn () => false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 124: public function testReportingExceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Queue/UniqueJobTest.php - Test @ line 34: public function testUniqueJobsAreNotDispatched() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 34: public function testUniqueJobsAreNotDispatched() - line 36: Bus::fake(); - line 39: $this->runQueueWorkerCommand(['--once' => true]); - line 43: $this->app->get(Cache::class)->lock($this->getLockKey(UniqueTestJob::class), 10)->get() - line 46: Bus::assertDispatchedTimes(UniqueTestJob::class); - line 48: $this->runQueueWorkerCommand(['--once' => true]); - line 52: $this->app->get(Cache::class)->lock($this->getLockKey(UniqueTestJob::class), 10)->get() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 64: public function testLockIsReleasedForSuccessfulJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 64: public function testLockIsReleasedForSuccessfulJobs() - line 66: UniqueTestJob::$handled = false; - line 68: $this->runQueueWorkerCommand(['--once' => true]); - line 71: $this->assertTrue($this->app->get(Cache::class)->lock($this->getLockKey($job), 10)->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 74: public function testLockIsReleasedForFailedJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 74: public function testLockIsReleasedForFailedJobs() - line 78: $this->expectException(Exception::class); - line 84: $this->assertTrue($this->app->get(Cache::class)->lock($this->getLockKey($job), 10)->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 88: public function testLockIsNotReleasedForJobRetries() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 88: public function testLockIsNotReleasedForJobRetries() - line 90: $this->markTestSkippedWhenUsingSyncQueueDriver(); - line 92: UniqueTestRetryJob::$handled = false; - line 96: $this->assertFalse($this->app->get(Cache::class)->lock($this->getLockKey($job), 10)->get()); - line 98: $this->runQueueWorkerCommand(['--once' => true]); - line 101: $this->assertFalse($this->app->get(Cache::class)->lock($this->getLockKey($job), 10)->get()); - line 104: $this->runQueueWorkerCommand(['--once' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 110: public function testLockIsNotReleasedForJobReleases() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 110: public function testLockIsNotReleasedForJobReleases() - line 112: $this->markTestSkippedWhenUsingSyncQueueDriver(); - line 114: UniqueTestReleasedJob::$handled = false; - line 117: $this->assertFalse($this->app->get(Cache::class)->lock($this->getLockKey($job), 10)->get()); - line 119: $this->runQueueWorkerCommand(['--once' => true]); - line 122: $this->assertFalse($this->app->get(Cache::class)->lock($this->getLockKey($job), 10)->get()); - line 125: $this->runQueueWorkerCommand(['--once' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 131: public function testLockCanBeReleasedBeforeProcessing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 131: public function testLockCanBeReleasedBeforeProcessing() - line 133: $this->markTestSkippedWhenUsingSyncQueueDriver(); - line 135: UniqueUntilStartTestJob::$handled = false; - line 139: $this->assertFalse($this->app->get(Cache::class)->lock($this->getLockKey($job), 10)->get()); - line 141: $this->runQueueWorkerCommand(['--once' => true]); - line 144: $this->assertTrue($this->app->get(Cache::class)->lock($this->getLockKey($job), 10)->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 147: public function testLockIsReleasedOnModelNotFoundException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 147: public function testLockIsReleasedOnModelNotFoundException() - line 152: $user = UserFactory::new()->create(); - line 155: $this->expectException(ModelNotFoundException::class); - line 158: $user->delete(); - line 160: $this->runQueueWorkerCommand(['--once' => true]); - line 165: $this->assertTrue($this->app->get(Cache::class)->lock($this->getLockKey($job), 10)->get()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 174: public function testLockUsesDisplayNameWhenAvailable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 174: public function testLockUsesDisplayNameWhenAvailable() - line 178: $lockKey = 'laravel_unique_job:App\\Actions\\UniqueTestAction:'; - line 181: $this->runQueueWorkerCommand(['--once' => true]); - line 185: $this->app->get(Cache::class)->lock($lockKey, 10)->get() - line 188: Bus::assertDispatchedTimes(UniqueTestJobWithDisplayName::class); - line 190: $this->runQueueWorkerCommand(['--once' => true]); - line 194: $this->app->get(Cache::class)->lock($lockKey, 10)->get() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Queue/UniqueUntilProcessingJobTest.php - Test @ line 26: public function testShouldBeUniqueUntilProcessingReleasesLockWhenJobIsReleasedByAMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 26: public function testShouldBeUniqueUntilProcessingReleasesLockWhenJobIsReleasedByAMiddleware() - line 27: { - line 30: $lockKey = DB::table('cache_locks')->orderBy('id')->first()->key; - line 32: $this->runQueueWorkerCommand(['--once' => true]); - line 34: $lockKey = DB::table('cache_locks')->first()->key ?? null; - line 36: $this->assertDatabaseCount('jobs', 0); - line 40: $lockKey = DB::table('cache_locks')->first()->key; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Queue/WithoutOverlappingJobsTest.php - Test @ line 17: public function testNonOverlappingJobsAreExecuted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 17: public function testNonOverlappingJobsAreExecuted() - line 22: $job = m::mock(Job::class); - line 29: $instance->call($job, [ - line 33: $lockKey = (new WithoutOverlapping)->getLockKey($command); - line 36: $this->assertTrue($this->app->get(Cache::class)->lock($lockKey, 10)->acquire()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 22: $job = m::mock(Job::class); - Test @ line 39: public function testLockIsReleasedOnJobExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 39: public function testLockIsReleasedOnJobExceptions() - line 44: $job = m::mock(Job::class); - line 50: $this->expectException(Exception::class); - line 53: $instance->call($job, [ - line 57: $lockKey = (new WithoutOverlapping)->getLockKey($command); - line 60: $this->assertTrue($this->app->get(Cache::class)->lock($lockKey, 10)->acquire()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 44: $job = m::mock(Job::class); - Test @ line 64: public function testOverlappingJobsAreReleased() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 64: public function testOverlappingJobsAreReleased() - line 69: $lockKey = (new WithoutOverlapping)->getLockKey($command = new OverlappingTestJob); - line 70: $this->app->get(Cache::class)->lock($lockKey, 10)->acquire(); - line 79: $instance->call($job, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 72: $job = m::mock(Job::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 64: public function testOverlappingJobsAreReleased() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 86: public function testOverlappingJobsCanBeSkipped() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 86: public function testOverlappingJobsCanBeSkipped() - line 91: $lockKey = (new WithoutOverlapping)->getLockKey($command = new SkipOverlappingTestJob); - line 92: $this->app->get(Cache::class)->lock($lockKey, 10)->acquire(); - line 101: $instance->call($job, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 94: $job = m::mock(Job::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 86: public function testOverlappingJobsCanBeSkipped() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 108: public function testCanShareKeyAcrossJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 108: public function testCanShareKeyAcrossJobs() - line 113: $lockKey = (new WithoutOverlapping)->shared()->getLockKey(new OverlappingTestJobWithSharedKeyTwo); - line 114: $this->app->get(Cache::class)->lock($lockKey, 10)->acquire(); - line 123: $instance->call($job, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 116: $job = m::mock(Job::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 108: public function testCanShareKeyAcrossJobs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 130: public function testGetLock() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 130: public function testGetLock() - line 136: (new WithoutOverlapping('key'))->getLockKey($job) - line 141: (new WithoutOverlapping('key'))->shared()->getLockKey($job) - line 146: (new WithoutOverlapping('key'))->withPrefix('prefix:')->getLockKey($job) - line 151: (new WithoutOverlapping('key'))->withPrefix('prefix:')->shared()->getLockKey($job) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 155: public function testGetLockUsesDisplayName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 155: public function testGetLockUsesDisplayName() - line 161: (new WithoutOverlapping('key'))->getLockKey($job) - line 166: (new WithoutOverlapping('key'))->shared()->getLockKey($job) - line 171: (new WithoutOverlapping('key'))->withPrefix('prefix:')->getLockKey($job) - line 176: (new WithoutOverlapping('key'))->withPrefix('prefix:')->shared()->getLockKey($job) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Queue/WorkCommandTest.php - Test @ line 40: public function testRunningOneJob() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 40: public function testRunningOneJob() - line 41: { - line 42: Queue::push(new FirstJob); - line 43: Queue::push(new SecondJob); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 55: public function testRunTimestampOutputWithDefaultAppTimezone() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 55: public function testRunTimestampOutputWithDefaultAppTimezone() - line 58: $this->travelTo(Carbon::create(2023, 1, 18, 10, 10, 11)); - line 59: Queue::push(new FirstJob); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 55: public function testRunTimestampOutputWithDefaultAppTimezone() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 68: public function testRunTimestampOutputWithDifferentLogTimezone() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 68: public function testRunTimestampOutputWithDifferentLogTimezone() - line 72: $this->travelTo(Carbon::create(2023, 1, 18, 10, 10, 11)); - line 73: Queue::push(new FirstJob); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 68: public function testRunTimestampOutputWithDifferentLogTimezone() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 82: public function testRunTimestampOutputWithSameAppDefaultAndQueueLogDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 82: public function testRunTimestampOutputWithSameAppDefaultAndQueueLogDefault() - line 86: $this->travelTo(Carbon::create(2023, 1, 18, 10, 10, 11)); - line 87: Queue::push(new FirstJob); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 82: public function testRunTimestampOutputWithSameAppDefaultAndQueueLogDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 96: public function testDaemon() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 96: public function testDaemon() - line 97: { - line 98: Queue::push(new FirstJob); - line 99: Queue::push(new SecondJob); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 112: public function testMemoryExceeded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 112: public function testMemoryExceeded() - line 113: { - line 114: Queue::push(new FirstJob); - line 115: Queue::push(new SecondJob); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 129: public function testMaxJobsExceeded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 129: public function testMaxJobsExceeded() - line 131: $this->markTestSkippedWhenUsingQueueDrivers(['redis', 'beanstalkd']); - line 133: Queue::push(new FirstJob); - line 134: Queue::push(new SecondJob); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 148: public function testMaxTimeExceeded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 148: public function testMaxTimeExceeded() - line 150: $this->markTestSkippedWhenUsingQueueDrivers(['redis', 'beanstalkd']); - line 152: Queue::push(new ThirdJob); - line 153: Queue::push(new FirstJob); - line 154: Queue::push(new SecondJob); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 169: public function testMemoryExitCode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 169: public function testMemoryExitCode() - line 171: $this->markTestSkippedWhenUsingQueueDrivers(['redis', 'beanstalkd']); - line 173: Worker::$memoryExceededExitCode = 0; - line 175: Queue::push(new FirstJob); - line 176: Queue::push(new SecondJob); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 190: public function testDisableLastRestartCheck() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 190: public function testDisableLastRestartCheck() - line 192: $this->markTestSkippedWhenUsingQueueDrivers(['redis', 'beanstalkd']); - line 197: $cache->shouldNotReceive('get')->with('illuminate:queue:restart'); - line 204: $this->app->instance('cache', $cacheManager); - line 206: Queue::push(new FirstJob); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 196: $cache = m::mock(Repository::class); - line 200: $cacheManager = m::mock(CacheManager::class); - Test @ line 219: public function testDisablePauseQueueCheck() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 219: public function testDisablePauseQueueCheck() - line 221: $this->markTestSkippedWhenUsingQueueDrivers(['redis', 'beanstalkd']); - line 228: $cache->shouldNotReceive('get')->with(m::pattern('/^illuminate:queue:paused:/'), false); - line 234: $this->app->instance('cache', $cacheManager); - line 236: Queue::push(new FirstJob); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 225: $cache = m::mock(Repository::class); - line 230: $cacheManager = m::mock(CacheManager::class); - Test @ line 249: public function testFailedJobListenerOnlyRunsOnce() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 249: public function testFailedJobListenerOnlyRunsOnce() - line 251: $this->markTestSkippedWhenUsingQueueDrivers(['redis', 'beanstalkd']); - line 253: Exceptions::fake(); - line 256: $this->withoutMockingConsoleOutput()->artisan('queue:work', ['--once' => true, '--sleep' => 0]); - line 259: $this->withoutMockingConsoleOutput()->artisan('queue:work', ['--once' => true]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Redis/PredisConnectionTest.php - Test @ line 17: public function testPredisCanEmitEventWithArrayableArgumentObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 17: public function testPredisCanEmitEventWithArrayableArgumentObject() - line 20: return $this->markTestSkipped('Skipped tests on predis/predis dependency without '.SearchArguments::class); - line 26: $parameters = ['test', '*', (new SearchArguments())->dialect('3')->withScores()]; - line 29: $predis->setEventDispatcher($event); - line 31: $client->shouldReceive($command)->with(...$parameters)->andReturnTrue(); - line 33: $this->assertTrue($predis->command($command, $parameters)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 28: $predis = new PredisConnection($client = m::mock(Client::class)); ❌ tests/Integration/Routing/CompiledRouteCollectionTest.php - Test @ line 50: public function testRouteCollectionCanAddRoute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 50: public function testRouteCollectionCanAddRoute() - line 52: $this->routeCollection->add($this->newRoute('GET', 'foo', [ - line 57: $this->assertCount(1, $this->collection()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 71: public function testRouteCollectionCanRetrieveByName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 71: public function testRouteCollectionCanRetrieveByName() - line 73: $this->routeCollection->add($routeIndex = $this->newRoute('GET', 'foo/index', [ - line 78: $routes = $this->collection(); - line 80: $this->assertSame('route_name', $routeIndex->getName()); - line 81: $this->assertSame('route_name', $routes->getByName('route_name')->getName()); - line 82: $this->assertEquals($routeIndex, $routes->getByName('route_name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 85: public function testRouteCollectionCanRetrieveByAction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 85: public function testRouteCollectionCanRetrieveByAction() - line 87: $this->routeCollection->add($routeIndex = $this->newRoute('GET', 'foo/index', $action = [ - line 91: $route = $this->collection()->getByAction('FooController@index'); - line 93: $this->assertSame($action, Arr::except($routeIndex->getAction(), 'as')); - line 94: $this->assertSame($action, Arr::except($route->getAction(), 'as')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 97: public function testCompiledAndNonCompiledUrlResolutionHasSamePrecedenceForActions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 97: public function testCompiledAndNonCompiledUrlResolutionHasSamePrecedenceForActions() - line 100: $this->app->useBootstrapPath(__DIR__.'/Fixtures'); - line 108: $app['router']->getRoutes()->refreshActionLookups(); - line 110: $this->assertSame('foo/{bar}', $app['router']->getRoutes()->getByAction('FooController@show')->uri); - line 115: $this->assertSame('foo/{bar}', $app['router']->getRoutes()->getByAction('FooController@show')->uri); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_SUPPRESSED_UNLINK] Evidence: - line 99: @unlink(__DIR__.'/Fixtures/cache/routes-v7.php'); - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 99: @unlink(__DIR__.'/Fixtures/cache/routes-v7.php'); - line 117: unlink(__DIR__.'/Fixtures/cache/routes-v7.php'); - Test @ line 120: public function testCompiledAndNonCompiledUrlResolutionHasSamePrecedenceForNames() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 120: public function testCompiledAndNonCompiledUrlResolutionHasSamePrecedenceForNames() - line 122: $this->router->get('/foo/{bar}', ['FooController', 'show'])->name('foo.show'); - line 123: $this->router->get('/foo/{bar}/{baz}', ['FooController', 'show'])->name('foo.show'); - line 124: $this->router->getRoutes()->refreshNameLookups(); - line 126: $this->assertSame('foo/{bar}', $this->router->getRoutes()->getByName('foo.show')->uri); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 129: public function testRouteCollectionCanGetIterator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 129: public function testRouteCollectionCanGetIterator() - line 131: $this->routeCollection->add($this->newRoute('GET', 'foo/index', [ - line 136: $this->assertInstanceOf(ArrayIterator::class, $this->collection()->getIterator()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 129: public function testRouteCollectionCanGetIterator() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 139: public function testRouteCollectionCanGetIteratorWhenEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 139: public function testRouteCollectionCanGetIteratorWhenEmpty() - line 141: $routes = $this->collection(); - line 144: $this->assertInstanceOf(ArrayIterator::class, $routes->getIterator()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 147: public function testRouteCollectionCanGetIteratorWhenRoutesAreAdded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 147: public function testRouteCollectionCanGetIteratorWhenRoutesAreAdded() - line 149: $this->routeCollection->add($routeIndex = $this->newRoute('GET', 'foo/index', [ - line 154: $routes = $this->collection(); - line 158: $this->routeCollection->add($routeShow = $this->newRoute('GET', 'bar/show', [ - line 163: $routes = $this->collection(); - line 167: $this->assertInstanceOf(ArrayIterator::class, $routes->getIterator()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 147: public function testRouteCollectionCanGetIteratorWhenRoutesAreAdded() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 170: public function testRouteCollectionCanHandleSameRoute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 170: public function testRouteCollectionCanHandleSameRoute() - line 172: $this->routeCollection->add($routeIndex = $this->newRoute('GET', 'foo/index', [ - line 177: $routes = $this->collection(); - line 182: $this->routeCollection->add($routeIndex); - line 184: $routes = $this->collection(); - line 189: $this->routeCollection->add($this->newRoute('GET', 'bar/show', [ - line 194: $routes = $this->collection(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 170: public function testRouteCollectionCanHandleSameRoute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 199: public function testRouteCollectionCanGetAllRoutes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 199: public function testRouteCollectionCanGetAllRoutes() - line 201: $this->routeCollection->add($routeIndex = $this->newRoute('GET', 'foo/index', [ - line 205: $this->routeCollection->add($routeShow = $this->newRoute('GET', 'foo/show', [ - line 209: $this->routeCollection->add($routeNew = $this->newRoute('POST', 'bar', [ - line 219: $this->assertEquals($allRoutes, $this->collection()->getRoutes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 222: public function testRouteCollectionCanGetRoutesByName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 222: public function testRouteCollectionCanGetRoutesByName() - line 225: 'foo_index' => $this->newRoute('GET', 'foo/index', [ - line 239: $this->routeCollection->add($routesByName['foo_index']); - line 240: $this->routeCollection->add($routesByName['foo_show']); - line 241: $this->routeCollection->add($routesByName['bar_create']); - line 243: $this->assertEquals($routesByName, $this->collection()->getRoutesByName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 246: public function testRouteCollectionCanGetRoutesByMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 246: public function testRouteCollectionCanGetRoutesByMethod() - line 249: 'foo_index' => $this->newRoute('GET', 'foo/index', [ - line 263: $this->routeCollection->add($routes['foo_index']); - line 264: $this->routeCollection->add($routes['foo_show']); - line 265: $this->routeCollection->add($routes['bar_create']); - line 279: ], $this->collection()->getRoutesByMethod()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 282: public function testRouteCollectionCleansUpOverwrittenRoutes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 282: public function testRouteCollectionCleansUpOverwrittenRoutes() - line 285: $routeA = $this->newRoute('GET', 'product', ['controller' => 'View@view', 'as' => 'routeA']); - line 286: $routeB = $this->newRoute('GET', 'product', ['controller' => 'OverwrittenView@view', 'as' => 'overwrittenRouteA']); - line 288: $this->routeCollection->add($routeA); - line 289: $this->routeCollection->add($routeB); - line 292: $this->assertEquals($routeA, $this->routeCollection->getByName('routeA')); - line 293: $this->assertEquals($routeA, $this->routeCollection->getByAction('View@view')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 307: public function testMatchingThrowsNotFoundExceptionWhenRouteIsNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 307: public function testMatchingThrowsNotFoundExceptionWhenRouteIsNotFound() - line 309: $this->routeCollection->add($this->newRoute('GET', '/', ['uses' => 'FooController@index'])); - line 311: $this->expectException(NotFoundHttpException::class); - line 313: $this->collection()->match(Request::create('/foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 307: public function testMatchingThrowsNotFoundExceptionWhenRouteIsNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 316: public function testMatchingThrowsMethodNotAllowedHttpExceptionWhenMethodIsNotAllowed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 316: public function testMatchingThrowsMethodNotAllowedHttpExceptionWhenMethodIsNotAllowed() - line 318: $this->routeCollection->add($this->newRoute('GET', '/foo', ['uses' => 'FooController@index'])); - line 320: $this->expectException(MethodNotAllowedHttpException::class); - line 322: $this->collection()->match(Request::create('/foo', 'POST')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 316: public function testMatchingThrowsMethodNotAllowedHttpExceptionWhenMethodIsNotAllowed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 325: public function testMatchingThrowsExceptionWhenMethodIsNotAllowedWhileSameRouteIsAddedDynamically() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 325: public function testMatchingThrowsExceptionWhenMethodIsNotAllowedWhileSameRouteIsAddedDynamically() - line 327: $this->routeCollection->add($this->newRoute('GET', '/', ['uses' => 'FooController@index'])); - line 329: $routes = $this->collection(); - line 331: $routes->add($this->newRoute('POST', '/', ['uses' => 'FooController@index'])); - line 333: $this->expectException(MethodNotAllowedHttpException::class); - line 335: $routes->match(Request::create('/', 'PUT')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 325: public function testMatchingThrowsExceptionWhenMethodIsNotAllowedWhileSameRouteIsAddedDynamically() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 338: public function testMatchingRouteWithSameDynamicallyAddedRouteAlwaysMatchesCachedOneFirst() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 338: public function testMatchingRouteWithSameDynamicallyAddedRouteAlwaysMatchesCachedOneFirst() - line 340: $this->routeCollection->add( - line 344: $routes = $this->collection(); - line 346: $routes->add($this->newRoute('GET', '/', ['uses' => 'FooController@index', 'as' => 'bar'])); - line 348: $this->assertSame('foo', $routes->match(Request::create('/', 'GET'))->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 351: public function testMatchingFindsRouteWithDifferentMethodDynamically() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 351: public function testMatchingFindsRouteWithDifferentMethodDynamically() - line 353: $this->routeCollection->add($this->newRoute('GET', '/foo', ['uses' => 'FooController@index'])); - line 355: $routes = $this->collection(); - line 357: $routes->add($route = $this->newRoute('POST', '/foo', ['uses' => 'FooController@index'])); - line 359: $this->assertSame($route, $routes->match(Request::create('/foo', 'POST'))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 362: public function testMatchingWildcardFromCompiledRoutesAlwaysTakesPrecedent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 362: public function testMatchingWildcardFromCompiledRoutesAlwaysTakesPrecedent() - line 364: $this->routeCollection->add( - line 369: $routes = $this->collection(); - line 371: $routes->add( - line 376: $this->assertSame('foo', $routes->match(Request::create('/foo', 'GET'))->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 379: public function testMatchingDynamicallyAddedRoutesTakePrecedenceOverFallbackRoutes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 379: public function testMatchingDynamicallyAddedRoutesTakePrecedenceOverFallbackRoutes() - line 381: $this->routeCollection->add($this->fallbackRoute(['uses' => 'FooController@index'])); - line 382: $this->routeCollection->add( - line 386: $routes = $this->collection(); - line 388: $routes->add($this->newRoute('GET', '/bar/{id}', ['uses' => 'FooController@index', 'as' => 'bar'])); - line 390: $this->assertSame('bar', $routes->match(Request::create('/bar/1', 'GET'))->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 393: public function testMatchingFallbackRouteCatchesAll() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 393: public function testMatchingFallbackRouteCatchesAll() - line 395: $this->routeCollection->add($this->fallbackRoute(['uses' => 'FooController@index', 'as' => 'fallback'])); - line 396: $this->routeCollection->add( - line 400: $routes = $this->collection(); - line 402: $routes->add($this->newRoute('GET', '/bar/{id}', ['uses' => 'FooController@index', 'as' => 'bar'])); - line 404: $this->assertSame('fallback', $routes->match(Request::create('/baz/1', 'GET'))->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 407: public function testMatchingCachedFallbackTakesPrecedenceOverDynamicFallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 407: public function testMatchingCachedFallbackTakesPrecedenceOverDynamicFallback() - line 409: $this->routeCollection->add($this->fallbackRoute(['uses' => 'FooController@index', 'as' => 'fallback'])); - line 411: $routes = $this->collection(); - line 413: $routes->add($this->fallbackRoute(['uses' => 'FooController@index', 'as' => 'dynamic_fallback'])); - line 415: $this->assertSame('fallback', $routes->match(Request::create('/baz/1', 'GET'))->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 418: public function testMatchingCachedFallbackTakesPrecedenceOverDynamicRouteWithWrongMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 418: public function testMatchingCachedFallbackTakesPrecedenceOverDynamicRouteWithWrongMethod() - line 420: $this->routeCollection->add($this->fallbackRoute(['uses' => 'FooController@index', 'as' => 'fallback'])); - line 422: $routes = $this->collection(); - line 424: $routes->add($this->newRoute('POST', '/bar/{id}', ['uses' => 'FooController@index', 'as' => 'bar'])); - line 426: $this->assertSame('fallback', $routes->match(Request::create('/bar/1', 'GET'))->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 429: public function testSlashPrefixIsProperlyHandled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 429: public function testSlashPrefixIsProperlyHandled() - line 431: $this->routeCollection->add($this->newRoute('GET', 'foo/bar', ['uses' => 'FooController@index', 'prefix' => '/'])); - line 433: $route = $this->collection()->getByAction('FooController@index'); - line 435: $this->assertSame('foo/bar', $route->uri()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 438: public function testRouteWithoutNamespaceIsFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 438: public function testRouteWithoutNamespaceIsFound() - line 440: $this->routeCollection->add($this->newRoute('GET', 'foo/bar', ['controller' => '\App\FooController'])); - line 442: $route = $this->collection()->getByAction('App\FooController'); - line 444: $this->assertSame('foo/bar', $route->uri()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 447: public function testGroupPrefixAndRoutePrefixAreProperlyHandled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 447: public function testGroupPrefixAndRoutePrefixAreProperlyHandled() - line 449: $this->routeCollection->add($this->newRoute('GET', 'foo/bar', ['uses' => 'FooController@index', 'prefix' => '{locale}'])->prefix('pre')); - line 451: $route = $this->collection()->getByAction('FooController@index'); - line 453: $this->assertSame('pre/{locale}', $route->getPrefix()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 456: public function testGroupGenerateNameForDuplicateRouteNamesThatEndWithDot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 456: public function testGroupGenerateNameForDuplicateRouteNamesThatEndWithDot() - line 458: $this->routeCollection->add($this->newRoute('GET', 'foo', ['uses' => 'FooController@index'])->name('foo.')); - line 459: $this->routeCollection->add($route = $this->newRoute('GET', 'bar', ['uses' => 'BarController@index'])->name('foo.')); - line 461: $routes = $this->collection(); - line 463: $this->assertSame('BarController@index', $routes->match(Request::create('/bar', 'GET'))->getAction()['uses']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 466: public function testRouteBindingsAreProperlySaved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 466: public function testRouteBindingsAreProperlySaved() - line 468: $this->routeCollection->add($this->newRoute('GET', 'posts/{post:slug}/show', [ - line 474: $route = $this->collection()->getByName('foo'); - line 476: $this->assertSame('profile/{user}/posts/{post}/show', $route->uri()); - line 477: $this->assertSame(['user' => 'username', 'post' => 'slug'], $route->bindingFields()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 480: public function testMatchingSlashedRoutes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 480: public function testMatchingSlashedRoutes() - line 482: $this->routeCollection->add( - line 486: $this->assertSame('foo', $this->collection()->match(Request::create('/foo/bar/'))->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 489: public function testMatchingUriWithQuery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 489: public function testMatchingUriWithQuery() - line 491: $this->routeCollection->add( - line 495: $this->assertSame('foo', $this->collection()->match(Request::create('/foo/bar/?foo=bar'))->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 498: public function testMatchingRootUri() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 498: public function testMatchingRootUri() - line 500: $this->routeCollection->add( - line 504: $this->assertSame('foo', $this->collection()->match(Request::create('http://example.com'))->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 507: public function testTrailingSlashIsTrimmedWhenMatchingCachedRoutes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 507: public function testTrailingSlashIsTrimmedWhenMatchingCachedRoutes() - line 509: $this->routeCollection->add( - line 516: $request->getPathInfo(); - line 518: $this->assertSame('foo', $this->collection()->match($request)->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 521: public function testRouteWithSamePathAndSameMethodButDiffDomainNameWithOptionsMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 521: public function testRouteWithSamePathAndSameMethodButDiffDomainNameWithOptionsMethod() - line 524: 'foo_domain' => $this->newRoute('GET', 'same/path', [ - line 540: $this->routeCollection->add($routes['foo_domain']); - line 541: $this->routeCollection->add($routes['bar_domain']); - line 542: $this->routeCollection->add($routes['no_domain']); - line 548: $this->assertSame($expectedMethods, $this->collection()->match( - line 552: $this->assertSame($expectedMethods, $this->collection()->match( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Routing/FallbackRouteTest.php - Test @ line 10: public function testBasicFallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 10: public function testBasicFallback() - line 12: Route::fallback(function () { - line 18: }); - line 20: $this->assertStringContainsString('one', $this->get('/one')->getContent()); - line 21: $this->assertStringContainsString('fallback', $this->get('/non-existing')->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 25: public function testFallbackWithPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 25: public function testFallbackWithPrefix() - line 27: Route::group(['prefix' => 'prefix'], function () { - line 35: }); - line 37: $this->assertStringContainsString('one', $this->get('/prefix/one')->getContent()); - line 38: $this->assertStringContainsString('fallback', $this->get('/prefix/non-existing')->getContent()); - line 39: $this->assertStringContainsString('fallback', $this->get('/prefix/non-existing/with/multiple/segments')->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 25: public function testFallbackWithPrefix() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 43: public function testFallbackWithWildcards() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 43: public function testFallbackWithWildcards() - line 45: Route::fallback(function () { - line 55: })->where('any', '.*'); - line 57: $this->assertStringContainsString('one', $this->get('/one')->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 67: public function testNoRoutes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 67: public function testNoRoutes() - line 69: Route::fallback(function () { - line 71: }); - line 73: $this->assertStringContainsString('fallback', $this->get('/non-existing')->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 77: public function testRespondWithNamedFallbackRoute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 77: public function testRespondWithNamedFallbackRoute() - line 81: })->name('testFallbackRoute'); - line 85: }); - line 87: $this->assertStringContainsString('fallback', $this->get('/non-existing')->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 77: public function testRespondWithNamedFallbackRoute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 91: public function testNoFallbacks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 91: public function testNoFallbacks() - line 95: }); - line 97: $this->assertStringContainsString('one', $this->get('/one')->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Routing/FluentRoutingTest.php - Test @ line 12: public function testMiddlewareRunWhenRegisteredAsArrayOrParams() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 12: public function testMiddlewareRunWhenRegisteredAsArrayOrParams() - line 18: Route::middleware(Middleware::class, Middleware2::class) - line 22: ->middleware(Middleware::class, Middleware2::class); - line 28: ->middleware([Middleware::class, Middleware2::class]); - line 32: ->middleware([Middleware2::class]); - line 35: ->middleware(Middleware2::class) - line 39: ->middleware(Middleware::class) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 52: public function testEmptyMiddlewareGroupAreHandledGracefully() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 52: public function testEmptyMiddlewareGroupAreHandledGracefully() - line 58: Route::middlewareGroup('public', []); - line 61: ->get('public', $controller); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Routing/HasMiddlewareTest.php - Test @ line 12: public function test_has_middleware_is_respected() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 12: public function test_has_middleware_is_respected() - line 15: $this->assertEquals($route->controllerMiddleware(), ['all', 'only-index']); - line 18: $this->assertEquals($route->controllerMiddleware(), ['all', 'except-index']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Routing/ImplicitBackedEnumRouteBindingTest.php - Test @ line 15: public function testWithRouteCachingEnabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 15: public function testWithRouteCachingEnabled() - line 17: $this->defineCacheRoutes(<<assertSee('fruits'); - line 35: $response->assertSee('people'); - line 38: $response->assertNotFound(404); - line 41: $response->assertSee('fruits'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 50: public function testWithoutRouteCachingEnabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 50: public function testWithoutRouteCachingEnabled() - line 56: })->middleware(['web']); - line 60: })->middleware('web'); - line 66: })->middleware(['web']); - line 69: $response->assertSee('fruits'); - line 72: $response->assertSee('people'); - line 75: $response->assertNotFound(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Routing/ImplicitModelRouteBindingTest.php - Test @ line 62: public function testWithRouteCachingEnabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 62: public function testWithRouteCachingEnabled() - line 64: $this->defineCacheRoutes(<< 'Dries']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 84: public function testWithoutRouteCachingEnabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 84: public function testWithoutRouteCachingEnabled() - line 86: $user = ImplicitBindingUser::create(['name' => 'Dries']); - line 92: })->middleware(['web']); - line 101: $this->assertTrue($user->is($response->baseRequest->route('user'))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 104: public function testSoftDeletedModelsAreNotRetrieved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 104: public function testSoftDeletedModelsAreNotRetrieved() - line 106: $user = ImplicitBindingUser::create(['name' => 'Dries']); - line 108: $user->delete(); - line 114: })->middleware(['web']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 121: public function testSoftDeletedModelsCanBeRetrievedUsingWithTrashedMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 121: public function testSoftDeletedModelsCanBeRetrievedUsingWithTrashedMethod() - line 123: $user = ImplicitBindingUser::create(['name' => 'Dries']); - line 125: $user->delete(); - line 131: })->middleware(['web'])->withTrashed(); - line 140: $this->assertTrue($user->is($response->baseRequest->route('user'))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 143: public function testEnforceScopingImplicitRouteBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 143: public function testEnforceScopingImplicitRouteBindings() - line 145: $user = ImplicitBindingUser::create(['name' => 'Dries']); - line 151: Route::scopeBindings()->group(function () { - line 155: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 162: public function testEnforceScopingImplicitRouteBindingsWithTrashedAndChildWithNoSoftDeleteTrait() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 162: public function testEnforceScopingImplicitRouteBindingsWithTrashedAndChildWithNoSoftDeleteTrait() - line 164: $user = ImplicitBindingUser::create(['name' => 'Dries']); - line 166: $post = $user->posts()->create(); - line 168: $user->delete(); - line 171: Route::scopeBindings()->group(function () { - line 175: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 191: public function testEnforceScopingImplicitRouteBindingsWithRouteCachingEnabled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 191: public function testEnforceScopingImplicitRouteBindingsWithRouteCachingEnabled() - line 193: $user = ImplicitBindingUser::create(['name' => 'Dries']); - line 197: $this->defineCacheRoutes(<< 'Dries']); - line 226: })->middleware(['web']); - line 227: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 243: public function testImplicitRouteBindingChildHasUuids() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 243: public function testImplicitRouteBindingChildHasUuids() - line 245: $user = ImplicitBindingUser::create(['name' => 'Dries']); - line 257: Route::middleware(['web'])->group(function () use ($function) { - line 261: }); - line 264: $response->assertJsonFragment(['id' => $comment->id]); - line 267: $response->assertJsonFragment(['id' => $comment->id]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 273: public function testImplicitRouteBindingChildHasUlids() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 273: public function testImplicitRouteBindingChildHasUlids() - line 275: $user = ImplicitBindingUser::create(['name' => 'Michael Nabil']); - line 288: Route::middleware(['web'])->group(function () use ($function) { - line 292: }); - line 295: $response->assertJsonFragment(['id' => $tag->id]); - line 298: $response->assertJsonFragment(['id' => $tag->id]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Routing/PrecognitionTest.php - Test @ line 28: public function testItDoesntInvokeControllerMethodByDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 28: public function testItDoesntInvokeControllerMethodByDefault() - line 31: ->middleware(HandlePrecognitiveRequests::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 40: public function testItDoesntInvokeCallableControllerByDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 40: public function testItDoesntInvokeCallableControllerByDefault() - line 44: ->middleware(HandlePrecognitiveRequests::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 53: public function testItCanCheckPrecognitiveStateOnTheRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 53: public function testItCanCheckPrecognitiveStateOnTheRequest() - line 56: ->middleware(PrecognitionInvokingController::class); - line 60: $this->assertFalse(request()->isPrecognitive()); - line 64: $this->assertTrue(request()->isPrecognitive()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 67: public function testItReturnsTheEmptyResponseWhenNotBailing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 67: public function testItReturnsTheEmptyResponseWhenNotBailing() - line 75: })->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 85: public function testItCanBailDuringPrecognitionRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 85: public function testItCanBailDuringPrecognitionRequest() - line 89: $bail(response()->json(['expected' => 'response'])); - line 93: })->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 103: public function testItCanExcludeValidationRulesWhenPrecognitiveWithFormRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 103: public function testItCanExcludeValidationRulesWhenPrecognitiveWithFormRequest() - line 106: ->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 124: public function testItRunsExcludedRulesWhenNotPrecognitiveForFormRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 124: public function testItRunsExcludedRulesWhenNotPrecognitiveForFormRequest() - line 127: ->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 146: public function testClientCanSpecifyInputToValidate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 146: public function testClientCanSpecifyInputToValidate() - line 149: ->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 172: public function testClientCanSpecifyNoInputsToValidate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 172: public function testClientCanSpecifyNoInputsToValidate() - line 175: ->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 191: public function testItAppliesHeadersWhenExceptionThrownInPrecognition() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 191: public function testItAppliesHeadersWhenExceptionThrownInPrecognition() - line 198: })->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 208: public function testItAppliesHeadersWhenFlowControlExceptionIsThrown() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 208: public function testItAppliesHeadersWhenFlowControlExceptionIsThrown() - line 211: Gate::define('alwaysDeny', fn () => false); - line 213: ->middleware(['can:alwaysDeny', HandlePrecognitiveRequests::class]); - line 224: ->middleware([HandlePrecognitiveRequests::class, 'can:alwaysDeny']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 234: public function testItCanReturnValuesFromPrecognitionClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 234: public function testItCanReturnValuesFromPrecognitionClosure() - line 246: })->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 259: public function testItCanBailWithResponseDuringNormalRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 259: public function testItCanBailWithResponseDuringNormalRequest() - line 263: $bail(response()->json(['expected' => 'response'])); - line 269: })->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 279: public function testArbitraryBailResponseIsParsedToResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 279: public function testArbitraryBailResponseIsParsedToResponse() - line 288: })->middleware(PrecognitionInvokingController::class); - line 292: $response->assertHeaderMissing('Precognition'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 301: public function testClientCanSpecifyInputsToValidateWhenUsingControllerValidate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 301: public function testClientCanSpecifyInputsToValidateWhenUsingControllerValidate() - line 304: ->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 328: public function testClientCanSpecifyInputsToValidateWhenUsingControllerValidateWithBag() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 328: public function testClientCanSpecifyInputsToValidateWhenUsingControllerValidateWithBag() - line 331: ->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 355: public function testClientCanSpecifyInputsToValidateWhenUsingRequestValidate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 355: public function testClientCanSpecifyInputsToValidateWhenUsingRequestValidate() - line 359: $request->validate([ - line 369: })->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 393: public function testClientCanSpecifyInputsToValidateWhenUsingRequestValidateWithBag() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 393: public function testClientCanSpecifyInputsToValidateWhenUsingRequestValidateWithBag() - line 397: $request->validateWithBag('custom-bag', [ - line 408: })->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 432: public function testClientCanSpecifyInputsToValidateWhenUsingControllerValidateWithPassingArrayOfRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 432: public function testClientCanSpecifyInputsToValidateWhenUsingControllerValidateWithPassingArrayOfRules() - line 435: ->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 459: public function testItAppendsAnAdditionalVaryHeaderInsteadOfReplacingAnyExistingVaryHeaders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 459: public function testItAppendsAnAdditionalVaryHeaderInsteadOfReplacingAnyExistingVaryHeaders() - line 463: $bail(response('expected')->header('Vary', 'Foo')); - line 467: })->middleware([PrecognitionInvokingController::class]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 459: public function testItAppendsAnAdditionalVaryHeaderInsteadOfReplacingAnyExistingVaryHeaders() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 475: public function testSpacesAreImportantInValidationFilterLogicForJsonRequests() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 475: public function testSpacesAreImportantInValidationFilterLogicForJsonRequests() - line 478: ->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 496: public function testVaryHeaderIsAppliedToNonPrecognitionResponses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 496: public function testVaryHeaderIsAppliedToNonPrecognitionResponses() - line 499: ->middleware(PrecognitionInvokingController::class); - line 504: $this->assertSame('ok', $response->content()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 509: public function testItStopsExecutionAfterSuccessfulValidationWithValidationFilteringAndFormRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 509: public function testItStopsExecutionAfterSuccessfulValidationWithValidationFilteringAndFormRequest() - line 513: })->middleware(PrecognitionInvokingController::class); - line 514: $this->app->instance('ClassWasInstantiated', false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 530: public function testItStopsExecutionAfterFailedValidationWithNestedValidationFilteringUsingFormRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 530: public function testItStopsExecutionAfterFailedValidationWithNestedValidationFilteringUsingFormRequest() - line 534: })->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 562: public function testItStopsExecutionAfterFailedValidationWithNestedValidationFilteringUsingRequestValidate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 562: public function testItStopsExecutionAfterFailedValidationWithNestedValidationFilteringUsingRequestValidate() - line 565: $request->validate([ - line 570: })->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 598: public function testItStopsExecutionAfterFailedValidationWithNestedValidationFilteringUsingControllerValidate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 598: public function testItStopsExecutionAfterFailedValidationWithNestedValidationFilteringUsingControllerValidate() - line 601: ->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 629: public function testItStopsExecutionAfterFailedValidationWithNestedValidationFilteringUsingControllerValidateWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 629: public function testItStopsExecutionAfterFailedValidationWithNestedValidationFilteringUsingControllerValidateWith() - line 632: ->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 660: public function testItCanPassValidationForEscapedDotsAfterFilteringWithPrecognition() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 660: public function testItCanPassValidationForEscapedDotsAfterFilteringWithPrecognition() - line 664: })->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 678: public function testItCanFilterRulesWithEscapedDotsUsingFormRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 678: public function testItCanFilterRulesWithEscapedDotsUsingFormRequest() - line 682: })->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 704: public function testItCanFilterRulesWithEscapedDotsWhenUsingRequestValidate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 704: public function testItCanFilterRulesWithEscapedDotsWhenUsingRequestValidate() - line 707: $request->validate([ - line 712: })->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 734: public function testItCanFilterRulesWithEscapedDotsWhenUsingControllerValidate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 734: public function testItCanFilterRulesWithEscapedDotsWhenUsingControllerValidate() - line 737: ->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 759: public function testItCanFilterRulesWithEscapedDotsWhenUsingControllerValidateWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 759: public function testItCanFilterRulesWithEscapedDotsWhenUsingControllerValidateWith() - line 762: ->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 783: public function testItContinuesExecutionAfterSuccessfulValidationWithoutValidationFilteringAndFormRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 783: public function testItContinuesExecutionAfterSuccessfulValidationWithoutValidationFilteringAndFormRequest() - line 791: })->middleware(PrecognitionInvokingController::class); - line 792: $this->app->instance('ClassWasInstantiated', false); - line 802: $this->assertSame('expected response', $response->content()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 807: public function testItStopsExecutionAfterSuccessfulValidationWithValidationFilteringAndControllerValidate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 807: public function testItStopsExecutionAfterSuccessfulValidationWithValidationFilteringAndControllerValidate() - line 810: ->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 825: public function testItContinuesExecutionAfterSuccessfulValidationWithoutValidationFilteringAndControllerValidate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 825: public function testItContinuesExecutionAfterSuccessfulValidationWithoutValidationFilteringAndControllerValidate() - line 828: ->middleware(PrecognitionInvokingController::class); - line 837: $this->assertSame('Post-validation code was executed.', $response->content()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 842: public function testItStopsExecutionAfterSuccessfulValidationWithValidationFilteringAndControllerValidateWithBag() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 842: public function testItStopsExecutionAfterSuccessfulValidationWithValidationFilteringAndControllerValidateWithBag() - line 845: ->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 860: public function testItContinuesExecutionAfterSuccessfulValidationWithoutValidationFilteringAndControllerValidateWithBag() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 860: public function testItContinuesExecutionAfterSuccessfulValidationWithoutValidationFilteringAndControllerValidateWithBag() - line 863: ->middleware(PrecognitionInvokingController::class); - line 872: $this->assertSame('Post-validation code was executed.', $response->content()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 877: public function testItStopsExecutionAfterSuccessfulValidationWithValidationFilteringAndControllerValidateWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 877: public function testItStopsExecutionAfterSuccessfulValidationWithValidationFilteringAndControllerValidateWith() - line 880: ->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 895: public function testItContinuesExecutionAfterSuccessfulValidationWithoutValidationFilteringAndControllerValidateWithXXXX() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 895: public function testItContinuesExecutionAfterSuccessfulValidationWithoutValidationFilteringAndControllerValidateWithXXXX() - line 898: ->middleware(PrecognitionInvokingController::class); - line 907: $this->assertSame('Post-validation code was executed.', $response->content()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 912: public function testItStopsExecutionAfterSuccessfulValidationWithValidationFilteringAndControllerValidateWithPassingValidator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 912: public function testItStopsExecutionAfterSuccessfulValidationWithValidationFilteringAndControllerValidateWithPassingValidator() - line 915: ->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 930: public function testItContinuesExecutionAfterSuccessfulValidationWithoutValidationFilteringAndControllerValidateWithPassingValidator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 930: public function testItContinuesExecutionAfterSuccessfulValidationWithoutValidationFilteringAndControllerValidateWithPassingValidator() - line 933: ->middleware(PrecognitionInvokingController::class); - line 942: $this->assertSame('Post-validation code was executed.', $response->content()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 947: public function testItStopsExecutionAfterSuccessfulValidationWithValidationFilteringAndRequestValidate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 947: public function testItStopsExecutionAfterSuccessfulValidationWithValidationFilteringAndRequestValidate() - line 951: $request->validate([ - line 964: ->middleware(PrecognitionInvokingController::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 979: public function testItContinuesExecutionAfterSuccessfulValidationWithoutValidationFilteringAndRequestValidate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 979: public function testItContinuesExecutionAfterSuccessfulValidationWithoutValidationFilteringAndRequestValidate() - line 983: $request->validate([ - line 995: })->middleware(PrecognitionInvokingController::class); - line 1004: $this->assertSame('Post-validation code was executed.', $response->content()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1009: public function testItDoesNotSetLastUrl() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 1009: public function testItDoesNotSetLastUrl() - line 1011: Route::get('expected-route-1', fn () => 'ok')->middleware(StartSession::class); - line 1012: Route::get('expected-route-2', fn () => 'ok')->middleware(StartSession::class); - line 1013: Route::get('precognition-route', fn () => 'ok')->middleware([StartSession::class, HandlePrecognitiveRequests::class]); - line 1015: $this->app->bind(CallableDispatcherContract::class, fn ($app) => new CallableDispatcher($app)); - line 1019: $this->assertSame('http://localhost/expected-route-1', session()->previousUrl()); - line 1021: $this->app->bind(CallableDispatcherContract::class, fn ($app) => new CallableDispatcher($app)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1034: public function testItAppendsVaryHeaderToSymfonyResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1034: public function testItAppendsVaryHeaderToSymfonyResponse() - line 1037: return response()->streamDownload(function () { - line 1040: })->middleware(HandlePrecognitiveRequests::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1048: public function testItAppendsPrecognitionHeaderToSymfonyResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1048: public function testItAppendsPrecognitionHeaderToSymfonyResponse() - line 1052: })->middleware([ - line 1055: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1063: public function testItCanNoContentWhileAlsoNotBeingPrecognitive() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1063: public function testItCanNoContentWhileAlsoNotBeingPrecognitive() - line 1067: })->middleware([HandlePrecognitiveRequests::class, MiddlewareThatReturnsNoContent::class]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Routing/PreviousUrlTest.php - Test @ line 12: public function testPreviousUrlWithoutSession() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 12: public function testPreviousUrlWithoutSession() - line 14: Route::post('/previous-url', function (DummyFormRequest $request) { - line 16: }); - line 20: $this->assertEquals(422, $response->status()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Routing/ResponsableTest.php - Test @ line 11: public function testResponsableObjectsAreRendered() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 11: public function testResponsableObjectsAreRendered() - line 15: }); - line 19: $this->assertEquals(201, $response->status()); - line 21: $this->assertSame('hello world', $response->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Routing/RouteApiResourceTest.php - Test @ line 12: public function testApiResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 19. Evidence: - line 12: public function testApiResource() - line 14: Route::apiResource('tests', ApiResourceTestController::class); - line 17: $this->assertEquals(200, $response->getStatusCode()); - line 18: $this->assertSame('I`m index', $response->getContent()); - line 21: $this->assertEquals(200, $response->getStatusCode()); - line 22: $this->assertSame('I`m store', $response->getContent()); - line 25: $this->assertEquals(200, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 40: public function testApiResourceWithOnly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 40: public function testApiResourceWithOnly() - line 42: Route::apiResource('tests', ApiResourceTestController::class)->only(['index', 'store']); - line 45: $this->assertEquals(200, $response->getStatusCode()); - line 46: $this->assertSame('I`m index', $response->getContent()); - line 49: $this->assertEquals(200, $response->getStatusCode()); - line 50: $this->assertSame('I`m store', $response->getContent()); - line 52: $this->assertEquals(404, $this->get('/tests/1')->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 58: public function testApiResources() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 37. Evidence: - line 58: public function testApiResources() - line 60: Route::apiResources([ - line 63: ]); - line 66: $this->assertEquals(200, $response->getStatusCode()); - line 67: $this->assertSame('I`m index', $response->getContent()); - line 70: $this->assertEquals(200, $response->getStatusCode()); - line 71: $this->assertSame('I`m store', $response->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Routing/RouteCachingTest.php - Test @ line 9: public function testWildcardCatchAllRoutes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 9: public function testWildcardCatchAllRoutes() - line 11: $this->routes(__DIR__.'/Fixtures/wildcard_catch_all_routes.php'); - line 13: $this->get('/foo')->assertSee('Regular route'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 9: public function testWildcardCatchAllRoutes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 17: public function testRedirectRoutes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 17: public function testRedirectRoutes() - line 19: $this->routes(__DIR__.'/Fixtures/redirect_routes.php'); - line 21: $this->post('/foo/1')->assertRedirect('/foo/1/bar'); - line 22: $this->get('/foo/1/bar')->assertSee('Redirect response'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Routing/RouteCanBackedEnumTest.php - Test @ line 12: public function testSimpleRouteWithStringBackedEnumCanAbilityGuestForbiddenThroughTheFramework() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 12: public function testSimpleRouteWithStringBackedEnumCanAbilityGuestForbiddenThroughTheFramework() - line 14: $gate = Gate::define(AbilityBackedEnum::NotAccessRoute, fn (?User $user) => false); - line 15: $this->assertArrayHasKey('not-access-route', $gate->abilities()); - line 19: })->can(AbilityBackedEnum::NotAccessRoute); - line 20: $this->assertEquals(['can:not-access-route'], $route->middleware()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 26: public function testSimpleRouteWithStringBackedEnumCanAbilityGuestAllowedThroughTheFramework() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 26: public function testSimpleRouteWithStringBackedEnumCanAbilityGuestAllowedThroughTheFramework() - line 28: $gate = Gate::define(AbilityBackedEnum::AccessRoute, fn (?User $user) => true); - line 29: $this->assertArrayHasKey('access-route', $gate->abilities()); - line 33: })->can(AbilityBackedEnum::AccessRoute); - line 34: $this->assertEquals(['can:access-route'], $route->middleware()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Routing/RouteRedirectTest.php - Test @ line 14: public function testRouteRedirect($redirectFrom, $redirectTo, $requestUri, $redirectUri) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 14: public function testRouteRedirect($redirectFrom, $redirectTo, $requestUri, $redirectUri) - line 16: $this->withoutExceptionHandling(); - line 17: Route::redirect($redirectFrom, $redirectTo, 301); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 39: public function testRouteRedirectWithExplicitRouteModelBinding() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 39: public function testRouteRedirectWithExplicitRouteModelBinding() - line 41: $this->withoutExceptionHandling(); - line 42: Route::middleware([SubstituteBindings::class])->group(function () { - line 45: Route::bind('user', fn ($id) => (new User())->setAttribute('id', '999')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 52: public function testToActionHelper() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 52: public function testToActionHelper() - line 62: }); - line 67: ->assertSee('Redirecting to'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 75: public function testToRouteHelper() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 75: public function testToRouteHelper() - line 79: })->name('to'); - line 87: }); - line 92: ->assertSee('Redirecting to'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Routing/RouteSingletonTest.php - Test @ line 13: public function testSingletonDefaults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 13: public function testSingletonDefaults() - line 15: Route::singleton('avatar', SingletonTestController::class); - line 18: $this->assertEquals(404, $response->getStatusCode()); - line 20: $this->assertSame('http://localhost/avatar', route('avatar.show')); - line 22: $this->assertEquals(200, $response->getStatusCode()); - line 23: $this->assertSame('singleton show', $response->getContent()); - line 25: $this->assertSame('http://localhost/avatar/edit', route('avatar.edit')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 45: public function testCreatableSingleton() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 45: public function testCreatableSingleton() - line 47: Route::singleton('avatar', CreatableSingletonTestController::class)->creatable(); - line 49: $this->assertSame('http://localhost/avatar/create', route('avatar.create')); - line 51: $this->assertEquals(200, $response->getStatusCode()); - line 52: $this->assertSame('singleton create', $response->getContent()); - line 54: $this->assertSame('http://localhost/avatar', route('avatar.store')); - line 56: $this->assertEquals(200, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 65: public function testCreatableSingletonOnly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 65: public function testCreatableSingletonOnly() - line 67: Route::singleton('avatar', CreatableSingletonTestController::class)->creatable()->only('show'); - line 70: $this->assertEquals(200, $response->getStatusCode()); - line 73: $this->assertEquals(404, $response->getStatusCode()); - line 76: $this->assertEquals(405, $response->getStatusCode()); - line 79: $this->assertEquals(404, $response->getStatusCode()); - line 82: $this->assertEquals(405, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 91: public function testCreatableSingletonExcept() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 91: public function testCreatableSingletonExcept() - line 93: Route::singleton('avatar', CreatableSingletonTestController::class)->creatable()->except('show'); - line 96: $this->assertEquals(405, $response->getStatusCode()); - line 99: $this->assertEquals(200, $response->getStatusCode()); - line 102: $this->assertEquals(200, $response->getStatusCode()); - line 105: $this->assertEquals(200, $response->getStatusCode()); - line 108: $this->assertEquals(200, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 117: public function testDestroyableSingleton() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 117: public function testDestroyableSingleton() - line 119: Route::singleton('avatar', CreatableSingletonTestController::class)->destroyable(); - line 121: $this->assertSame('http://localhost/avatar', route('avatar.show')); - line 123: $this->assertEquals(200, $response->getStatusCode()); - line 124: $this->assertSame('singleton show', $response->getContent()); - line 126: $this->assertSame('http://localhost/avatar/edit', route('avatar.edit')); - line 128: $this->assertEquals(200, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 142: public function testDestroyableSingletonOnly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 142: public function testDestroyableSingletonOnly() - line 144: Route::singleton('avatar', SingletonTestController::class)->destroyable()->only('destroy'); - line 147: $this->assertEquals(405, $response->getStatusCode()); - line 150: $this->assertEquals(404, $response->getStatusCode()); - line 153: $this->assertEquals(405, $response->getStatusCode()); - line 156: $this->assertEquals(404, $response->getStatusCode()); - line 159: $this->assertEquals(405, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 168: public function testDestroyableSingletonExcept() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 168: public function testDestroyableSingletonExcept() - line 170: Route::singleton('avatar', SingletonTestController::class)->destroyable()->except('destroy'); - line 173: $this->assertEquals(200, $response->getStatusCode()); - line 176: $this->assertEquals(404, $response->getStatusCode()); - line 179: $this->assertEquals(405, $response->getStatusCode()); - line 182: $this->assertEquals(200, $response->getStatusCode()); - line 185: $this->assertEquals(200, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 194: public function testCreatableDestroyableSingletonOnlyExceptTest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 194: public function testCreatableDestroyableSingletonOnlyExceptTest() - line 196: Route::singleton('avatar', SingletonTestController::class)->creatable()->destroyable()->only(['show'])->except(['destroy']); - line 199: $this->assertEquals(200, $response->getStatusCode()); - line 202: $this->assertEquals(404, $response->getStatusCode()); - line 205: $this->assertEquals(405, $response->getStatusCode()); - line 208: $this->assertEquals(404, $response->getStatusCode()); - line 211: $this->assertEquals(405, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 220: public function testApiSingleton() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 220: public function testApiSingleton() - line 222: Route::apiSingleton('avatar', SingletonTestController::class); - line 225: $this->assertEquals(404, $response->getStatusCode()); - line 228: $this->assertEquals(405, $response->getStatusCode()); - line 230: $this->assertSame('http://localhost/avatar', route('avatar.update')); - line 232: $this->assertEquals(200, $response->getStatusCode()); - line 233: $this->assertSame('singleton update', $response->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 236: public function testCreatableApiSingleton() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 236: public function testCreatableApiSingleton() - line 238: Route::apiSingleton('avatar', CreatableSingletonTestController::class)->creatable(); - line 241: $this->assertEquals(404, $response->getStatusCode()); - line 243: $this->assertSame('http://localhost/avatar', route('avatar.store')); - line 245: $this->assertEquals(200, $response->getStatusCode()); - line 246: $this->assertSame('singleton store', $response->getContent()); - line 248: $this->assertSame('http://localhost/avatar', route('avatar.update')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 254: public function testCreatableApiSingletonOnly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 254: public function testCreatableApiSingletonOnly() - line 256: Route::apiSingleton('avatar', CreatableSingletonTestController::class)->creatable()->only(['create', 'store']); - line 259: $this->assertEquals(405, $response->getStatusCode()); - line 262: $this->assertEquals(200, $response->getStatusCode()); - line 265: $this->assertEquals(200, $response->getStatusCode()); - line 268: $this->assertEquals(404, $response->getStatusCode()); - line 271: $this->assertEquals(405, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 280: public function testCreatableApiSingletonExcept() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 280: public function testCreatableApiSingletonExcept() - line 282: Route::apiSingleton('avatar', CreatableSingletonTestController::class)->creatable()->except(['create', 'store']); - line 285: $this->assertEquals(200, $response->getStatusCode()); - line 288: $this->assertEquals(404, $response->getStatusCode()); - line 291: $this->assertEquals(405, $response->getStatusCode()); - line 294: $this->assertEquals(404, $response->getStatusCode()); - line 297: $this->assertEquals(200, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 306: public function testDestroyableApiSingleton() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 306: public function testDestroyableApiSingleton() - line 308: Route::apiSingleton('avatar', CreatableSingletonTestController::class)->destroyable(); - line 310: $this->assertSame('http://localhost/avatar', route('avatar.show')); - line 312: $this->assertEquals(200, $response->getStatusCode()); - line 313: $this->assertSame('singleton show', $response->getContent()); - line 315: $this->assertSame('http://localhost/avatar', route('avatar.update')); - line 317: $this->assertEquals(200, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 326: public function testDestroyableApiSingletonOnly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 326: public function testDestroyableApiSingletonOnly() - line 328: Route::apiSingleton('avatar', CreatableSingletonTestController::class)->destroyable()->only(['destroy']); - line 331: $this->assertEquals(405, $response->getStatusCode()); - line 334: $this->assertEquals(404, $response->getStatusCode()); - line 337: $this->assertEquals(405, $response->getStatusCode()); - line 340: $this->assertEquals(404, $response->getStatusCode()); - line 343: $this->assertEquals(405, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 352: public function testDestroyableApiSingletonExcept() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 352: public function testDestroyableApiSingletonExcept() - line 354: Route::apiSingleton('avatar', CreatableSingletonTestController::class)->destroyable()->except(['destroy', 'show']); - line 357: $this->assertEquals(405, $response->getStatusCode()); - line 360: $this->assertEquals(404, $response->getStatusCode()); - line 363: $this->assertEquals(405, $response->getStatusCode()); - line 366: $this->assertEquals(404, $response->getStatusCode()); - line 369: $this->assertEquals(200, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 378: public function testCreatableDestroyableApiSingletonOnlyExceptTest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 378: public function testCreatableDestroyableApiSingletonOnlyExceptTest() - line 380: Route::apiSingleton('avatar', CreatableSingletonTestController::class)->creatable()->destroyable()->only(['show'])->except(['destroy']); - line 383: $this->assertEquals(200, $response->getStatusCode()); - line 386: $this->assertEquals(404, $response->getStatusCode()); - line 389: $this->assertEquals(405, $response->getStatusCode()); - line 392: $this->assertEquals(404, $response->getStatusCode()); - line 395: $this->assertEquals(405, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 404: public function testSingletonOnly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 404: public function testSingletonOnly() - line 406: Route::singleton('avatar', SingletonTestController::class)->only('show'); - line 409: $this->assertEquals(200, $response->getStatusCode()); - line 412: $this->assertEquals(404, $response->getStatusCode()); - line 415: $this->assertEquals(405, $response->getStatusCode()); - line 418: $this->assertEquals(405, $response->getStatusCode()); - line 421: $this->assertEquals(405, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 424: public function testSingletonExcept() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 424: public function testSingletonExcept() - line 426: Route::singleton('avatar', SingletonTestController::class)->except('show'); - line 429: $this->assertEquals(405, $response->getStatusCode()); - line 432: $this->assertEquals(200, $response->getStatusCode()); - line 433: $this->assertSame('singleton edit', $response->getContent()); - line 436: $this->assertEquals(200, $response->getStatusCode()); - line 437: $this->assertSame('singleton update', $response->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 448: public function testSingletonName() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 448: public function testSingletonName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 455: public function testSingletonNames() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 455: public function testSingletonNames() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 462: public function testNestedSingleton() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 462: public function testNestedSingleton() - line 464: Route::singleton('videos.thumbnail', NestedSingletonTestController::class); - line 467: $this->assertEquals(200, $response->getStatusCode()); - line 468: $this->assertSame('singleton show for 123', $response->getContent()); - line 471: $this->assertEquals(200, $response->getStatusCode()); - line 472: $this->assertSame('singleton edit for 123', $response->getContent()); - line 475: $this->assertEquals(200, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 486: public function testCreatableNestedSingleton() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 486: public function testCreatableNestedSingleton() - line 488: Route::singleton('videos.thumbnail', NestedSingletonTestController::class)->creatable(); - line 491: $this->assertEquals(200, $response->getStatusCode()); - line 492: $this->assertSame('singleton show for 123', $response->getContent()); - line 495: $this->assertEquals(200, $response->getStatusCode()); - line 496: $this->assertSame('singleton edit for 123', $response->getContent()); - line 499: $this->assertEquals(200, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 511: public function testDestroyableNestedSingleton() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 511: public function testDestroyableNestedSingleton() - line 513: Route::singleton('videos.thumbnail', NestedSingletonTestController::class)->destroyable(); - line 516: $this->assertEquals(200, $response->getStatusCode()); - line 517: $this->assertSame('singleton show for 123', $response->getContent()); - line 520: $this->assertEquals(200, $response->getStatusCode()); - line 521: $this->assertSame('singleton edit for 123', $response->getContent()); - line 524: $this->assertEquals(200, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 536: public function testNestedSingletonParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 536: public function testNestedSingletonParameter() - line 538: Route::singleton('v.thumbnail', NestedSingletonTestController::class)->parameter('v', 'video'); - line 542: $this->assertEquals(200, $response->getStatusCode()); - line 543: $this->assertSame('singleton show for 123', $response->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 546: public function testNestedSingletonParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 546: public function testNestedSingletonParameters() - line 548: Route::singleton('v.thumbnail', NestedSingletonTestController::class)->parameters(['v' => 'video']); - line 552: $this->assertEquals(200, $response->getStatusCode()); - line 553: $this->assertSame('singleton show for 123', $response->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 556: public function testNestedSingletonWhere() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 556: public function testNestedSingletonWhere() - line 558: Route::singleton('videos.thumbnail', NestedSingletonTestController::class)->where(['video' => '[a-z]+']); - line 562: $this->assertEquals(404, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 565: public function testPrefixedSingleton() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 565: public function testPrefixedSingleton() - line 567: Route::singleton('/user/avatar', SingletonTestController::class); - line 571: $this->assertEquals(200, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Routing/RouteViewTest.php - Test @ line 11: public function testRouteView() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 11: public function testRouteView() - line 13: Route::view('route', 'view', ['foo' => 'bar']); - line 15: View::addLocation(__DIR__.'/Fixtures'); - line 17: $this->assertStringContainsString('Test bar', $this->get('/route')->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 21: public function testRouteViewWithParams() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 21: public function testRouteViewWithParams() - line 23: Route::view('route/{param}/{param2?}', 'view', ['foo' => 'bar']); - line 25: View::addLocation(__DIR__.'/Fixtures'); - line 27: $this->assertStringContainsString('Test bar', $this->get('/route/value1/value2')->getContent()); - line 28: $this->assertStringContainsString('Test bar', $this->get('/route/value1')->getContent()); - line 34: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 43: public function testRouteViewWithStatus() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 43: public function testRouteViewWithStatus() - line 45: Route::view('route', 'view', ['foo' => 'bar'], 418); - line 47: View::addLocation(__DIR__.'/Fixtures'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 52: public function testRouteViewWithHeaders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 52: public function testRouteViewWithHeaders() - line 54: Route::view('route', 'view', ['foo' => 'bar'], 418, ['Framework' => 'Laravel']); - line 56: View::addLocation(__DIR__.'/Fixtures'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 61: public function testRouteViewOverloadingStatusWithHeaders() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 61: public function testRouteViewOverloadingStatusWithHeaders() - line 63: Route::view('route', 'view', ['foo' => 'bar'], ['Framework' => 'Laravel']); - line 65: View::addLocation(__DIR__.'/Fixtures'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Routing/RoutingServiceProviderTest.php - Test @ line 11: public function testResolvingPsrRequest() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 11: public function testResolvingPsrRequest() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 18: public function testResolvingPsrResponse() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 18: public function testResolvingPsrResponse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Routing/SerializableClosureV1CacheRouteTest.php - Test @ line 48: public function testItCanUseCachedRouteFromSerializableClosureV1() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 48: public function testItCanUseCachedRouteFromSerializableClosureV1() - line 50: $user = UserFactory::new()->create(); - line 52: $this->assertTrue($this->app->routesAreCached()); - line 54: $this->get('/')->assertSee('Laravel'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Routing/SimpleRouteTest.php - Test @ line 10: public function testSimpleRouteThroughTheFramework() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 10: public function testSimpleRouteThroughTheFramework() - line 14: }); - line 18: $this->assertSame('Hello World', $response->content()); - line 22: $this->assertSame('Hello World', $response->content()); - line 24: $this->assertSame('bar', $response->baseRequest->query('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 27: public function testSimpleRouteWitStringBackedEnumRouteNameThroughTheFramework() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 27: public function testSimpleRouteWitStringBackedEnumRouteNameThroughTheFramework() - line 31: })->name(RouteNameEnum::UserIndex); - line 35: $this->assertSame('Hello World', $response->content()); - line 37: $this->assertSame('bar', $response->baseRequest->query('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Routing/UrlSigningTest.php - Test @ line 22: public function testSigningUrl() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 22: public function testSigningUrl() - line 25: return $request->hasValidSignature() ? 'valid' : 'invalid'; - line 28: $this->assertIsString($url = URL::signedRoute('foo', ['id' => 1])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 22: public function testSigningUrl() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 37: public function testSigningUrlWithCustomRouteSlug() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 37: public function testSigningUrlWithCustomRouteSlug() - line 40: return ['slug' => $slug, 'valid' => $request->hasValidSignature() ? 'valid' : 'invalid']; - line 46: $this->assertIsString($url = URL::signedRoute('foo', ['post' => $model])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 56: public function testTemporarySignedUrls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 56: public function testTemporarySignedUrls() - line 59: return $request->hasValidSignature() ? 'valid' : 'invalid'; - line 63: $this->assertIsString($url = URL::temporarySignedRoute('foo', now()->addMinutes(5), ['id' => 1])); - line 66: Carbon::setTestNow(Carbon::create(2018, 1, 1)->addMinutes(10)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 70: public function testTemporarySignedUrlsWithExpiresParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 70: public function testTemporarySignedUrlsWithExpiresParameter() - line 72: $this->expectException(InvalidArgumentException::class); - line 73: $this->expectExceptionMessage('reserved'); - line 76: return $request->hasValidSignature() ? 'valid' : 'invalid'; - line 79: URL::temporarySignedRoute('foo', now()->addMinutes(5), ['id' => 1, 'expires' => 253402300799]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 70: public function testTemporarySignedUrlsWithExpiresParameter() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 82: public function testSignedUrlWithUrlWithoutSignatureParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 82: public function testSignedUrlWithUrlWithoutSignatureParameter() - line 85: return $request->hasValidSignature() ? 'valid' : 'invalid'; - line 86: })->name('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 91: public function testSignedUrlWithNullParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 91: public function testSignedUrlWithNullParameter() - line 94: return $request->hasValidSignature() ? 'valid' : 'invalid'; - line 97: $this->assertIsString($url = URL::signedRoute('foo', ['id' => 1, 'param'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 101: public function testSignedUrlWithEmptyStringParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 101: public function testSignedUrlWithEmptyStringParameter() - line 104: return $request->hasValidSignature() ? 'valid' : 'invalid'; - line 107: $this->assertIsString($url = URL::signedRoute('foo', ['id' => 1, 'param' => ''])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 111: public function testSignedUrlWithMultipleParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 111: public function testSignedUrlWithMultipleParameters() - line 114: return $request->hasValidSignature() ? 'valid' : 'invalid'; - line 117: $this->assertIsString($url = URL::signedRoute('foo', ['id' => 1, 'param1' => 'value1', 'param2' => 'value2'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 121: public function testSignedUrlWithSignatureTextInKeyOrValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 121: public function testSignedUrlWithSignatureTextInKeyOrValue() - line 124: return $request->hasValidSignature() ? 'valid' : 'invalid'; - line 127: $this->assertIsString($url = URL::signedRoute('foo', ['id' => 1, 'custom-signature' => 'signature=value'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 131: public function testSignedUrlWithAppendedNullParameterInvalid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 131: public function testSignedUrlWithAppendedNullParameterInvalid() - line 134: return $request->hasValidSignature() ? 'valid' : 'invalid'; - line 137: $this->assertIsString($url = URL::signedRoute('foo', ['id' => 1])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 141: public function testSignedUrlParametersParsedCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 141: public function testSignedUrlParametersParsedCorrectly() - line 144: return $request->hasValidSignature() - line 157: ])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 161: public function testExceptedParametersCanBeAddedInAnyOrder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 161: public function testExceptedParametersCanBeAddedInAnyOrder() - line 164: return $request->hasValidSignatureWhileIgnoring(['one', 'two', 'three']) ? 'valid' : 'invalid'; - line 169: ])); - line 171: $this->assertSame('valid', $this->get($url.'&one=value&two=another-value')->original); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 175: public function testUnusualExceptedParametersWorksAsExpected() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 175: public function testUnusualExceptedParametersWorksAsExpected() - line 177: $this->withoutExceptionHandling(); - line 179: return $request->hasValidSignatureWhileIgnoring(['']) ? 'valid' : 'invalid'; - line 184: ])); - line 189: return $request->hasValidSignatureWhileIgnoring(['*', '[a-z]+']) ? 'valid' : 'invalid'; - line 194: ])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 199: public function testExceptedParameterCanBeAPrefixOrSuffixOfAnotherParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 199: public function testExceptedParameterCanBeAPrefixOrSuffixOfAnotherParameter() - line 202: return $request->hasValidSignatureWhileIgnoring(['pre', 'fix']) ? 'valid' : 'invalid'; - line 208: ])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 213: public function testSignedMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 213: public function testSignedMiddleware() - line 216: return $request->hasValidSignature() ? 'valid' : 'invalid'; - line 220: $this->assertIsString($url = URL::temporarySignedRoute('foo', now()->addMinutes(5), ['id' => 1])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 224: public function testSignedMiddlewareWithInvalidUrl() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 224: public function testSignedMiddlewareWithInvalidUrl() - line 227: return $request->hasValidSignature() ? 'valid' : 'invalid'; - line 231: $this->assertIsString($url = URL::temporarySignedRoute('foo', now()->addMinutes(5), ['id' => 1])); - line 232: Carbon::setTestNow(Carbon::create(2018, 1, 1)->addMinutes(10)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 238: public function testSignedMiddlewareWithRoutableParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 238: public function testSignedMiddlewareWithRoutableParameter() - line 244: return $request->hasValidSignature() ? $routable : 'invalid'; - line 247: $this->assertIsString($url = URL::signedRoute('foo', $model)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 251: public function testSignedMiddlewareWithRelativePath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 251: public function testSignedMiddlewareWithRelativePath() - line 254: return $request->hasValidSignature($absolute = false) ? 'valid' : 'invalid'; - line 257: $this->assertIsString($url = 'https://fake.test'.URL::signedRoute('foo', [], null, $absolute = false)); - line 258: $this->assertSame('valid', $this->get($url)->original); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 264: public function testSignedMiddlewareIgnoringParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 264: public function testSignedMiddlewareIgnoringParameter() - line 267: })->name('foo')->middleware('signed:relative'); - line 271: $middleware = $this->createValidateSignatureMiddleware(['ignore']); - line 278: $this->fail($exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 282: public function testSignedMiddlewareIgnoringParameterViaArgumentsWithRelative() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 282: public function testSignedMiddlewareIgnoringParameterViaArgumentsWithRelative() - line 285: })->name('foo')->middleware('signed:relative,ignore'); - line 287: $this->assertIsString('https://fake.test'.URL::signedRoute('foo', ['id' => 1, 'ignore' => 'me'], null, false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 293: public function testSignedMiddlewareCanGloballyIgnoreParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 293: public function testSignedMiddlewareCanGloballyIgnoreParameters() - line 295: ValidateSignature::except(['globally_ignore']); - line 298: })->name('foo')->middleware('signed:relative'); - line 302: $middleware = $this->createValidateSignatureMiddleware(['ignore']); - line 309: $this->fail($exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 313: public function testSignedMiddlewareIgnoringParameterViaArgumentsWithoutRelative() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 313: public function testSignedMiddlewareIgnoringParameterViaArgumentsWithoutRelative() - line 316: })->name('foo')->middleware('signed:ignore'); - line 318: $this->assertIsString($url = 'https://fake.test'.URL::signedRoute('foo', ['id' => 1, 'ignore' => 'me'], null, false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 324: public function testSignedMiddlewareIgnoringParameterViaClassAndArguments() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 324: public function testSignedMiddlewareIgnoringParameterViaClassAndArguments() - line 327: })->name('foo')->middleware(IgnoreParameterMiddleware::relative('test')); - line 329: $this->assertIsString($url = 'https://fake.test'.URL::signedRoute('foo', ['id' => 1, 'ignore' => 'me', 'test' => 'bar'], null, false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 350: public function testUrlsSignedByPreviousAppKeysAreValidWhenAddedAsPreviousKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 350: public function testUrlsSignedByPreviousAppKeysAreValidWhenAddedAsPreviousKeys() - line 353: return $request->hasValidSignature() ? 'valid' : 'invalid'; - line 363: $newUrl = URL::signedRoute('foo', ['id' => 1]); - line 365: tap($this->get($oldestURL), fn ($response) => $this->assertSame('invalid', $response->original)); - line 366: tap($this->get($oldURL), fn ($response) => $this->assertSame('invalid', $response->original)); - line 369: config(['app.previous_keys' => ['old-key', 'oldest-key']]); - line 371: tap($this->get($oldestURL), fn ($response) => $this->assertSame('valid', $response->original)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 350: public function testUrlsSignedByPreviousAppKeysAreValidWhenAddedAsPreviousKeys() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Session/CookieSessionHandlerTest.php - Test @ line 11: public function testCookieSessionDriverCookiesCanExpireOnClose() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 11: public function testCookieSessionDriverCookiesCanExpireOnClose() - line 13: Route::get('/', fn () => '')->middleware('web'); - line 16: $sessionIdCookie = $response->getCookie('laravel_session'); - line 17: $sessionValueCookie = $response->getCookie($sessionIdCookie->getValue()); - line 19: $this->assertEquals(0, $sessionIdCookie->getExpiresTime()); - line 20: $this->assertEquals(0, $sessionValueCookie->getExpiresTime()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 23: public function testCookieSessionInheritsRequestSecureState() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 23: public function testCookieSessionInheritsRequestSecureState() - line 25: Route::get('/', fn () => '')->middleware('web'); - line 28: $unsecureSessionIdCookie = $unsecureResponse->getCookie('laravel_session'); - line 29: $unsecureSessionValueCookie = $unsecureResponse->getCookie($unsecureSessionIdCookie->getValue()); - line 31: $this->assertFalse($unsecureSessionIdCookie->isSecure()); - line 32: $this->assertFalse($unsecureSessionValueCookie->isSecure()); - line 35: $secureSessionIdCookie = $secureResponse->getCookie('laravel_session'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Session/DatabaseSessionHandlerTest.php - Test @ line 13: public function test_basic_read_write_functionality() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 21. Evidence: - line 13: public function test_basic_read_write_functionality() - line 15: $connection = $this->app['db']->connection(); - line 17: $handler->setContainer($this->app); - line 20: $this->assertEquals('', $handler->read('invalid_session_id')); - line 23: $this->assertTrue($handler->open('', '')); - line 24: $this->assertTrue($handler->close()); - line 27: $this->assertTrue($handler->write('valid_session_id_2425', json_encode(['foo' => 'bar']))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 57: public function test_garbage_collector() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 57: public function test_garbage_collector() - line 59: $connection = $this->app['db']->connection(); - line 63: $handler->write('simple_id_1', 'abcd'); - line 64: $this->assertEquals(0, $handler->gc(1)); - line 66: Carbon::setTestNow(Carbon::now()->addSeconds(2)); - line 69: $handler->write('simple_id_2', 'abcd'); - line 70: $this->assertEquals(1, $handler->gc(2)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 79: public function test_destroy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 79: public function test_destroy() - line 81: $connection = $this->app['db']->connection(); - line 85: $handler1->write('id_1', 'some data'); - line 86: $handler2->write('id_2', 'some data'); - line 89: $this->assertEquals(true, $handler1->destroy('invalid_session_id')); - line 91: $this->assertEquals(2, $connection->table('sessions')->count()); - line 94: $this->assertEquals(true, $handler2->destroy('id_1')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 99: public function test_it_can_work_without_container() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 99: public function test_it_can_work_without_container() - line 101: $connection = $this->app['db']->connection(); - line 105: $this->assertTrue($handler->write('session_id', 'some data')); - line 106: $this->assertEquals('some data', $handler->read('session_id')); - line 107: $this->assertEquals(1, $connection->table('sessions')->count()); - line 109: $session = $connection->table('sessions')->first(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Session/SessionPersistenceTest.php - Test @ line 17: public function testSessionIsPersistedEvenIfExceptionIsThrownFromRoute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 17: public function testSessionIsPersistedEvenIfExceptionIsThrownFromRoute() - line 22: Session::extend('fake-null', function () use ($handler) { - line 28: })->middleware('web'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 17: public function testSessionIsPersistedEvenIfExceptionIsThrownFromRoute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Support/AuthFacadeTest.php - Test @ line 11: public function testItFailsIfTheUiPackageIsMissing() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 11: public function testItFailsIfTheUiPackageIsMissing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Support/ExceptionsFacadeTest.php - Test @ line 22: public function testFakeAssertReported() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 22: public function testFakeAssertReported() - line 26: Exceptions::report($thrownException = new RuntimeException('test 1')); - line 30: Exceptions::assertReported(fn (RuntimeException $e) => $e->getMessage() === 'test 1'); - line 31: Exceptions::assertReported(fn (RuntimeException $e) => $e->getMessage() === 'test 2'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 39: public function testFakeAssertReportedCount() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 39: public function testFakeAssertReportedCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 49: public function testFakeAssertReportedCountMayFail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 49: public function testFakeAssertReportedCountMayFail() - line 53: Exceptions::report(new RuntimeException('test 1')); - line 56: $this->expectException(ExpectationFailedException::class); - line 57: $this->expectExceptionMessage('The total number of exceptions reported was 2 instead of 1.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testFakeAssertReportedCountMayFail() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 62: public function testFakeAssertReportedWithFakedExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 62: public function testFakeAssertReportedWithFakedExceptions() - line 68: Exceptions::report(new RuntimeException('test 1')); - line 73: Exceptions::assertReported(fn (RuntimeException $e) => $e->getMessage() === 'test 1'); - line 74: Exceptions::assertReported(fn (RuntimeException $e) => $e->getMessage() === 'test 2'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 62: public function testFakeAssertReportedWithFakedExceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 80: public function testFakeAssertReportedAsStringMayFail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 80: public function testFakeAssertReportedAsStringMayFail() - line 82: $this->expectException(ExpectationFailedException::class); - line 83: $this->expectExceptionMessage('The expected [InvalidArgumentException] exception was not reported.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 80: public function testFakeAssertReportedAsStringMayFail() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 93: public function testFakeAssertReportedAsClosureMayFail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 93: public function testFakeAssertReportedAsClosureMayFail() - line 95: $this->expectException(ExpectationFailedException::class); - line 96: $this->expectExceptionMessage('The expected [InvalidArgumentException] exception was not reported.'); - line 103: Exceptions::assertReported(fn (InvalidArgumentException $e) => $e->getMessage() === 'test 2'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 93: public function testFakeAssertReportedAsClosureMayFail() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 106: public function testFakeAssertReportedWithFakedExceptionsMayFail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 106: public function testFakeAssertReportedWithFakedExceptionsMayFail() - line 108: $this->expectException(ExpectationFailedException::class); - line 109: $this->expectExceptionMessage('The expected [RuntimeException] exception was not reported.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 106: public function testFakeAssertReportedWithFakedExceptionsMayFail() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 120: public function testFakeAssertNotReported() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 120: public function testFakeAssertNotReported() - line 124: Exceptions::report(new RuntimeException('test 1')); - line 128: Exceptions::assertNotReported(fn (InvalidArgumentException $e) => $e->getMessage() === 'test 1'); - line 129: Exceptions::assertNotReported(fn (InvalidArgumentException $e) => $e->getMessage() === 'test 2'); - line 130: Exceptions::assertNotReported(fn (InvalidArgumentException $e) => $e->getMessage() === 'test 3'); - line 131: Exceptions::assertNotReported(fn (InvalidArgumentException $e) => $e->getMessage() === 'test 4'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 120: public function testFakeAssertNotReported() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 136: public function testFakeAssertNotReportedWithFakedExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 136: public function testFakeAssertNotReportedWithFakedExceptions() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 136: public function testFakeAssertNotReportedWithFakedExceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 148: public function testFakeAssertNotReportedMayFail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 148: public function testFakeAssertNotReportedMayFail() - line 150: $this->expectException(ExpectationFailedException::class); - line 151: $this->expectExceptionMessage('The expected [RuntimeException] exception was reported.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 148: public function testFakeAssertNotReportedMayFail() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 160: public function testFakeAssertNotReportedAsClosureMayFail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 160: public function testFakeAssertNotReportedAsClosureMayFail() - line 162: $this->expectException(ExpectationFailedException::class); - line 163: $this->expectExceptionMessage('The expected [RuntimeException] exception was reported.'); - line 169: Exceptions::assertNotReported(fn (RuntimeException $e) => $e->getMessage() === 'test 1'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 160: public function testFakeAssertNotReportedAsClosureMayFail() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 172: public function testResolvesExceptionHandler() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 172: public function testResolvesExceptionHandler() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 180: public function testFakeAssertNothingReported() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 180: public function testFakeAssertNothingReported() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 180: public function testFakeAssertNothingReported() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 187: public function testFakeAssertNothingReportedWithFakedExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 187: public function testFakeAssertNothingReportedWithFakedExceptions() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 187: public function testFakeAssertNothingReportedWithFakedExceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 198: public function testFakeAssertNothingReportedMayFail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 198: public function testFakeAssertNothingReportedMayFail() - line 200: $this->expectException(ExpectationFailedException::class); - line 201: $this->expectExceptionMessage('The following exceptions were reported: RuntimeException, RuntimeException, InvalidArgumentException.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 198: public function testFakeAssertNothingReportedMayFail() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 212: public function testFakeMethodReturnsExceptionHandlerFake() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 212: public function testFakeMethodReturnsExceptionHandlerFake() - line 215: $this->assertInstanceOf(ExceptionHandlerFake::class, Exceptions::getFacadeRoot()); - line 216: $this->assertInstanceOf(Handler::class, $fake->handler()); - line 220: $this->assertInstanceOf(Handler::class, $fake->handler()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 212: public function testFakeMethodReturnsExceptionHandlerFake() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 223: public function testReportedExceptionsAreNotThrownByDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 223: public function testReportedExceptionsAreNotThrownByDefault() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 223: public function testReportedExceptionsAreNotThrownByDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 239: public function testReportedExceptionsAreNotThrownByDefaultWithoutExceptionHandling() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 239: public function testReportedExceptionsAreNotThrownByDefaultWithoutExceptionHandling() - line 241: $this->withoutExceptionHandling(); - line 245: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 250: public function testThrowOnReport() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 250: public function testThrowOnReport() - line 252: Exceptions::fake()->throwOnReport(); - line 254: $this->expectException(Exception::class); - line 255: $this->expectExceptionMessage('Test exception'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 250: public function testThrowOnReport() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 260: public function testThrowOnReportDoesNotThrowExceptionsThatShouldNotBeReported() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 260: public function testThrowOnReportDoesNotThrowExceptionsThatShouldNotBeReported() - line 262: Exceptions::fake()->throwOnReport(); - line 266: }); - line 272: }); - line 276: $this->doesNotPerformAssertions(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 281: public function testThrowOnReportWithExceptionHandling() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 281: public function testThrowOnReportWithExceptionHandling() - line 283: Exceptions::fake()->throwOnReport(); - line 289: $this->expectException(Exception::class); - line 290: $this->expectExceptionMessage('Test exception'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 281: public function testThrowOnReportWithExceptionHandling() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 295: public function testThrowOnReportWithoutExceptionHandling() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 295: public function testThrowOnReportWithoutExceptionHandling() - line 297: Exceptions::fake()->throwOnReport(); - line 299: $this->withoutExceptionHandling(); - line 305: $this->expectException(Exception::class); - line 306: $this->expectExceptionMessage('Test exception'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 295: public function testThrowOnReportWithoutExceptionHandling() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 311: public function testThrowOnReportRegardlessOfTheCallingOrderOfWithoutExceptionHandling() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 311: public function testThrowOnReportRegardlessOfTheCallingOrderOfWithoutExceptionHandling() - line 313: Exceptions::fake()->throwOnReport(); - line 316: ->withoutExceptionHandling() - line 324: $this->expectException(Exception::class); - line 325: $this->expectExceptionMessage('Test exception'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 311: public function testThrowOnReportRegardlessOfTheCallingOrderOfWithoutExceptionHandling() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 330: public function testThrowOnReportRegardlessOfTheCallingOrderOfWithExceptionHandling() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 330: public function testThrowOnReportRegardlessOfTheCallingOrderOfWithExceptionHandling() - line 332: Exceptions::fake()->throwOnReport(); - line 334: $this->withoutExceptionHandling() - line 343: $this->expectException(Exception::class); - line 344: $this->expectExceptionMessage('Test exception'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 330: public function testThrowOnReportRegardlessOfTheCallingOrderOfWithExceptionHandling() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 349: public function testThrowOnReportWithFakedExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 349: public function testThrowOnReportWithFakedExceptions() - line 351: Exceptions::fake([InvalidArgumentException::class])->throwOnReport(); - line 353: $this->expectException(InvalidArgumentException::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 349: public function testThrowOnReportWithFakedExceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 360: public function testThrowOnReportWithFakedExceptionsFromFacade() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 360: public function testThrowOnReportWithFakedExceptionsFromFacade() - line 362: Exceptions::fake([InvalidArgumentException::class])->throwOnReport(); - line 364: $this->expectException(InvalidArgumentException::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 360: public function testThrowOnReportWithFakedExceptionsFromFacade() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 373: public function testThrowOnReporEvenWhenAppReportablesReturnFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 373: public function testThrowOnReporEvenWhenAppReportablesReturnFalse() - line 375: app(ExceptionHandler::class)->reportable(function (Throwable $e) { - line 379: Exceptions::fake()->throwOnReport(); - line 381: $this->expectException(Exception::class); - line 382: $this->expectExceptionMessage('Test exception'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 373: public function testThrowOnReporEvenWhenAppReportablesReturnFalse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 387: public function testAppReportablesAreNotCalledIfExceptionIsNotFaked() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 387: public function testAppReportablesAreNotCalledIfExceptionIsNotFaked() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 400: public function testThrowOnReportLeaveAppReportablesUntouched() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 400: public function testThrowOnReportLeaveAppReportablesUntouched() - line 402: app(ExceptionHandler::class)->reportable(function (Throwable $e) { - line 406: Exceptions::fake([RuntimeException::class])->throwOnReport(); - line 408: $this->expectException(InvalidArgumentException::class); - line 409: $this->expectExceptionMessage('My exception message'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 400: public function testThrowOnReportLeaveAppReportablesUntouched() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 414: public function testThrowReportedExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 414: public function testThrowReportedExceptions() - line 418: $this->expectException(Exception::class); - line 419: $this->expectExceptionMessage('Test exception'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 414: public function testThrowReportedExceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 426: public function testThrowReportedExceptionsWithFakedExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 426: public function testThrowReportedExceptionsWithFakedExceptions() - line 430: $this->expectException(InvalidArgumentException::class); - line 431: $this->expectExceptionMessage('Test exception'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 426: public function testThrowReportedExceptionsWithFakedExceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 439: public function testThrowReportedExceptionsWhenThereIsNone() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 439: public function testThrowReportedExceptionsWhenThereIsNone() - line 443: Exceptions::throwFirstReported(); - line 451: $this->doesNotPerformAssertions(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 439: public function testThrowReportedExceptionsWhenThereIsNone() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 454: public function testFakingExceptionsThatShouldNotBeReportedWithExceptionHandling() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 454: public function testFakingExceptionsThatShouldNotBeReportedWithExceptionHandling() - line 459: Validator::validate(['name' => ''], ['name' => 'required']); - line 460: }); - line 466: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 475: public function testFakingExceptionsThatShouldNotBeReportedWithRescueAndWithoutExceptionHandling() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 475: public function testFakingExceptionsThatShouldNotBeReportedWithRescueAndWithoutExceptionHandling() - line 479: $this->withoutExceptionHandling(); - line 483: }); - line 489: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 498: public function testRescue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 498: public function testRescue() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 498: public function testRescue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 507: public function testRescueWithoutReport() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 507: public function testRescueWithoutReport() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 507: public function testRescueWithoutReport() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 516: public function testFlowBetweenFakeAndTestExceptionHandling() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 516: public function testFlowBetweenFakeAndTestExceptionHandling() - line 522: $this->assertInstanceOf(Handler::class, Exceptions::fake()->handler()); - line 523: $this->assertFalse((new \ReflectionClass(Exceptions::fake()->handler()))->isAnonymous()); - line 527: $this->assertInstanceOf(Handler::class, Exceptions::fake()->handler()); - line 528: $this->assertFalse((new \ReflectionClass(Exceptions::fake()->handler()))->isAnonymous()); - line 530: $this->withoutExceptionHandling(); - line 532: $this->assertInstanceOf(ExceptionHandler::class, Exceptions::fake()->handler()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 546: public function testFlowBetweenTestExceptionHandlingAndFake() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 546: public function testFlowBetweenTestExceptionHandlingAndFake() - line 548: $this->withoutExceptionHandling(); - line 549: $this->assertTrue((new \ReflectionClass(app(ExceptionHandler::class)))->isAnonymous()); - line 553: $this->assertInstanceOf(ExceptionHandler::class, Exceptions::fake()->handler()); - line 554: $this->assertTrue((new \ReflectionClass(Exceptions::fake()->handler()))->isAnonymous()); - line 558: $this->assertInstanceOf(ExceptionHandler::class, Exceptions::fake()->handler()); - line 559: $this->assertTrue((new \ReflectionClass(Exceptions::fake()->handler()))->isAnonymous()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 580: public function testWithoutDeprecationHandler() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 580: public function testWithoutDeprecationHandler() - line 584: $this->withoutDeprecationHandling(); - line 588: }); - line 593: return $e->getMessage() === 'str_contains(): Passing null to parameter #1 ($haystack) of type string is deprecated'; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Support/FacadesTest.php - Test @ line 22: public function testFacadeResolvedCanResolveCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 22: public function testFacadeResolvedCanResolveCallback() - line 24: Auth::resolved(function (AuthManager $auth, Application $app) { - line 30: $this->app->make('auth'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 25: $_SERVER['__laravel.authResolved'] = true; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 22: public function testFacadeResolvedCanResolveCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 35: public function testFacadeResolvedCanResolveCallbackAfterAccessRootHasBeenResolved() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 42: $_SERVER['__laravel.authResolved'] = true; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 35: public function testFacadeResolvedCanResolveCallbackAfterAccessRootHasBeenResolved() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 48: public function testDefaultAliases() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 48: public function testDefaultAliases() - line 50: $defaultAliases = Facade::defaultAliases(); - line 59: $this->assertSame($abstract, $reflection->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Support/ManagerTest.php - Test @ line 11: public function testDefaultDriverCannotBeNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 11: public function testDefaultDriverCannotBeNull() - line 13: $this->expectException(InvalidArgumentException::class); - line 15: (new NullableManager($this->app))->driver(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 11: public function testDefaultDriverCannotBeNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Support/MultipleInstanceManagerTest.php - Test @ line 11: public function test_configurable_instances_can_be_resolved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 11: public function test_configurable_instances_can_be_resolved() - line 15: $fooInstance = $manager->instance('foo'); - line 18: $barInstance = $manager->instance('bar'); - line 21: $mysqlInstance = $manager->instance('mysql_database-connection'); - line 24: $duplicateFooInstance = $manager->instance('foo'); - line 25: $duplicateBarInstance = $manager->instance('bar'); - line 26: $duplicateMysqlInstance = $manager->instance('mysql_database-connection'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 32: public function test_unresolvable_instances_throw_errors() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 32: public function test_unresolvable_instances_throw_errors() - line 34: $this->expectException(RuntimeException::class); - line 38: $instance = $manager->instance('missing'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 32: public function test_unresolvable_instances_throw_errors() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Support/PluralizerPortugueseTest.php - Test @ line 87: public function testPluralStudlySupportsArrays() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 87: public function testPluralStudlySupportsArrays() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 87: public function testPluralStudlySupportsArrays() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 94: public function testPluralStudlySupportsCollections() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 94: public function testPluralStudlySupportsCollections() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 94: public function testPluralStudlySupportsCollections() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Testing/ArtisanCommandTest.php - Test @ line 70: public function test_console_command_that_passes() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 70: public function test_console_command_that_passes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 75: public function test_console_command_that_fails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 75: public function test_console_command_that_fails() - line 77: $this->expectException(AssertionFailedError::class); - line 78: $this->expectExceptionMessage('Expected status code 0 but received 1.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 75: public function test_console_command_that_fails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 83: public function test_console_command_that_passes_with_output() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 83: public function test_console_command_that_passes_with_output() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 93: public function test_console_command_that_passes_with_repeating_output() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 93: public function test_console_command_that_passes_with_repeating_output() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 106: public function test_console_command_that_fails_from_unexpected_output() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 106: public function test_console_command_that_fails_from_unexpected_output() - line 108: $this->expectException(AssertionFailedError::class); - line 109: $this->expectExceptionMessage('Output "Your name is Taylor Otwell and you prefer PHP." was printed.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 106: public function test_console_command_that_fails_from_unexpected_output() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 118: public function test_console_command_that_fails_from_unexpected_output_substring() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 118: public function test_console_command_that_fails_from_unexpected_output_substring() - line 120: $this->expectException(AssertionFailedError::class); - line 121: $this->expectExceptionMessage('Output "Taylor Otwell" was printed.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 118: public function test_console_command_that_fails_from_unexpected_output_substring() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 128: public function test_console_command_that_fails_from_missing_output() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 128: public function test_console_command_that_fails_from_missing_output() - line 130: $this->expectException(AssertionFailedError::class); - line 131: $this->expectExceptionMessage('Output "Your name is Taylor Otwell and you prefer PHP." was not printed.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 128: public function test_console_command_that_fails_from_missing_output() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 142: public function test_console_command_that_fails_from_exit_code_mismatch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 142: public function test_console_command_that_fails_from_exit_code_mismatch() - line 144: $this->expectException(AssertionFailedError::class); - line 145: $this->expectExceptionMessage('Expected status code 1 but received 0.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 142: public function test_console_command_that_fails_from_exit_code_mismatch() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 153: public function test_console_command_that_fails_from_unordered_output() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 153: public function test_console_command_that_fails_from_unordered_output() - line 155: $this->expectException(InvalidOrderException::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 153: public function test_console_command_that_fails_from_unordered_output() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 169: public function test_console_command_that_passes_if_the_output_contains() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 169: public function test_console_command_that_passes_if_the_output_contains() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 176: public function test_console_command_that_passes_if_outputs_something() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 176: public function test_console_command_that_passes_if_outputs_something() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 183: public function test_console_command_that_passes_if_outputs_is_something_and_is_the_expected_output() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 183: public function test_console_command_that_passes_if_outputs_is_something_and_is_the_expected_output() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 191: public function test_console_command_that_fail_if_doesnt_output_something() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 191: public function test_console_command_that_fail_if_doesnt_output_something() - line 193: $this->expectException(InvalidCountException::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 191: public function test_console_command_that_fail_if_doesnt_output_something() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 202: public function test_console_command_that_fail_if_doesnt_output_something_and_is_not_the_expected_output() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 202: public function test_console_command_that_fail_if_doesnt_output_something_and_is_not_the_expected_output() - line 204: $this->expectException(AssertionFailedError::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 202: public function test_console_command_that_fail_if_doesnt_output_something_and_is_not_the_expected_output() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 214: public function test_console_command_that_passes_if_does_not_output_anything() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 214: public function test_console_command_that_passes_if_does_not_output_anything() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 221: public function test_console_command_that_passes_if_does_not_output_anything_and_is_not_the_expected_output() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 221: public function test_console_command_that_passes_if_does_not_output_anything_and_is_not_the_expected_output() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 229: public function test_console_command_that_passes_if_expects_output_and_there_is_interactions() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 229: public function test_console_command_that_passes_if_expects_output_and_there_is_interactions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 239: public function test_console_command_that_fails_if_doesnt_expect_output_but__there_is_interactions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 239: public function test_console_command_that_fails_if_doesnt_expect_output_but__there_is_interactions() - line 241: $this->expectException(InvalidCountException::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 239: public function test_console_command_that_fails_if_doesnt_expect_output_but__there_is_interactions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 253: public function test_console_command_that_fails_if_doesnt_expect_output_but_outputs_something() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 253: public function test_console_command_that_fails_if_doesnt_expect_output_but_outputs_something() - line 255: $this->expectException(InvalidCountException::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 253: public function test_console_command_that_fails_if_doesnt_expect_output_but_outputs_something() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 264: public function test_console_command_that_fails_if_doesnt_expect_output_and_does_expect_output() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 264: public function test_console_command_that_fails_if_doesnt_expect_output_and_does_expect_output() - line 266: $this->expectException(InvalidCountException::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 264: public function test_console_command_that_fails_if_doesnt_expect_output_and_does_expect_output() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 276: public function test_console_command_that_fails_if_the_output_does_not_contain() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 276: public function test_console_command_that_fails_if_the_output_does_not_contain() - line 278: $this->expectException(AssertionFailedError::class); - line 279: $this->expectExceptionMessage('Output does not contain "Otwell Taylor".'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 276: public function test_console_command_that_fails_if_the_output_does_not_contain() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 288: public function test_pending_command_can_be_tapped() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 288: public function test_pending_command_can_be_tapped() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Testing/TestCaseTest.php - Test @ line 10: public function test_without_vite_clear_facade_resolved_instance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 10: public function test_without_vite_clear_facade_resolved_instance() - line 12: Vite::useScriptTagAttributes([ - line 16: $this->withoutVite(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 10: public function test_without_vite_clear_facade_resolved_instance() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Testing/TestWithoutDatabaseParallelTest.php - Test @ line 41: public function testRunningParallelTestWithoutDatabaseShouldNotCrashOnDefaultConnection() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 41: public function testRunningParallelTestWithoutDatabaseShouldNotCrashOnDefaultConnection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/Translation/TranslatorTest.php - Test @ line 33: public function testItCanCheckLanguageExistsHasFromLocaleForJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 33: public function testItCanCheckLanguageExistsHasFromLocaleForJson() - line 35: $this->assertTrue($this->app['translator']->has('1 Day')); - line 36: $this->assertTrue($this->app['translator']->hasForLocale('1 Day')); - line 37: $this->assertTrue($this->app['translator']->hasForLocale('30 Days')); - line 39: $this->app->setLocale('fr'); - line 41: $this->assertFalse($this->app['translator']->has('1 Day')); - line 42: $this->assertFalse($this->app['translator']->hasForLocale('1 Day')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 46: public function testItCanCheckKeyExistsWithoutTriggeringHandleMissingKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 46: public function testItCanCheckKeyExistsWithoutTriggeringHandleMissingKeys() - line 48: $this->app['translator']->handleMissingKeysUsing(function ($key) { - line 52: $this->assertFalse($this->app['translator']->has('Foo Bar')); - line 55: $this->assertFalse($this->app['translator']->hasForLocale('Foo Bar', 'nl')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 49: $_SERVER['__missing_translation_key'] = $key; - Test @ line 59: public function testItCanHandleMissingKeysUsingCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 59: public function testItCanHandleMissingKeysUsingCallback() - line 61: $this->app['translator']->handleMissingKeysUsing(function ($key) { - line 72: $this->app['translator']->handleMissingKeysUsing(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 62: $_SERVER['__missing_translation_key'] = $key; - Test @ line 75: public function testItCanHandleMissingKeysNoReturn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 75: public function testItCanHandleMissingKeysNoReturn() - line 77: $this->app['translator']->handleMissingKeysUsing(function ($key) { - line 86: $this->app['translator']->handleMissingKeysUsing(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 78: $_SERVER['__missing_translation_key'] = $key; - Test @ line 89: public function testItReturnsCorrectLocaleForMissingKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 89: public function testItReturnsCorrectLocaleForMissingKeys() - line 91: $this->app['translator']->handleMissingKeysUsing(function ($key, $replacements, $locale) { - line 99: $this->app['translator']->handleMissingKeysUsing(null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 92: $_SERVER['__missing_translation_key_locale'] = $locale; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 89: public function testItReturnsCorrectLocaleForMissingKeys() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 103: public function testItCanHandleChoice(int $count, string $expected, ?string $locale = null) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 103: public function testItCanHandleChoice(int $count, string $expected, ?string $locale = null) - line 106: $this->app->setLocale($locale); - line 113: $this->app['translator']->choice('tests::app.greeting', $count, ['name' => $name]) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 118: public function testItCanHandleChoiceWithChoiceSeparatorInReplaceString(int $count, string $expected, ?string $locale = null) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 118: public function testItCanHandleChoiceWithChoiceSeparatorInReplaceString(int $count, string $expected, ?string $locale = null) - line 121: $this->app->setLocale($locale); - line 128: $this->app['translator']->choice('tests::app.greeting', $count, ['name' => $name]) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/Validation/Rules/FileValidationTest.php - Test @ line 55: public function test_file_custom_validation_messages() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 55: public function test_file_custom_validation_messages() - line 59: 'one' => UploadedFile::fake()->create('photo', 1000), - line 73: $this->assertTrue($validator->fails()); - line 78: ], $validator->messages()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Integration/View/BladeAnonymousComponentTest.php - Test @ line 12: public function test_anonymous_components_with_custom_paths_can_be_rendered() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 12: public function test_anonymous_components_with_custom_paths_can_be_rendered() - line 14: Blade::anonymousComponentPath(__DIR__.'/anonymous-components-1', 'layouts'); - line 17: $view = View::make('page')->render(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 24: public function test_anonymous_components_with_custom_paths_cant_be_rendered_as_normal_views() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 24: public function test_anonymous_components_with_custom_paths_cant_be_rendered_as_normal_views() - line 26: $this->expectException(InvalidArgumentException::class); - line 31: $view = View::make('layouts::app')->render(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 24: public function test_anonymous_components_with_custom_paths_cant_be_rendered_as_normal_views() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 34: public function test_anonymous_components_with_custom_paths_cant_be_rendered_as_normal_views_even_with_no_prefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 34: public function test_anonymous_components_with_custom_paths_cant_be_rendered_as_normal_views_even_with_no_prefix() - line 36: $this->expectException(InvalidArgumentException::class); - line 41: $view = View::make('panel')->render(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function test_anonymous_components_with_custom_paths_cant_be_rendered_as_normal_views_even_with_no_prefix() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/View/BladeTest.php - Test @ line 43: public function test_rendering_blade_long_maxpathlen_string_with_exact_length() Violations: - [BOOTSTRAP_PURITY_INI_SET] Note: ini_set mutates runtime INI settings for the whole process unless restored. Evidence: - line 50: $iniSet = ini_set( - Test @ line 118: public function test_appendable_attributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 118: public function test_appendable_attributes() - line 120: $view = View::make('uses-appendable-panel', ['name' => 'Taylor', 'withInjectedValue' => true])->render(); - line 126: $view = View::make('uses-appendable-panel', ['name' => 'Taylor', 'withInjectedValue' => false])->render(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 217: public function testViewCacheCommandHandlesConfiguredBladeExtensions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 217: public function testViewCacheCommandHandlesConfiguredBladeExtensions() - line 219: View::addExtension('sh', 'blade'); - line 222: $compiledFiles = Finder::create()->in(Config::get('view.compiled'))->files(); - line 224: ->contains(fn (SplFileInfo $file) => str_contains($file->getContents(), 'echo "" > output.log')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 217: public function testViewCacheCommandHandlesConfiguredBladeExtensions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Integration/View/RenderableViewExceptionTest.php - Test @ line 13: public function testRenderMethodOfExceptionThrownInViewGetsHandled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 13: public function testRenderMethodOfExceptionThrownInViewGetsHandled() - line 16: return View::make('renderable-exception'); - line 17: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 13: public function testRenderMethodOfExceptionThrownInViewGetsHandled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/JsonSchema/StringTypeTest.php - Test @ line 10: public function test_it_sets_min_length() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 10: public function test_it_sets_min_length() - line 12: $type = (new StringType)->min(5); - line 17: ], $type->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 20: public function test_it_sets_max_length() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 20: public function test_it_sets_max_length() - line 22: $type = (new StringType)->description('User handle')->max(10); - line 28: ], $type->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 31: public function test_it_sets_pattern() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 31: public function test_it_sets_pattern() - line 33: $type = (new StringType)->default('foo')->pattern('^foo.*$'); - line 39: ], $type->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 42: public function test_it_sets_format() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 42: public function test_it_sets_format() - line 44: $type = (new StringType)->default('foo')->format('date'); - line 50: ], $type->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 53: public function test_it_sets_enum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 53: public function test_it_sets_enum() - line 55: $type = (new StringType)->enum(['draft', 'published']); - line 60: ], $type->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Log/ContextTest.php - Test @ line 65: public function test_it_can_listen_to_the_hydrating_event() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 65: public function test_it_can_listen_to_the_hydrating_event() - line 67: Context::add('one', 1); - line 72: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 80: public function test_it_can_listen_to_the_dehydrated_event() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 80: public function test_it_can_listen_to_the_dehydrated_event() - line 82: Context::add('one', 1); - line 87: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 95: public function test_it_can_modify_context_while_dehydrating_without_impacting_global_instance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 95: public function test_it_can_modify_context_while_dehydrating_without_impacting_global_instance() - line 97: Context::add('one', 1); - line 99: $context->add('one', 99); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 109: public function test_dehydrate_returns_null_when_empty() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 109: public function test_dehydrate_returns_null_when_empty() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 114: public function test_hydrating_null_triggers_hydrating_event() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 114: public function test_hydrating_null_triggers_hydrating_event() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 189: public function test_throws_when_pushing_to_non_array() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 189: public function test_throws_when_pushing_to_non_array() - line 191: Context::add('breadcrumbs', 'foo'); - line 193: $this->expectException(RuntimeException::class); - line 194: $this->expectExceptionMessage('Unable to push value onto context stack for key [breadcrumbs].'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 189: public function test_throws_when_pushing_to_non_array() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 198: public function test_throws_when_pushing_to_non_list_array() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 198: public function test_throws_when_pushing_to_non_list_array() - line 200: Context::add('breadcrumbs', ['foo' => 'bar']); - line 202: $this->expectException(RuntimeException::class); - line 203: $this->expectExceptionMessage('Unable to push value onto context stack for key [breadcrumbs].'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 198: public function test_throws_when_pushing_to_non_list_array() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 216: public function test_throws_when_popping_from_empty_list() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 216: public function test_throws_when_popping_from_empty_list() - line 218: Context::push('breadcrumbs', 'bar'); - line 221: $this->expectException(RuntimeException::class); - line 222: $this->expectExceptionMessage('Unable to pop value from context stack for key [breadcrumbs].'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 216: public function test_throws_when_popping_from_empty_list() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 227: public function test_throws_when_popping_from_non_list_array() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 227: public function test_throws_when_popping_from_non_list_array() - line 229: Context::add('breadcrumbs', ['foo' => 'bar']); - line 231: $this->expectException(RuntimeException::class); - line 232: $this->expectExceptionMessage('Unable to pop value from context stack for key [breadcrumbs].'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 227: public function test_throws_when_popping_from_non_list_array() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 245: public function test_throws_when_popping_from_empty_hidden_list() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 245: public function test_throws_when_popping_from_empty_hidden_list() - line 247: Context::pushHidden('breadcrumbs', 'bar'); - line 250: $this->expectException(RuntimeException::class); - line 251: $this->expectExceptionMessage('Unable to pop value from hidden context stack for key [breadcrumbs].'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 245: public function test_throws_when_popping_from_empty_hidden_list() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 256: public function test_throws_when_popping_from_hidden_non_list_array() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 256: public function test_throws_when_popping_from_hidden_non_list_array() - line 258: Context::addHidden('breadcrumbs', ['foo' => 'bar']); - line 260: $this->expectException(RuntimeException::class); - line 261: $this->expectExceptionMessage('Unable to pop value from hidden context stack for key [breadcrumbs].'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 256: public function test_throws_when_popping_from_hidden_non_list_array() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 395: public function test_it_adds_context_to_logging() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 395: public function test_it_adds_context_to_logging() - line 399: Str::createUuidsUsingSequence(['expected-trace-id']); - line 406: Log::channel('single')->info('My name is {name}', [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 418: public function test_it_doesnt_override_log_instance_context() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 418: public function test_it_doesnt_override_log_instance_context() - line 422: Str::createUuidsUsingSequence(['expected-trace-id']); - line 426: Log::channel('single')->info('My name is {name}', [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 437: public function test_it_doesnt_allow_context_to_be_used_as_parameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 437: public function test_it_doesnt_allow_context_to_be_used_as_parameters() - line 441: Str::createUuidsUsingSequence(['expected-trace-id']); - line 445: Log::channel('single')->info('My name is {name}'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 454: public function test_does_not_add_hidden_context_to_logging() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 454: public function test_does_not_add_hidden_context_to_logging() - line 458: Str::createUuidsUsingSequence(['expected-trace-id']); - line 462: Log::channel('single')->info('My name is {name}', [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 474: public function test_it_can_add_hidden() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 474: public function test_it_can_add_hidden() - line 476: Context::addHidden('foo', 'data'); - line 497: $this->expectException(RuntimeException::class); - line 498: $this->expectExceptionMessage('Unable to push value onto hidden context stack for key [foo].'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 515: public function test_it_adds_context_to_logged_exceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 515: public function test_it_adds_context_to_logged_exceptions() - line 519: Str::createUuidsUsingSequence(['expected-trace-id']); - line 526: $this->app[ExceptionHandler::class]->report(new Exception('Whoops!')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 515: public function test_it_adds_context_to_logged_exceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 535: public function test_scope_sets_keys_and_restores() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 535: public function test_scope_sets_keys_and_restores() - line 539: $contextInClosure = ['data' => Context::all(), 'hidden' => Context::allHidden()]; - line 558: $this->fail('No exception was thrown.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 535: public function test_scope_sets_keys_and_restores() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Log/LogLoggerTest.php - Test @ line 21: public function testMethodsPassErrorAdditionsToMonolog() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 21: public function testMethodsPassErrorAdditionsToMonolog() - line 23: $writer = new Logger($monolog = m::mock(Monolog::class)); - line 26: $writer->error('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 23: $writer = new Logger($monolog = m::mock(Monolog::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 21: public function testMethodsPassErrorAdditionsToMonolog() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 29: public function testContextIsAddedToAllSubsequentLogs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 29: public function testContextIsAddedToAllSubsequentLogs() - line 31: $writer = new Logger($monolog = m::mock(Monolog::class)); - line 32: $writer->withContext(['bar' => 'baz']); - line 36: $writer->error('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 31: $writer = new Logger($monolog = m::mock(Monolog::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 29: public function testContextIsAddedToAllSubsequentLogs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 39: public function testContextIsFlushed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 39: public function testContextIsFlushed() - line 41: $writer = new Logger($monolog = m::mock(Monolog::class)); - line 42: $writer->withContext(['bar' => 'baz']); - line 43: $writer->withoutContext(); - line 47: $writer->error('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 41: $writer = new Logger($monolog = m::mock(Monolog::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 39: public function testContextIsFlushed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 50: public function testContextKeysCanBeRemovedForSubsequentLogs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 50: public function testContextKeysCanBeRemovedForSubsequentLogs() - line 52: $writer = new Logger($monolog = m::mock(Monolog::class)); - line 53: $writer->withContext(['bar' => 'baz', 'forget' => 'me']); - line 54: $writer->withoutContext(['forget']); - line 58: $writer->error('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 52: $writer = new Logger($monolog = m::mock(Monolog::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 50: public function testContextKeysCanBeRemovedForSubsequentLogs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 61: public function testLoggerFiresEventsDispatcher() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 61: public function testLoggerFiresEventsDispatcher() - line 63: $writer = new Logger($monolog = m::mock(Monolog::class), $events = new Dispatcher); - line 66: $events->listen(MessageLogged::class, function ($event) { - line 72: $writer->error('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 67: $_SERVER['__log.level'] = $event->level; - line 68: $_SERVER['__log.message'] = $event->message; - line 69: $_SERVER['__log.context'] = $event->context; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 75: unset($_SERVER['__log.level']); - line 78: unset($_SERVER['__log.message']); - line 81: unset($_SERVER['__log.context']); - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 63: $writer = new Logger($monolog = m::mock(Monolog::class), $events = new Dispatcher); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 61: public function testLoggerFiresEventsDispatcher() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 84: public function testListenShortcutFailsWithNoDispatcher() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 84: public function testListenShortcutFailsWithNoDispatcher() - line 86: $this->expectException(RuntimeException::class); - line 87: $this->expectExceptionMessage('Events dispatcher has not been set.'); - line 90: $writer->listen(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 89: $writer = new Logger(m::mock(Monolog::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 84: public function testListenShortcutFailsWithNoDispatcher() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 95: public function testListenShortcut() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 95: public function testListenShortcut() - line 97: $writer = new Logger(m::mock(Monolog::class), $events = m::mock(DispatcherContract::class)); - line 104: $writer->listen($callback); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 97: $writer = new Logger(m::mock(Monolog::class), $events = m::mock(DispatcherContract::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 95: public function testListenShortcut() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 107: public function testComplexContextManipulation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 107: public function testComplexContextManipulation() - line 109: $writer = new Logger($monolog = m::mock(Monolog::class)); - line 111: $writer->withContext(['user_id' => 123, 'action' => 'login']); - line 112: $writer->withContext(['ip' => '127.0.0.1', 'timestamp' => '1986-10-29']); - line 113: $writer->withoutContext(['timestamp']); - line 121: $writer->info('User action'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 109: $writer = new Logger($monolog = m::mock(Monolog::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 107: public function testComplexContextManipulation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Log/LogManagerTest.php - Test @ line 29: public function testLogManagerCachesLoggerInstances() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 29: public function testLogManagerCachesLoggerInstances() - line 33: $logger1 = $manager->channel('single')->getLogger(); - line 34: $logger2 = $manager->channel('single')->getLogger(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 39: public function testLogManagerGetDefaultDriver() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 39: public function testLogManagerGetDefaultDriver() - line 45: $this->assertEmpty($manager->getChannels()); - line 48: $manager->channel(); - line 49: $this->assertCount(1, $manager->getChannels()); - line 50: $this->assertEquals('single', $manager->getDefaultDriver()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 53: public function testStackChannel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 53: public function testStackChannel() - line 86: $logger = $manager->channel('stack'); - line 87: $handlers = $logger->getLogger()->getHandlers(); - line 92: $this->assertInstanceOf(PsrLogMessageProcessor::class, $logger->getLogger()->getProcessors()[2]); - line 94: $this->assertEquals(Level::Notice, $handlers[0]->getLevel()); - line 95: $this->assertEquals(Level::Info, $handlers[1]->getLevel()); - line 96: $this->assertFalse($handlers[0]->getBubble()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 100: public function testParsingStackChannels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 100: public function testParsingStackChannels() - line 111: $manager->channel('stack'); - line 114: array_keys($manager->getChannels()), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 119: public function testLogManagerCreatesConfiguredMonologHandler() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 119: public function testLogManagerCreatesConfiguredMonologHandler() - line 136: $logger = $manager->channel('nonbubblingstream'); - line 137: $handlers = $logger->getLogger()->getHandlers(); - line 140: $this->assertSame('foobar', $logger->getName()); - line 143: $this->assertEquals(Level::Notice, $handlers[0]->getLevel()); - line 144: $this->assertFalse($handlers[0]->getBubble()); - line 147: $this->assertSame('php://stderr', $url->getValue($handlers[0])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 167: public function testLogManagerCreatesMonologHandlerWithConfiguredFormatter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 167: public function testLogManagerCreatesMonologHandlerWithConfiguredFormatter() - line 180: $logger = $manager->channel('newrelic'); - line 181: $handler = $logger->getLogger()->getHandlers()[0]; - line 184: $this->assertInstanceOf(NormalizerFormatter::class, $handler->getFormatter()); - line 196: $logger = $manager->channel('newrelic2'); - line 197: $handler = $logger->getLogger()->getHandlers()[0]; - line 198: $formatter = $handler->getFormatter(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 208: public function testLogManagerCreatesMonologHandlerWithProperFormatter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 208: public function testLogManagerCreatesMonologHandlerWithProperFormatter() - line 210: $config = $this->app->make('config'); - line 220: $logger = $manager->channel('null'); - line 221: $handler = $logger->getLogger()->getHandlers()[0]; - line 230: $logger = $manager->channel('null2'); - line 231: $handler = $logger->getLogger()->getHandlers()[0]; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 208: public function testLogManagerCreatesMonologHandlerWithProperFormatter() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 236: public function testLogManagerCreatesMonologHandlerWithProcessors() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 236: public function testLogManagerCreatesMonologHandlerWithProcessors() - line 238: $config = $this->app->make('config'); - line 255: $logger = $manager->channel('memory'); - line 256: $handler = $logger->getLogger()->getHandlers()[0]; - line 257: $processors = $logger->getLogger()->getProcessors(); - line 265: $this->assertTrue($removeUsedContextFields->getValue($processors[2])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 268: public function testItUtilisesTheNullDriverDuringTestsWhenNullDriverUsed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 268: public function testItUtilisesTheNullDriverDuringTestsWhenNullDriverUsed() - line 270: $config = $this->app->make('config'); - line 285: $manager->info('message'); - line 288: $this->assertCount(1, $manager->getChannels()); - line 289: $manager->forgetChannel(); - line 290: $this->assertCount(0, $manager->getChannels()); - line 295: $manager->info('message'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 303: public function testLogManagerCreateSingleDriverWithConfiguredFormatter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 303: public function testLogManagerCreateSingleDriverWithConfiguredFormatter() - line 316: $logger = $manager->channel('defaultsingle'); - line 317: $handler = $logger->getLogger()->getHandlers()[0]; - line 318: $formatter = $handler->getFormatter(); - line 322: $this->assertInstanceOf(PsrLogMessageProcessor::class, $logger->getLogger()->getProcessors()[1]); - line 335: $logger = $manager->channel('formattedsingle'); - line 336: $handler = $logger->getLogger()->getHandlers()[0]; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 348: public function testLogManagerCreateDailyDriverWithConfiguredFormatter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 348: public function testLogManagerCreateDailyDriverWithConfiguredFormatter() - line 361: $logger = $manager->channel('defaultdaily'); - line 362: $handler = $logger->getLogger()->getHandlers()[0]; - line 363: $formatter = $handler->getFormatter(); - line 367: $this->assertInstanceOf(PsrLogMessageProcessor::class, $logger->getLogger()->getProcessors()[1]); - line 380: $logger = $manager->channel('formatteddaily'); - line 381: $handler = $logger->getLogger()->getHandlers()[0]; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 393: public function testLogManagerCreateSyslogDriverWithConfiguredFormatter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 393: public function testLogManagerCreateSyslogDriverWithConfiguredFormatter() - line 405: $logger = $manager->channel('defaultsyslog'); - line 406: $handler = $logger->getLogger()->getHandlers()[0]; - line 407: $formatter = $handler->getFormatter(); - line 411: $this->assertInstanceOf(PsrLogMessageProcessor::class, $logger->getLogger()->getProcessors()[1]); - line 423: $logger = $manager->channel('formattedsyslog'); - line 424: $handler = $logger->getLogger()->getHandlers()[0]; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 436: public function testLogManagerPurgeResolvedChannels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 436: public function testLogManagerPurgeResolvedChannels() - line 440: $this->assertEmpty($manager->getChannels()); - line 442: $manager->channel('single')->getLogger(); - line 444: $this->assertCount(1, $manager->getChannels()); - line 446: $manager->forgetChannel('single'); - line 448: $this->assertEmpty($manager->getChannels()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 451: public function testLogManagerCanBuildOnDemandChannel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 451: public function testLogManagerCanBuildOnDemandChannel() - line 455: $logger = $manager->build([ - line 459: $handler = $logger->getLogger()->getHandlers()[0]; - line 465: $this->assertSame(storage_path('logs/on-demand.log'), $url->getValue($handler)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 468: public function testLogManagerCanUseOnDemandChannelInOnDemandStack() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 468: public function testLogManagerCanUseOnDemandChannelInOnDemandStack() - line 486: $channel = $manager->build([ - line 490: $logger = $manager->stack(['test', $channel]); - line 492: $handler = $logger->getLogger()->getHandlers()[1]; - line 493: $processor = $logger->getLogger()->getProcessors()[1]; - line 500: $this->assertSame(storage_path('logs/custom.log'), $url->getValue($handler)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 503: public function testWrappingHandlerInFingersCrossedWhenActionLevelIsUsed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 503: public function testWrappingHandlerInFingersCrossedWhenActionLevelIsUsed() - line 521: $logger = $manager->channel('fingerscrossed'); - line 522: $handlers = $logger->getLogger()->getHandlers(); - line 531: $activationStrategyValue = $activationStrategyProp->getValue($expectedFingersCrossedHandler); - line 534: $actionLevelValue = $actionLevelProp->getValue($activationStrategyValue); - line 539: $expectedStreamHandler = $expectedFingersCrossedHandler->getHandler(); - line 542: $expectedStreamHandler = $handlerProp->getValue($expectedFingersCrossedHandler); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 548: public function testFingersCrossedHandlerStopsRecordBufferingAfterFirstFlushByDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 548: public function testFingersCrossedHandlerStopsRecordBufferingAfterFirstFlushByDefault() - line 566: $logger = $manager->channel('fingerscrossed'); - line 567: $handlers = $logger->getLogger()->getHandlers(); - line 572: $stopBufferingValue = $stopBufferingProp->getValue($expectedFingersCrossedHandler); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 548: public function testFingersCrossedHandlerStopsRecordBufferingAfterFirstFlushByDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 577: public function testFingersCrossedHandlerCanBeConfiguredToResumeBufferingAfterFlushing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 577: public function testFingersCrossedHandlerCanBeConfiguredToResumeBufferingAfterFlushing() - line 596: $logger = $manager->channel('fingerscrossed'); - line 597: $handlers = $logger->getLogger()->getHandlers(); - line 602: $stopBufferingValue = $stopBufferingProp->getValue($expectedFingersCrossedHandler); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 577: public function testFingersCrossedHandlerCanBeConfiguredToResumeBufferingAfterFlushing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 607: public function testItSharesContextWithAlreadyResolvedChannels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 607: public function testItSharesContextWithAlreadyResolvedChannels() - line 610: $channel = $manager->channel('single'); - line 613: $channel->listen(function ($message) use (&$context) { - line 616: $manager->shareContext([ - line 619: $channel->info('xxxx'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 607: public function testItSharesContextWithAlreadyResolvedChannels() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 624: public function testItSharesContextWithFreshlyResolvedChannels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 624: public function testItSharesContextWithFreshlyResolvedChannels() - line 629: $manager->shareContext([ - line 632: $manager->channel('single')->listen(function ($message) use (&$context) { - line 635: $manager->channel('single')->info('xxxx'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 624: public function testItSharesContextWithFreshlyResolvedChannels() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 640: public function testContextCanBePubliclyAccessedByOtherLoggingSystems() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 640: public function testContextCanBePubliclyAccessedByOtherLoggingSystems() - line 645: $manager->shareContext([ - line 649: $this->assertSame($manager->sharedContext(), ['invocation-id' => 'expected-id']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 652: public function testItSharesContextWithStacksWhenTheyAreResolved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 652: public function testItSharesContextWithStacksWhenTheyAreResolved() - line 657: $manager->shareContext([ - line 660: $stack = $manager->stack(['single']); - line 661: $stack->listen(function ($message) use (&$context) { - line 664: $stack->info('xxxx'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 652: public function testItSharesContextWithStacksWhenTheyAreResolved() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 669: public function testItMergesSharedContextRatherThanReplacing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 669: public function testItMergesSharedContextRatherThanReplacing() - line 674: $manager->shareContext([ - line 677: $manager->shareContext([ - line 680: $manager->channel('single')->listen(function ($message) use (&$context) { - line 683: $manager->channel('single')->info('xxxx', [ - line 695: ], $manager->sharedContext()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 698: public function testFlushSharedContext() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 698: public function testFlushSharedContext() - line 702: $manager->shareContext($context = ['foo' => 'bar']); - line 704: $this->assertSame($context, $manager->sharedContext()); - line 706: $manager->flushSharedContext(); - line 708: $this->assertEmpty($manager->sharedContext()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 711: public function testLogManagerCreateCustomFormatterWithTap() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 711: public function testLogManagerCreateCustomFormatterWithTap() - line 721: $logger = $manager->channel('custom'); - line 722: $handler = $logger->getLogger()->getHandlers()[0]; - line 723: $formatter = $handler->getFormatter(); - line 731: rtrim($format->getValue($formatter))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 734: public function testDriverUsersPsrLoggerManagerReturnsLogger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 734: public function testDriverUsersPsrLoggerManagerReturnsLogger() - line 745: $manager->extend('spy', fn () => $loggerSpy); - line 748: $logger = $manager->channel('spy'); - line 749: $logger->alert('some alert'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 734: public function testDriverUsersPsrLoggerManagerReturnsLogger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Notifications/NotificationActionTest.php - Test @ line 10: public function testActionIsCreatedProperly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 10: public function testActionIsCreatedProperly() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 10: public function testActionIsCreatedProperly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Notifications/NotificationBroadcastChannelTest.php - Test @ line 21: public function testDatabaseChannelCreatesDatabaseRecordWithProperData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 21: public function testDatabaseChannelCreatesDatabaseRecordWithProperData() - line 25: $notifiable = m::mock(); - line 30: $channel->send($notifiable, $notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 27: $events = m::mock(Dispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 21: public function testDatabaseChannelCreatesDatabaseRecordWithProperData() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 33: public function testNotificationIsBroadcastedOnCustomChannels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 33: public function testNotificationIsBroadcastedOnCustomChannels() - line 37: $notifiable = m::mock(); - line 40: $notifiable, $notification, $notification->toArray($notifiable) - line 43: $channels = $event->broadcastOn(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 33: public function testNotificationIsBroadcastedOnCustomChannels() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 48: public function testNotificationIsBroadcastedWithCustomEventName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 48: public function testNotificationIsBroadcastedWithCustomEventName() - line 52: $notifiable = m::mock(); - line 55: $notifiable, $notification, $notification->toArray($notifiable) - line 58: $eventName = $event->broadcastType(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 48: public function testNotificationIsBroadcastedWithCustomEventName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 63: public function testNotificationIsBroadcastedWithCustomDataType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 63: public function testNotificationIsBroadcastedWithCustomDataType() - line 67: $notifiable = m::mock(); - line 70: $notifiable, $notification, $notification->toArray($notifiable) - line 73: $data = $event->broadcastWith(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 63: public function testNotificationIsBroadcastedWithCustomDataType() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 78: public function testNotificationIsBroadcastedNow() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 78: public function testNotificationIsBroadcastedNow() - line 82: $notifiable = m::mock(); - line 89: $channel->send($notifiable, $notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 84: $events = m::mock(Dispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 78: public function testNotificationIsBroadcastedNow() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 92: public function testNotificationIsBroadcastedWithCustomAdditionalPayload() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 92: public function testNotificationIsBroadcastedWithCustomAdditionalPayload() - line 96: $notifiable = m::mock(); - line 99: $notifiable, $notification, $notification->toArray($notifiable) - line 102: $data = $event->broadcastWith(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 92: public function testNotificationIsBroadcastedWithCustomAdditionalPayload() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Notifications/NotificationChannelManagerTest.php - Test @ line 34: public function testNotificationCanBeDispatchedToDriver() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 34: public function testNotificationCanBeDispatchedToDriver() - line 37: $container->instance('config', ['app.name' => 'Name', 'app.logo' => 'Logo']); - line 38: $container->instance(Bus::class, $bus = m::mock()); - line 39: $container->instance(Dispatcher::class, $events = m::mock()); - line 48: $manager->send(new NotificationChannelManagerTestNotifiable, new NotificationChannelManagerTestNotification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function testNotificationCanBeDispatchedToDriver() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 51: public function testNotificationNotSentOnHalt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 51: public function testNotificationNotSentOnHalt() - line 54: $container->instance('config', ['app.name' => 'Name', 'app.logo' => 'Logo']); - line 55: $container->instance(Bus::class, $bus = m::mock()); - line 56: $container->instance(Dispatcher::class, $events = m::mock()); - line 66: $manager->send([new NotificationChannelManagerTestNotifiable], new NotificationChannelManagerTestNotificationWithTwoChannels); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 51: public function testNotificationNotSentOnHalt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 69: public function testNotificationNotSentWhenCancelled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 69: public function testNotificationNotSentWhenCancelled() - line 72: $container->instance('config', ['app.name' => 'Name', 'app.logo' => 'Logo']); - line 73: $container->instance(Bus::class, $bus = m::mock()); - line 74: $container->instance(Dispatcher::class, $events = m::mock()); - line 79: $manager->shouldNotReceive('driver'); - line 80: $events->shouldNotReceive('dispatch'); - line 82: $manager->send([new NotificationChannelManagerTestNotifiable], new NotificationChannelManagerTestCancelledNotification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 69: public function testNotificationNotSentWhenCancelled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 85: public function testNotificationSentWhenNotCancelled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 85: public function testNotificationSentWhenNotCancelled() - line 88: $container->instance('config', ['app.name' => 'Name', 'app.logo' => 'Logo']); - line 89: $container->instance(Bus::class, $bus = m::mock()); - line 90: $container->instance(Dispatcher::class, $events = m::mock()); - line 99: $manager->send([new NotificationChannelManagerTestNotifiable], new NotificationChannelManagerTestNotCancelledNotification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 85: public function testNotificationSentWhenNotCancelled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 102: public function testNotificationNotSentWhenFailed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 102: public function testNotificationNotSentWhenFailed() - line 104: $this->expectException(Exception::class); - line 107: $container->instance('config', ['app.name' => 'Name', 'app.logo' => 'Logo']); - line 108: $container->instance(Bus::class, $bus = m::mock()); - line 109: $container->instance(Dispatcher::class, $events = m::mock()); - line 113: $driver->shouldReceive('send')->andThrow(new Exception()); - line 117: $events->shouldReceive('dispatch')->never()->with(m::type(NotificationSent::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 102: public function testNotificationNotSentWhenFailed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 122: public function testNotificationFailedDispatchedOnlyOnceWhenFailed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 122: public function testNotificationFailedDispatchedOnlyOnceWhenFailed() - line 124: $this->expectException(Exception::class); - line 127: $container->instance('config', ['app.name' => 'Name', 'app.logo' => 'Logo']); - line 128: $container->instance(Bus::class, $bus = m::mock()); - line 129: $container->instance(Dispatcher::class, $events = m::mock(Dispatcher::class)); - line 132: $manager->shouldReceive('driver')->andReturn($driver = m::mock()); - line 139: $events->shouldReceive('listen')->once()->andReturnUsing(function ($event, $callback) use ($listeners) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 129: $container->instance(Dispatcher::class, $events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 122: public function testNotificationFailedDispatchedOnlyOnceWhenFailed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 152: public function testNotificationCanBeQueued() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 152: public function testNotificationCanBeQueued() - line 155: $container->instance('config', ['app.name' => 'Name', 'app.logo' => 'Logo']); - line 156: $container->instance(Dispatcher::class, $events = m::mock()); - line 157: $container->instance(Bus::class, $bus = m::mock()); - line 163: $manager->send([new NotificationChannelManagerTestNotifiable], new NotificationChannelManagerTestQueuedNotification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 152: public function testNotificationCanBeQueued() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 166: public function testSendQueuedNotificationsCanBeOverrideViaContainer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 166: public function testSendQueuedNotificationsCanBeOverrideViaContainer() - line 169: $container->instance('config', ['app.name' => 'Name', 'app.logo' => 'Logo']); - line 170: $container->instance(Dispatcher::class, $events = m::mock()); - line 171: $container->instance(Bus::class, $bus = m::mock()); - line 173: $container->bind(SendQueuedNotifications::class, TestSendQueuedNotifications::class); - line 178: $manager->send([new NotificationChannelManagerTestNotifiable], new NotificationChannelManagerTestQueuedNotification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 166: public function testSendQueuedNotificationsCanBeOverrideViaContainer() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 181: public function testQueuedNotificationForwardsMessageGroupFromMethodToQueueJob() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 181: public function testQueuedNotificationForwardsMessageGroupFromMethodToQueueJob() - line 185: $notification = $this->getMockBuilder(NotificationChannelManagerTestQueuedNotificationWithMessageGroupMethod::class)->onlyMethods(['messageGroup'])->getMock(); - line 186: $notification->expects($this->exactly(2))->method('messageGroup')->willReturn($mockedMessageGroupId); - line 189: $container->instance('config', ['app.name' => 'Name', 'app.logo' => 'Logo']); - line 190: $container->instance(Dispatcher::class, $events = m::mock()); - line 191: $container->instance(Bus::class, $bus = m::mock()); - line 192: $bus->shouldReceive('dispatch')->twice()->withArgs(function ($job) use ($mockedMessageGroupId) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 181: public function testQueuedNotificationForwardsMessageGroupFromMethodToQueueJob() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 205: public function testQueuedNotificationForwardsMessageGroupFromPropertyOverridingMethodToQueueJob() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 205: public function testQueuedNotificationForwardsMessageGroupFromPropertyOverridingMethodToQueueJob() - line 210: $notification = $this->getMockBuilder(NotificationChannelManagerTestQueuedNotificationWithMessageGroupMethod::class)->onlyMethods(['messageGroup'])->getMock(); - line 211: $notification->expects($this->never())->method('messageGroup')->willReturn('this-should-not-be-used'); - line 212: $notification->onGroup($mockedMessageGroupId); - line 215: $container->instance('config', ['app.name' => 'Name', 'app.logo' => 'Logo']); - line 216: $container->instance(Dispatcher::class, $events = m::mock()); - line 217: $container->instance(Bus::class, $bus = m::mock()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 205: public function testQueuedNotificationForwardsMessageGroupFromPropertyOverridingMethodToQueueJob() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 231: public function testQueuedNotificationForwardsMessageGroupSetToQueueJob() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 231: public function testQueuedNotificationForwardsMessageGroupSetToQueueJob() - line 239: $container->instance('config', ['app.name' => 'Name', 'app.logo' => 'Logo']); - line 240: $container->instance(Dispatcher::class, $events = m::mock()); - line 241: $container->instance(Bus::class, $bus = m::mock()); - line 242: $bus->shouldReceive('dispatch')->twice()->withArgs(function ($job) use ($mockedMessageGroupSet) { - line 252: $notification = (new NotificationChannelManagerTestQueuedNotificationWithTwoChannels)->onGroup($mockedMessageGroupSet); - line 253: $manager->send([new NotificationChannelManagerTestNotifiable], $notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 231: public function testQueuedNotificationForwardsMessageGroupSetToQueueJob() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 256: public function testQueuedNotificationForwardsMessageGroupSetFromClassToQueueJob() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 256: public function testQueuedNotificationForwardsMessageGroupSetFromClassToQueueJob() - line 264: $container->instance('config', ['app.name' => 'Name', 'app.logo' => 'Logo']); - line 265: $container->instance(Dispatcher::class, $events = m::mock()); - line 266: $container->instance(Bus::class, $bus = m::mock()); - line 267: $bus->shouldReceive('dispatch')->twice()->withArgs(function ($job) use ($mockedMessageGroupSet) { - line 278: $manager->send([new NotificationChannelManagerTestNotifiable], $notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 256: public function testQueuedNotificationForwardsMessageGroupSetFromClassToQueueJob() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 281: public function testQueuedNotificationForwardsDeduplicatorToQueueJob() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 281: public function testQueuedNotificationForwardsDeduplicatorToQueueJob() - line 286: $container->instance('config', ['app.name' => 'Name', 'app.logo' => 'Logo']); - line 287: $container->instance(Dispatcher::class, $events = m::mock()); - line 288: $container->instance(Bus::class, $bus = m::mock()); - line 289: $bus->shouldReceive('dispatch')->once()->withArgs(function ($job) use ($mockedDeduplicator) { - line 300: $notification = (new NotificationChannelManagerTestQueuedNotification)->withDeduplicator($mockedDeduplicator); - line 301: $manager->send([new NotificationChannelManagerTestNotifiable], $notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 304: public function testQueuedNotificationForwardsDeduplicatorSetToQueueJob() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 304: public function testQueuedNotificationForwardsDeduplicatorSetToQueueJob() - line 312: $container->instance('config', ['app.name' => 'Name', 'app.logo' => 'Logo']); - line 313: $container->instance(Dispatcher::class, $events = m::mock()); - line 314: $container->instance(Bus::class, $bus = m::mock()); - line 315: $bus->shouldReceive('dispatch')->twice()->withArgs(function ($job) use ($mockedDeduplicatorSet) { - line 326: $notification = (new NotificationChannelManagerTestQueuedNotificationWithTwoChannels)->withDeduplicator($mockedDeduplicatorSet); - line 327: $manager->send([new NotificationChannelManagerTestNotifiable], $notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 330: public function testQueuedNotificationForwardsDeduplicatorSetFromClassToQueueJob() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 330: public function testQueuedNotificationForwardsDeduplicatorSetFromClassToQueueJob() - line 333: $container->instance('config', ['app.name' => 'Name', 'app.logo' => 'Logo']); - line 334: $container->instance(Dispatcher::class, $events = m::mock()); - line 335: $container->instance(Bus::class, $bus = m::mock()); - line 336: $bus->shouldReceive('dispatch')->twice()->withArgs(function ($job) { - line 347: $manager->send([new NotificationChannelManagerTestNotifiable], $notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 330: public function testQueuedNotificationForwardsDeduplicatorSetFromClassToQueueJob() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 350: public function testQueuedNotificationForwardsDeduplicationIdMethodToQueueJob() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 350: public function testQueuedNotificationForwardsDeduplicationIdMethodToQueueJob() - line 353: $container->instance('config', ['app.name' => 'Name', 'app.logo' => 'Logo']); - line 354: $container->instance(Dispatcher::class, $events = m::mock()); - line 355: $container->instance(Bus::class, $bus = m::mock()); - line 356: $bus->shouldReceive('dispatch')->twice()->withArgs(function ($job) { - line 368: $manager->send([new NotificationChannelManagerTestNotifiable], $notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Notifications/NotificationDatabaseChannelTest.php - Test @ line 19: public function testDatabaseChannelCreatesDatabaseRecordWithProperData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 19: public function testDatabaseChannelCreatesDatabaseRecordWithProperData() - line 23: $notifiable = m::mock(); - line 33: $channel->send($notifiable, $notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 19: public function testDatabaseChannelCreatesDatabaseRecordWithProperData() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 36: public function testCorrectPayloadIsSentToDatabase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 36: public function testCorrectPayloadIsSentToDatabase() - line 40: $notifiable = m::mock(); - line 51: $channel->send($notifiable, $notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 36: public function testCorrectPayloadIsSentToDatabase() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 54: public function testCustomizeTypeIsSentToDatabase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 54: public function testCustomizeTypeIsSentToDatabase() - line 58: $notifiable = m::mock(); - line 64: 'read_at' => Carbon::now()->toDateTimeString(), - line 69: $channel->send($notifiable, $notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 54: public function testCustomizeTypeIsSentToDatabase() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Notifications/NotificationMailMessageTest.php - Test @ line 12: public function testTemplate() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 12: public function testTemplate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 23: public function testHtmlAndPlainView() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testHtmlAndPlainView() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 39: public function testHtmlView() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 39: public function testHtmlView() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 54: public function testPlainView() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 54: public function testPlainView() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 69: public function testCcIsSetCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 69: public function testCcIsSetCorrectly() - line 72: $message->cc('test@example.com'); - line 77: $message->cc('test@example.com') - line 83: $message->cc(['test@example.com', 'Test' => 'test@example.com']); - line 88: $message->cc('test@example.com', 'Test') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 69: public function testCcIsSetCorrectly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 98: public function testBccIsSetCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 98: public function testBccIsSetCorrectly() - line 101: $message->bcc('test@example.com'); - line 106: $message->bcc('test@example.com') - line 112: $message->bcc(['test@example.com', 'Test' => 'test@example.com']); - line 117: $message->bcc('test@example.com', 'Test') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 98: public function testBccIsSetCorrectly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 127: public function testReplyToIsSetCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 127: public function testReplyToIsSetCorrectly() - line 130: $message->replyTo('test@example.com'); - line 135: $message->replyTo('test@example.com') - line 141: $message->replyTo(['test@example.com', 'Test' => 'test@example.com']); - line 146: $message->replyTo('test@example.com', 'Test') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 127: public function testReplyToIsSetCorrectly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 156: public function testMetadataIsSetCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 156: public function testMetadataIsSetCorrectly() - line 159: $message->metadata('origin', 'test-suite'); - line 160: $message->metadata('user_id', 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 156: public function testMetadataIsSetCorrectly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 168: public function testTagIsSetCorrectly() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 168: public function testTagIsSetCorrectly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 176: public function testCallbackIsSetCorrectly() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 176: public function testCallbackIsSetCorrectly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 188: public function testWhenCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 188: public function testWhenCallback() - line 193: $mailMessage->cc('cc@example.com'); - line 197: $message->when(true, $callback); - line 201: $message->when(false, $callback); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 188: public function testWhenCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 205: public function testWhenCallbackWithReturn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 205: public function testWhenCallbackWithReturn() - line 210: return $mailMessage->cc('cc@example.com'); - line 214: $message->when(true, $callback)->bcc('bcc@example.com'); - line 219: $message->when(false, $callback)->bcc('bcc@example.com'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 205: public function testWhenCallbackWithReturn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 224: public function testWhenCallbackWithDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 224: public function testWhenCallbackWithDefault() - line 229: $mailMessage->cc('truthy@example.com'); - line 235: $mailMessage->cc('zero@example.com'); - line 239: $message->when('truthy', $callback, $default); - line 243: $message->when(0, $callback, $default); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 224: public function testWhenCallbackWithDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 247: public function testUnlessCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 247: public function testUnlessCallback() - line 252: $mailMessage->cc('test@example.com'); - line 256: $message->unless(false, $callback); - line 260: $message->unless(true, $callback); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 247: public function testUnlessCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 264: public function testUnlessCallbackWithReturn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 264: public function testUnlessCallbackWithReturn() - line 269: return $mailMessage->cc('cc@example.com'); - line 273: $message->unless(false, $callback)->bcc('bcc@example.com'); - line 278: $message->unless(true, $callback)->bcc('bcc@example.com'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 264: public function testUnlessCallbackWithReturn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 283: public function testUnlessCallbackWithDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 283: public function testUnlessCallbackWithDefault() - line 288: $mailMessage->cc('zero@example.com'); - line 294: $mailMessage->cc('truthy@example.com'); - line 298: $message->unless(0, $callback, $default); - line 302: $message->unless('truthy', $callback, $default); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 283: public function testUnlessCallbackWithDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 306: public function testItAttachesFilesViaAttachableContractFromPath() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 306: public function testItAttachesFilesViaAttachableContractFromPath() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 327: public function testItAttachesFilesViaAttachableContractFromData() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 327: public function testItAttachesFilesViaAttachableContractFromData() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 348: public function testItAttachesManyFiles() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 348: public function testItAttachesManyFiles() - line 355: return Attachment::fromData(fn () => 'bar', 'foo.jpg')->withMime('image/png'); - line 359: $mailMessage->attachMany([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 348: public function testItAttachesManyFiles() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Notifications/NotificationMessageTest.php - Test @ line 10: public function testLevelCanBeRetrieved() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 10: public function testLevelCanBeRetrieved() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 20: public function testMessageFormatsMultiLineText() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 20: public function testMessageFormatsMultiLineText() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 20: public function testMessageFormatsMultiLineText() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Notifications/NotificationRoutesNotificationsTest.php - Test @ line 23: public function testNotificationCanBeDispatched() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 23: public function testNotificationCanBeDispatched() - line 26: $factory = m::mock(Dispatcher::class); - line 27: $container->instance(Dispatcher::class, $factory); - line 33: $notifiable->notify($instance); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 26: $factory = m::mock(Dispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testNotificationCanBeDispatched() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 36: public function testNotificationCanBeSentNow() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 36: public function testNotificationCanBeSentNow() - line 39: $factory = m::mock(Dispatcher::class); - line 40: $container->instance(Dispatcher::class, $factory); - line 46: $notifiable->notifyNow($instance); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 39: $factory = m::mock(Dispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 36: public function testNotificationCanBeSentNow() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 49: public function testNotificationOptionRouting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 49: public function testNotificationOptionRouting() - line 52: $this->assertSame('bar', $instance->routeNotificationFor('foo')); - line 53: $this->assertSame('taylor@laravel.com', $instance->routeNotificationFor('mail')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 56: public function testOnDemandNotificationsCannotUseDatabaseChannel() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 56: public function testOnDemandNotificationsCannotUseDatabaseChannel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Notifications/NotificationSenderTest.php - Test @ line 31: public function testItCanSendQueuedNotificationsWithAStringVia() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 31: public function testItCanSendQueuedNotificationsWithAStringVia() - line 33: $notifiable = m::mock(Notifiable::class); - line 43: $sender->send($notifiable, new DummyQueuedNotificationWithStringVia); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 33: $notifiable = m::mock(Notifiable::class); - line 34: $manager = m::mock(ChannelManager::class); - line 36: $bus = m::mock(BusDispatcher::class); - line 38: $events = m::mock(EventDispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 31: public function testItCanSendQueuedNotificationsWithAStringVia() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 46: public function testItCanSendQueuedNotificationsWithAnArrayVia() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 46: public function testItCanSendQueuedNotificationsWithAnArrayVia() - line 48: $notifiable = m::mock(Notifiable::class); - line 54: ->withArgs(function ($job) { - line 59: ->withArgs(function ($job) { - line 68: $sender->send($notifiable, new DummyQueuedNotificationWithArrayVia); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 48: $notifiable = m::mock(Notifiable::class); - line 49: $manager = m::mock(ChannelManager::class); - line 51: $bus = m::mock(BusDispatcher::class); - line 63: $events = m::mock(EventDispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 46: public function testItCanSendQueuedNotificationsWithAnArrayVia() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 71: public function testItCanSendNotificationsWithAnEmptyStringVia() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 71: public function testItCanSendNotificationsWithAnEmptyStringVia() - line 74: $manager = m::mock(ChannelManager::class); - line 76: $bus->shouldNotReceive('dispatch'); - line 82: $sender->sendNow($notifiable, new DummyNotificationWithEmptyStringVia); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 74: $manager = m::mock(ChannelManager::class); - line 75: $bus = m::mock(BusDispatcher::class); - line 77: $events = m::mock(EventDispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 71: public function testItCanSendNotificationsWithAnEmptyStringVia() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 85: public function testItCannotSendNotificationsViaDatabaseForAnonymousNotifiables() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 85: public function testItCannotSendNotificationsViaDatabaseForAnonymousNotifiables() - line 88: $manager = m::mock(ChannelManager::class); - line 91: $bus->shouldNotReceive('dispatch'); - line 97: $sender->sendNow($notifiable, new DummyNotificationWithDatabaseVia); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 88: $manager = m::mock(ChannelManager::class); - line 90: $bus = m::mock(BusDispatcher::class); - line 92: $events = m::mock(EventDispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 85: public function testItCannotSendNotificationsViaDatabaseForAnonymousNotifiables() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 100: public function testItCanSendQueuedNotificationsThroughMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 100: public function testItCanSendQueuedNotificationsThroughMiddleware() - line 102: $notifiable = m::mock(Notifiable::class); - line 106: ->withArgs(function ($job) { - line 115: $sender->send($notifiable, new DummyNotificationWithMiddleware); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 102: $notifiable = m::mock(Notifiable::class); - line 103: $manager = m::mock(ChannelManager::class); - line 104: $bus = m::mock(BusDispatcher::class); - line 109: $events = m::mock(EventDispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 100: public function testItCanSendQueuedNotificationsThroughMiddleware() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 118: public function testItCanSendQueuedMultiChannelNotificationsThroughDifferentMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 118: public function testItCanSendQueuedMultiChannelNotificationsThroughDifferentMiddleware() - line 120: $notifiable = m::mock(Notifiable::class); - line 126: ->withArgs(function ($job) { - line 131: ->withArgs(function ($job) { - line 136: ->withArgs(function ($job) { - line 144: $sender->send($notifiable, new DummyMultiChannelNotificationWithConditionalMiddleware); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 120: $notifiable = m::mock(Notifiable::class); - line 121: $manager = m::mock(ChannelManager::class); - line 123: $bus = m::mock(BusDispatcher::class); - line 139: $events = m::mock(EventDispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 118: public function testItCanSendQueuedMultiChannelNotificationsThroughDifferentMiddleware() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 147: public function testItCanSendQueuedWithViaConnectionsNotifications() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 147: public function testItCanSendQueuedWithViaConnectionsNotifications() - line 150: $manager = m::mock(ChannelManager::class); - line 155: ->withArgs(function ($job) { - line 160: ->withArgs(function ($job) { - line 169: $sender->send($notifiable, new DummyNotificationWithViaConnections); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 150: $manager = m::mock(ChannelManager::class); - line 152: $bus = m::mock(BusDispatcher::class); - line 164: $events = m::mock(EventDispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 147: public function testItCanSendQueuedWithViaConnectionsNotifications() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 172: public function testItCanSendQueuedWithViaQueuesNotifications() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 172: public function testItCanSendQueuedWithViaQueuesNotifications() - line 175: $manager = m::mock(ChannelManager::class); - line 180: ->withArgs(function ($job) { - line 185: ->withArgs(function ($job) { - line 194: $sender->send($notifiable, new DummyNotificationWithViaQueues); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 175: $manager = m::mock(ChannelManager::class); - line 177: $bus = m::mock(BusDispatcher::class); - line 189: $events = m::mock(EventDispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 172: public function testItCanSendQueuedWithViaQueuesNotifications() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 197: public function testNotificationFailedSentWithoutHttpTransportException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 197: public function testNotificationFailedSentWithoutHttpTransportException() - line 199: $this->expectException(TransportException::class); - line 205: $driver->shouldReceive('send')->andThrow(new HttpTransportException('Transport error', $response)); - line 211: $events->shouldReceive('dispatch')->once()->withArgs(function ($event) { - line 217: $sender->sendNow($notifiable, new DummyNotificationWithViaConnections(), ['mail']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 202: $manager = m::mock(ChannelManager::class); - line 204: $response = m::mock(ResponseInterface::class); - line 206: $bus = m::mock(BusDispatcher::class); - line 208: $events = m::mock(EventDispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 197: public function testNotificationFailedSentWithoutHttpTransportException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Notifications/NotificationSendQueuedNotificationTest.php - Test @ line 22: public function testNotificationsCanBeSent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 22: public function testNotificationsCanBeSent() - line 25: $manager = m::mock(ChannelManager::class); - line 26: $manager->shouldReceive('sendNow')->once()->withArgs(function ($notifiables, $notification, $channels) { - line 30: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 25: $manager = m::mock(ChannelManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 22: public function testNotificationsCanBeSent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 34: public function testSerializationOfNotifiableModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 34: public function testSerializationOfNotifiableModel() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function testSerializationOfNotifiableModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 45: public function testSerializationOfNormalNotifiable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 45: public function testSerializationOfNormalNotifiable() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 45: public function testSerializationOfNormalNotifiable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 56: public function testNotificationCanSetMaxExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 56: public function testNotificationCanSetMaxExceptions() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 56: public function testNotificationCanSetMaxExceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Pagination/CursorPaginatorLoadMorphCountTest.php - Test @ line 12: public function testCollectionLoadMorphCountCanChainOnThePaginator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 12: public function testCollectionLoadMorphCountCanChainOnThePaginator() - line 19: $items = m::mock(Collection::class); - line 23: })->setCollection($items); - line 25: $this->assertSame($p, $p->loadMorphCount('parentable', $relations)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 19: $items = m::mock(Collection::class); ❌ tests/Pagination/CursorPaginatorLoadMorphTest.php - Test @ line 12: public function testCollectionLoadMorphCanChainOnThePaginator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 12: public function testCollectionLoadMorphCanChainOnThePaginator() - line 19: $items = m::mock(Collection::class); - line 23: })->setCollection($items); - line 25: $this->assertSame($p, $p->loadMorph('parentable', $relations)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 19: $items = m::mock(Collection::class); ❌ tests/Pagination/CursorPaginatorTest.php - Test @ line 12: public function testReturnsRelevantContextInformation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 12: public function testReturnsRelevantContextInformation() - line 18: $this->assertTrue($p->hasPages()); - line 19: $this->assertTrue($p->hasMorePages()); - line 20: $this->assertEquals([['id' => 1], ['id' => 2]], $p->items()); - line 26: 'next_cursor' => $this->getCursor(['id' => 2]), - line 32: $this->assertEquals($pageInfo, $p->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 67: public function testCanTransformPaginatorItems() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 67: public function testCanTransformPaginatorItems() - line 72: $p->through(function ($item) { - line 79: $this->assertSame([['id' => 6], ['id' => 7]], $p->items()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 82: public function testCursorPaginatorOnFirstAndLastPage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 82: public function testCursorPaginatorOnFirstAndLastPage() - line 88: $this->assertTrue($paginator->onFirstPage()); - line 89: $this->assertFalse($paginator->onLastPage()); - line 96: $this->assertFalse($paginator->onFirstPage()); - line 97: $this->assertTrue($paginator->onLastPage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 123: public function testCursorPaginatorToJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 123: public function testCursorPaginatorToJson() - line 126: $results = $paginator->toJson(); - line 127: $expected = json_encode($paginator->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 133: public function testCursorPaginatorToPrettyJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 133: public function testCursorPaginatorToPrettyJson() - line 136: $results = $paginator->toPrettyJson(); - line 137: $expected = $paginator->toJson(JSON_PRETTY_PRINT); - line 144: $results = $paginator->toPrettyJson(JSON_NUMERIC_CHECK); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Pagination/CursorResourceTest.php - Test @ line 12: public function testItCanTransformToExplicitResource() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 12: public function testItCanTransformToExplicitResource() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 23: public function testItThrowsExceptionWhenResourceCannotBeFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 23: public function testItThrowsExceptionWhenResourceCannotBeFound() - line 25: $this->expectException(\LogicException::class); - line 26: $this->expectExceptionMessage('Failed to find resource class for model [Illuminate\Tests\Pagination\Fixtures\Models\CursorResourceTestModel].'); - line 32: $paginator->toResourceCollection(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testItThrowsExceptionWhenResourceCannotBeFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 35: public function testItCanGuessResourceWhenNotProvided() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 35: public function testItCanGuessResourceWhenNotProvided() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Pagination/CursorTest.php - Test @ line 11: public function testCanEncodeAndDecodeSuccessfully() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 11: public function testCanEncodeAndDecodeSuccessfully() - line 15: 'created_at' => Carbon::now()->toDateTimeString(), - line 18: $this->assertEquals($cursor, Cursor::fromEncoded($cursor->encode())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 21: public function testCanGetParams() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 21: public function testCanGetParams() - line 25: 'created_at' => ($now = Carbon::now()->toDateTimeString()), - line 28: $this->assertEquals([$now, 422], $cursor->parameters(['created_at', 'id'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 31: public function testCanGetParam() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 31: public function testCanGetParam() - line 35: 'created_at' => ($now = Carbon::now()->toDateTimeString()), - line 38: $this->assertEquals($now, $cursor->parameter('created_at')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Pagination/LengthAwarePaginatorTest.php - Test @ line 31: public function testLengthAwarePaginatorGetAndSetPageName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 31: public function testLengthAwarePaginatorGetAndSetPageName() - line 33: $this->assertSame('page', $this->p->getPageName()); - line 35: $this->p->setPageName('p'); - line 36: $this->assertSame('p', $this->p->getPageName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 39: public function testLengthAwarePaginatorCanGiveMeRelevantPageInformation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 39: public function testLengthAwarePaginatorCanGiveMeRelevantPageInformation() - line 41: $this->assertEquals(2, $this->p->lastPage()); - line 42: $this->assertEquals(2, $this->p->currentPage()); - line 43: $this->assertTrue($this->p->hasPages()); - line 44: $this->assertFalse($this->p->hasMorePages()); - line 45: $this->assertEquals(['item1', 'item2', 'item3', 'item4'], $this->p->items()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 48: public function testLengthAwarePaginatorSetCorrectInformationWithNoItems() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 48: public function testLengthAwarePaginatorSetCorrectInformationWithNoItems() - line 52: $this->assertEquals(1, $paginator->lastPage()); - line 53: $this->assertEquals(1, $paginator->currentPage()); - line 54: $this->assertFalse($paginator->hasPages()); - line 55: $this->assertFalse($paginator->hasMorePages()); - line 56: $this->assertEmpty($paginator->items()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 59: public function testLengthAwarePaginatorOnFirstAndLastPage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 59: public function testLengthAwarePaginatorOnFirstAndLastPage() - line 63: $this->assertTrue($paginator->onLastPage()); - line 64: $this->assertFalse($paginator->onFirstPage()); - line 68: $this->assertFalse($paginator->onLastPage()); - line 69: $this->assertTrue($paginator->onFirstPage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 72: public function testLengthAwarePaginatorCanGenerateUrls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 72: public function testLengthAwarePaginatorCanGenerateUrls() - line 74: $this->p->setPath('http://website.com'); - line 75: $this->p->setPageName('foo'); - line 79: $this->p->path() - line 84: $this->p->url($this->p->currentPage()) - line 89: $this->p->url($this->p->currentPage() - 1) - line 94: $this->p->url($this->p->currentPage() - 2) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 98: public function testLengthAwarePaginatorCanGenerateUrlsWithQuery() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 98: public function testLengthAwarePaginatorCanGenerateUrlsWithQuery() - line 100: $this->p->setPath('http://website.com?sort_by=date'); - line 101: $this->p->setPageName('foo'); - line 105: $this->p->url($this->p->currentPage()) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 109: public function testLengthAwarePaginatorCanGenerateUrlsWithoutTrailingSlashes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 109: public function testLengthAwarePaginatorCanGenerateUrlsWithoutTrailingSlashes() - line 111: $this->p->setPath('http://website.com/test'); - line 112: $this->p->setPageName('foo'); - line 116: $this->p->url($this->p->currentPage()) - line 121: $this->p->url($this->p->currentPage() - 1) - line 126: $this->p->url($this->p->currentPage() - 2) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 130: public function testLengthAwarePaginatorCorrectlyGenerateUrlsWithQueryAndSpaces() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 130: public function testLengthAwarePaginatorCorrectlyGenerateUrlsWithQueryAndSpaces() - line 132: $this->p->setPath('http://website.com?key=value%20with%20spaces'); - line 133: $this->p->setPageName('foo'); - line 137: $this->p->url($this->p->currentPage()) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Pagination/PaginatorLoadMorphCountTest.php - Test @ line 12: public function testCollectionLoadMorphCountCanChainOnThePaginator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 12: public function testCollectionLoadMorphCountCanChainOnThePaginator() - line 19: $items = m::mock(Collection::class); - line 23: })->setCollection($items); - line 25: $this->assertSame($p, $p->loadMorphCount('parentable', $relations)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 19: $items = m::mock(Collection::class); ❌ tests/Pagination/PaginatorLoadMorphTest.php - Test @ line 12: public function testCollectionLoadMorphCanChainOnThePaginator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 12: public function testCollectionLoadMorphCanChainOnThePaginator() - line 19: $items = m::mock(Collection::class); - line 23: })->setCollection($items); - line 25: $this->assertSame($p, $p->loadMorph('parentable', $relations)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 19: $items = m::mock(Collection::class); ❌ tests/Pagination/PaginatorResourceTest.php - Test @ line 12: public function testItCanTransformToExplicitResource() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 12: public function testItCanTransformToExplicitResource() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 23: public function testItThrowsExceptionWhenResourceCannotBeFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 23: public function testItThrowsExceptionWhenResourceCannotBeFound() - line 25: $this->expectException(\LogicException::class); - line 26: $this->expectExceptionMessage('Failed to find resource class for model [Illuminate\Tests\Pagination\Fixtures\Models\PaginatorResourceTestModel].'); - line 32: $paginator->toResourceCollection(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testItThrowsExceptionWhenResourceCannotBeFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 35: public function testItCanGuessResourceWhenNotProvided() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 35: public function testItCanGuessResourceWhenNotProvided() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Pagination/PaginatorTest.php - Test @ line 10: public function testSimplePaginatorReturnsRelevantContextInformation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 10: public function testSimplePaginatorReturnsRelevantContextInformation() - line 15: $this->assertEquals(2, $p->currentPage()); - line 16: $this->assertTrue($p->hasPages()); - line 17: $this->assertTrue($p->hasMorePages()); - line 18: $this->assertEquals(['item3', 'item4'], $p->items()); - line 33: $this->assertEquals($pageInfo, $p->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 64: public function testCanTransformPaginatorItems() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 64: public function testCanTransformPaginatorItems() - line 68: $p->through(function ($item) { - line 73: $this->assertSame(['1', '2', '3'], $p->items()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 76: public function testPaginatorToJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 76: public function testPaginatorToJson() - line 79: $results = $p->toJson(); - line 80: $expected = json_encode($p->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 86: public function testPaginatorToPrettyJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 86: public function testPaginatorToPrettyJson() - line 89: $results = $p->toPrettyJson(); - line 90: $expected = $p->toJson(JSON_PRETTY_PRINT); - line 98: $results = $p->toPrettyJson(JSON_UNESCAPED_SLASHES); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Pagination/UrlWindowTest.php - Test @ line 18: public function testPresenterCanGetAUrlRangeForASmallNumberOfUrls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 18: public function testPresenterCanGetAUrlRangeForASmallNumberOfUrls() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 25: public function testPresenterCanGetAUrlRangeForAWindowOfLinks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 25: public function testPresenterCanGetAUrlRangeForAWindowOfLinks() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Pipeline/PipelineTest.php - Test @ line 14: public function testPipelineBasicUsage() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 17: $_SERVER['__test.pipe.two'] = $piped; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 33: unset($_SERVER['__test.pipe.one'], $_SERVER['__test.pipe.two']); - Test @ line 36: public function testPipelineUsageWithObjects() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 48: unset($_SERVER['__test.pipe.one']); - Test @ line 51: public function testPipelineUsageWithInvokableObjects() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 65: unset($_SERVER['__test.pipe.one']); - Test @ line 68: public function testPipelineUsageWithCallable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 68: public function testPipelineUsageWithCallable() - line 77: ->send('foo') - line 91: ->send('bar') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 71: $_SERVER['__test.pipe.one'] = 'foo'; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 88: unset($_SERVER['__test.pipe.one']); - line 98: unset($_SERVER['__test.pipe.one']); - Test @ line 150: public function testPipelineUsageWithInvokableClass() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 164: unset($_SERVER['__test.pipe.one']); - Test @ line 167: public function testThenMethodIsNotCalledIfThePipeReturns() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 169: $_SERVER['__test.pipe.then'] = '(*_*)'; - line 170: $_SERVER['__test.pipe.second'] = '(*_*)'; - line 176: fn ($value, $next) => $_SERVER['__test.pipe.second'] = 'm(-_-)m', - line 179: $_SERVER['__test.pipe.then'] = '(0_0)'; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 190: unset($_SERVER['__test.pipe.then']); - Test @ line 193: public function testThenMethodInputValue() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 200: $_SERVER['__test.pipe.return'] = $value; - line 205: $_SERVER['__test.then.arg'] = $piped; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 213: unset($_SERVER['__test.then.arg']); - line 214: unset($_SERVER['__test.pipe.return']); - Test @ line 217: public function testPipelineUsageWithParameters() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 231: unset($_SERVER['__test.pipe.parameters']); - Test @ line 246: public function testPipelineThrowsExceptionOnResolveWithoutContainer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 246: public function testPipelineThrowsExceptionOnResolveWithoutContainer() - line 248: $this->expectException(RuntimeException::class); - line 249: $this->expectExceptionMessage('A container instance has not been passed to the Pipeline.'); - line 251: (new Pipeline)->send('data') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 246: public function testPipelineThrowsExceptionOnResolveWithoutContainer() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 258: public function testPipelineThrowsExceptionWhenUsingTransactionsWithoutContainer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 258: public function testPipelineThrowsExceptionWhenUsingTransactionsWithoutContainer() - line 260: $this->expectException(RuntimeException::class); - line 261: $this->expectExceptionMessage('A container instance has not been passed to the Pipeline.'); - line 263: (new Pipeline)->send('data') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 258: public function testPipelineThrowsExceptionWhenUsingTransactionsWithoutContainer() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 271: public function testPipelineThenReturnMethodRunsPipelineThenReturnsPassable() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 281: unset($_SERVER['__test.pipe.one']); - Test @ line 284: public function testPipelineConditionable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 284: public function testPipelineConditionable() - line 287: ->send('foo') - line 301: ->send('foo') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 299: $_SERVER['__test.pipe.one'] = null; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 297: unset($_SERVER['__test.pipe.one']); - line 311: unset($_SERVER['__test.pipe.one']); - Test @ line 314: public function testPipelineFinally() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 317: $_SERVER['__test.pipe.two'] = $piped; - line 326: $_SERVER['__test.pipe.finally'] = $piped; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 337: unset($_SERVER['__test.pipe.one'], $_SERVER['__test.pipe.two'], $_SERVER['__test.pipe.finally']); - Test @ line 340: public function testPipelineFinallyMethodWhenChainIsStopped() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 343: $_SERVER['__test.pipe.two'] = $piped; - line 350: $_SERVER['__test.pipe.finally'] = $piped; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 361: unset($_SERVER['__test.pipe.one'], $_SERVER['__test.pipe.two'], $_SERVER['__test.pipe.finally']); - Test @ line 395: public function testPipelineFinallyWhenExceptionOccurs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 395: public function testPipelineFinallyWhenExceptionOccurs() - line 399: $this->expectException(Exception::class); - line 400: $this->expectExceptionMessage('My Exception: 1'); - line 404: ->send($std) - line 424: $this->assertSame('My Exception: 1', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Pipeline/PipelineTransactionTest.php - Test @ line 64: public function testExceptionThrownRollsBackTransaction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 64: public function testExceptionThrownRollsBackTransaction() - line 71: ->send('some string') - line 81: $this->fail('No exception was thrown'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Process/ProcessTest.php - Test @ line 16: public function testSuccessfulProcess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 16: public function testSuccessfulProcess() - line 19: $result = $factory->path(__DIR__)->run($this->ls()); - line 22: $this->assertTrue($result->successful()); - line 23: $this->assertFalse($result->failed()); - line 24: $this->assertEquals(0, $result->exitCode()); - line 25: $this->assertTrue(str_contains($result->output(), 'ProcessTest.php')); - line 26: $this->assertEquals('', $result->errorOutput()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 32: public function testProcessPool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 32: public function testProcessPool() - line 36: $pool = $factory->pool(function ($pool) { - line 43: $results = $pool->start()->wait(); - line 45: $this->assertTrue($results[0]->successful()); - line 46: $this->assertTrue($results[1]->successful()); - line 48: $this->assertTrue(str_contains($results[0]->output(), 'ProcessTest.php')); - line 49: $this->assertTrue(str_contains($results[1]->output(), 'ProcessTest.php')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 54: public function testProcessPoolFailed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 54: public function testProcessPoolFailed() - line 59: 'cat *' => $factory->result(exitCode: 1), - line 62: $pool = $factory->pool(function ($pool) { - line 69: $results = $pool->start()->wait(); - line 71: $this->assertTrue($results[0]->successful()); - line 72: $this->assertTrue($results[1]->failed()); - line 74: $this->assertTrue($results->failed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 91: public function testProcessPoolCanReceiveOutputForEachProcessViaStartMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 91: public function testProcessPoolCanReceiveOutputForEachProcessViaStartMethod() - line 97: $pool = $factory->pool(function ($pool) { - line 106: $poolResults = $pool->wait(); - line 112: $this->assertTrue(str_contains($poolResults[0]->output(), 'ProcessTest.php')); - line 113: $this->assertTrue(str_contains($poolResults[1]->output(), 'ProcessTest.php')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 116: public function testProcessPoolResultsCanBeEvaluatedByName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 116: public function testProcessPoolResultsCanBeEvaluatedByName() - line 120: $pool = $factory->pool(function ($pool) { - line 127: $this->assertTrue($pool['first']->successful()); - line 128: $this->assertTrue($pool['second']->successful()); - line 130: $this->assertTrue(str_contains($pool['first']->output(), 'ProcessTest.php')); - line 131: $this->assertTrue(str_contains($pool['second']->output(), 'ProcessTest.php')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 134: public function testOutputCanBeRetrievedViaStartCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 134: public function testOutputCanBeRetrievedViaStartCallback() - line 140: $process = $factory->path(__DIR__)->start($this->ls(), function ($type, $buffer) use (&$output) { - line 144: $process->wait(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 134: public function testOutputCanBeRetrievedViaStartCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 149: public function testOutputCanBeRetrievedViaWaitCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 149: public function testOutputCanBeRetrievedViaWaitCallback() - line 155: $process = $factory->path(__DIR__)->start($this->ls()); - line 157: $process->wait(function ($type, $buffer) use (&$output) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 149: public function testOutputCanBeRetrievedViaWaitCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 164: public function testBasicProcessFake() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 164: public function testBasicProcessFake() - line 169: $result = $factory->run('ls -la'); - line 171: $this->assertEquals('', $result->output()); - line 172: $this->assertEquals('', $result->errorOutput()); - line 173: $this->assertEquals(0, $result->exitCode()); - line 174: $this->assertTrue($result->successful()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 177: public function testBasicProcessFakeWithMultiLineCommand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 177: public function testBasicProcessFakeWithMultiLineCommand() - line 181: $factory->preventStrayProcesses(); - line 187: $result = $factory->run(<<<'COMMAND' - line 194: $this->assertSame(0, $result->exitCode()); - line 195: $this->assertSame("$expectedOutput\n", $result->output()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 198: public function testProcessFakeWithMultiLineCommand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 198: public function testProcessFakeWithMultiLineCommand() - line 202: $factory->preventStrayProcesses(); - line 209: $result = $factory->run(<<<'COMMAND' - line 216: $this->assertSame(0, $result->exitCode()); - line 217: $this->assertSame("$expectedOutput\n", $result->output()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 220: public function testProcessFakeExitCodes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 220: public function testProcessFakeExitCodes() - line 223: $factory->fake(fn () => $factory->result('test output', exitCode: 1)); - line 225: $result = $factory->run('ls -la'); - line 226: $this->assertFalse($result->successful()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 229: public function testProcessFakeExitCodeShorthand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 229: public function testProcessFakeExitCodeShorthand() - line 234: $result = $factory->run('ls -la'); - line 235: $this->assertSame(1, $result->exitCode()); - line 236: $this->assertFalse($result->successful()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 239: public function testBasicProcessFakeWithCustomOutput() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 21. Evidence: - line 239: public function testBasicProcessFakeWithCustomOutput() - line 242: $factory->fake(fn () => $factory->result('test output')); - line 244: $result = $factory->run('ls -la'); - line 245: $this->assertEquals("test output\n", $result->output()); - line 249: $factory->fake(fn () => $factory->result(['line 1', 'line 2'])); - line 251: $result = $factory->run('ls -la'); - line 252: $this->assertEquals("line 1\nline 2\n", $result->output()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 297: public function testProcessFakeWithErrorOutput() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 297: public function testProcessFakeWithErrorOutput() - line 300: $factory->fake(fn () => $factory->result('standard output', 'error output')); - line 302: $result = $factory->run('ls -la'); - line 303: $this->assertEquals("standard output\n", $result->output()); - line 304: $this->assertEquals("error output\n", $result->errorOutput()); - line 308: $factory->fake(fn () => $factory->result('standard output', ['line 1', 'line 2'])); - line 310: $result = $factory->run('ls -la'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 323: public function testCustomizedFakesPerCommand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 323: public function testCustomizedFakesPerCommand() - line 332: $result = $factory->run('ls -la'); - line 333: $this->assertEquals("ls command\n", $result->output()); - line 335: $result = $factory->run('cat composer.json'); - line 336: $this->assertEquals("cat command\n", $result->output()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 339: public function testProcessFakeSequences() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 339: public function testProcessFakeSequences() - line 344: 'ls *' => $factory->sequence() - line 350: $result = $factory->run('ls -la'); - line 351: $this->assertEquals("ls command 1\n", $result->output()); - line 353: $result = $factory->run('ls -la'); - line 354: $this->assertEquals("ls command 2\n", $result->output()); - line 356: $result = $factory->run('cat composer.json'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 360: public function testProcessFakeSequencesCanReturnEmptyResultsWhenSequenceIsEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 360: public function testProcessFakeSequencesCanReturnEmptyResultsWhenSequenceIsEmpty() - line 365: 'ls *' => $factory->sequence() - line 371: $result = $factory->run('ls -la'); - line 372: $this->assertEquals("ls command 1\n", $result->output()); - line 374: $result = $factory->run('ls -la'); - line 375: $this->assertEquals("ls command 2\n", $result->output()); - line 377: $result = $factory->run('ls -la'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 381: public function testProcessFakeSequencesCanThrowWhenSequenceIsEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 381: public function testProcessFakeSequencesCanThrowWhenSequenceIsEmpty() - line 383: $this->expectException(OutOfBoundsException::class); - line 388: 'ls *' => $factory->sequence() - line 393: $result = $factory->run('ls -la'); - line 394: $this->assertEquals("ls command 1\n", $result->output()); - line 396: $result = $factory->run('ls -la'); - line 397: $this->assertEquals("ls command 2\n", $result->output()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 402: public function testStrayProcessesCanBePreventedWithStringCommand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 402: public function testStrayProcessesCanBePreventedWithStringCommand() - line 404: $this->expectException(RuntimeException::class); - line 405: $this->expectExceptionMessage('Attempted process ['); - line 406: $this->expectExceptionMessage('cat composer.json'); - line 407: $this->expectExceptionMessage('] without a matching fake.'); - line 411: $factory->preventStrayProcesses(); - line 417: $result = $factory->run('cat composer.json'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 402: public function testStrayProcessesCanBePreventedWithStringCommand() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 420: public function testStrayProcessesCanBePreventedWithArrayCommand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 420: public function testStrayProcessesCanBePreventedWithArrayCommand() - line 422: $this->expectException(RuntimeException::class); - line 423: $this->expectExceptionMessage('Attempted process ['); - line 424: $this->expectExceptionMessage('cat composer.json'); - line 425: $this->expectExceptionMessage('] without a matching fake.'); - line 429: $factory->preventStrayProcesses(); - line 435: $result = $factory->run(['cat composer.json']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 420: public function testStrayProcessesCanBePreventedWithArrayCommand() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 438: public function testStrayProcessesActuallyRunByDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 438: public function testStrayProcessesActuallyRunByDefault() - line 446: $result = $factory->path(__DIR__)->run($this->ls()); - line 447: $this->assertTrue(str_contains($result->output(), 'ProcessTest.php')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 450: public function testProcessFakeThrowShorthand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 450: public function testProcessFakeThrowShorthand() - line 452: $this->expectException(\RuntimeException::class); - line 453: $this->expectExceptionMessage('fake exception message'); - line 459: $factory->run('cat me'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 450: public function testProcessFakeThrowShorthand() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 462: public function testFakeProcessesCanThrow() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 462: public function testFakeProcessesCanThrow() - line 464: $this->expectException(ProcessFailedException::class); - line 468: $factory->fake(fn () => $factory->result(exitCode: 1)); - line 470: $result = $factory->path(__DIR__)->run($this->ls()); - line 471: $result->throw(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 462: public function testFakeProcessesCanThrow() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 474: public function testFakeProcessesThrowIfTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 474: public function testFakeProcessesThrowIfTrue() - line 476: $this->expectException(ProcessFailedException::class); - line 480: $factory->fake(fn () => $factory->result(exitCode: 1)); - line 482: $result = $factory->path(__DIR__)->run($this->ls()); - line 483: $result->throwIf(true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 474: public function testFakeProcessesThrowIfTrue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 486: public function testFakeProcessesDontThrowIfFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 486: public function testFakeProcessesDontThrowIfFalse() - line 490: $factory->fake(fn () => $factory->result(exitCode: 1)); - line 492: $result = $factory->path(__DIR__)->run($this->ls()); - line 493: $result->throwIf(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 486: public function testFakeProcessesDontThrowIfFalse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 499: public function testRealProcessesCanHaveErrorOutput() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 499: public function testRealProcessesCanHaveErrorOutput() - line 502: $result = $factory->path(__DIR__)->run('echo "Hello World" >&2; exit 1;'); - line 504: $this->assertFalse($result->successful()); - line 505: $this->assertEquals('', $result->output()); - line 506: $this->assertEquals("Hello World\n", $result->errorOutput()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 509: public function testFakeProcessesCanThrowWithoutOutput() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 509: public function testFakeProcessesCanThrowWithoutOutput() - line 511: $this->expectException(ProcessFailedException::class); - line 512: $this->expectExceptionMessage(<<<'EOT' - line 520: $factory->fake(fn () => $factory->result(exitCode: 1)); - line 521: $result = $factory->path(__DIR__)->run('exit 1;'); - line 523: $result->throw(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 509: public function testFakeProcessesCanThrowWithoutOutput() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 527: public function testRealProcessesCanThrowWithoutOutput() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 527: public function testRealProcessesCanThrowWithoutOutput() - line 529: $this->expectException(ProcessFailedException::class); - line 530: $this->expectExceptionMessage(<<<'EOT' - line 538: $result = $factory->path(__DIR__)->run('exit 1;'); - line 540: $result->throw(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 527: public function testRealProcessesCanThrowWithoutOutput() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 543: public function testFakeProcessesCanThrowWithErrorOutput() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 543: public function testFakeProcessesCanThrowWithErrorOutput() - line 545: $this->expectException(ProcessFailedException::class); - line 546: $this->expectExceptionMessage(<<<'EOT' - line 558: $factory->fake(fn () => $factory->result(errorOutput: 'Hello World', exitCode: 1)); - line 559: $result = $factory->path(__DIR__)->run('echo "Hello World" >&2; exit 1;'); - line 561: $result->throw(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 543: public function testFakeProcessesCanThrowWithErrorOutput() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 565: public function testRealProcessesCanThrowWithErrorOutput() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 565: public function testRealProcessesCanThrowWithErrorOutput() - line 567: $this->expectException(ProcessFailedException::class); - line 568: $this->expectExceptionMessage(<<<'EOT' - line 580: $result = $factory->path(__DIR__)->run('echo "Hello World" >&2; exit 1;'); - line 582: $result->throw(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 565: public function testRealProcessesCanThrowWithErrorOutput() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 585: public function testFakeProcessesCanThrowWithOutput() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 585: public function testFakeProcessesCanThrowWithOutput() - line 587: $this->expectException(ProcessFailedException::class); - line 588: $this->expectExceptionMessage(<<<'EOT' - line 600: $factory->fake(fn () => $factory->result(output: 'Hello World', exitCode: 1)); - line 601: $result = $factory->path(__DIR__)->run('echo "Hello World" >&1; exit 1;'); - line 603: $result->throw(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 585: public function testFakeProcessesCanThrowWithOutput() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 607: public function testRealProcessesCanThrowWithOutput() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 607: public function testRealProcessesCanThrowWithOutput() - line 609: $this->expectException(ProcessFailedException::class); - line 610: $this->expectExceptionMessage(<<<'EOT' - line 622: $result = $factory->path(__DIR__)->run('echo "Hello World" >&1; exit 1;'); - line 624: $result->throw(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 607: public function testRealProcessesCanThrowWithOutput() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 628: public function testRealProcessesCanTimeout() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 628: public function testRealProcessesCanTimeout() - line 630: $this->expectException(ProcessTimedOutException::class); - line 631: $this->expectExceptionMessage( - line 636: $result = $factory->timeout(1)->path(__DIR__)->run('sleep 2; exit 1;'); - line 638: $result->throw(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 628: public function testRealProcessesCanTimeout() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 642: public function testRealProcessesCanThrowIfTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 642: public function testRealProcessesCanThrowIfTrue() - line 644: $this->expectException(ProcessFailedException::class); - line 647: $result = $factory->path(__DIR__)->run('echo "Hello World" >&2; exit 1;'); - line 649: $result->throwIf(true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 642: public function testRealProcessesCanThrowIfTrue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 653: public function testRealProcessesDoesntThrowIfFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 653: public function testRealProcessesDoesntThrowIfFalse() - line 656: $result = $factory->path(__DIR__)->run('echo "Hello World" >&2; exit 1;'); - line 658: $result->throwIf(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 653: public function testRealProcessesDoesntThrowIfFalse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 664: public function testRealProcessesCanUseStandardInput() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 664: public function testRealProcessesCanUseStandardInput() - line 667: $result = $factory->input('foobar')->run('cat'); - line 669: $this->assertSame('foobar', $result->output()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 673: public function testProcessPipe() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 673: public function testProcessPipe() - line 680: $pipe = $factory->pipe(function ($pipe) { - line 685: $this->assertSame("foo\n", $pipe->output()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 689: public function testProcessPipeFailed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 689: public function testProcessPipeFailed() - line 693: 'cat *' => $factory->result(exitCode: 1), - line 696: $pipe = $factory->pipe(function ($pipe) { - line 701: $this->assertTrue($pipe->failed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 705: public function testProcessSimplePipe() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 705: public function testProcessSimplePipe() - line 712: $pipe = $factory->pipe([ - line 717: $this->assertSame("foo\n", $pipe->output()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 721: public function testProcessSimplePipeFailed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 721: public function testProcessSimplePipeFailed() - line 725: 'cat *' => $factory->result(exitCode: 1), - line 728: $pipe = $factory->pipe([ - line 733: $this->assertTrue($pipe->failed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 736: public function testFakeInvokedProcessOutputWithLatestOutput() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 736: public function testFakeInvokedProcessOutputWithLatestOutput() - line 741: return $factory->describe() - line 748: $process = $factory->start('echo "ONE"; sleep 1; echo "TWO"; sleep 1; echo "THREE"; sleep 1;'); - line 753: while ($process->running()) { - line 755: $output[] = $process->output(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 736: public function testFakeInvokedProcessOutputWithLatestOutput() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 768: public function testFakeInvokedProcessWaitUntil() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 768: public function testFakeInvokedProcessWaitUntil() - line 773: return $factory->describe() - line 780: $process = $factory->start('echo "WAITING"; sleep 1; echo "READY"; sleep 1; echo "DONE";'); - line 784: $result = $process->waitUntil(function ($type, $buffer) use (&$callbackInvoked) { - line 791: $this->assertTrue($result->successful()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 796: public function testFakeInvokedProcessWaitUntilWithNoCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 796: public function testFakeInvokedProcessWaitUntilWithNoCallback() - line 801: return $factory->describe() - line 805: $process = $factory->start('echo "OUTPUT"'); - line 807: $result = $process->waitUntil(); - line 810: $this->assertTrue($result->successful()); - line 811: $this->assertEquals("OUTPUT\n", $result->output()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 814: public function testFakeInvokedProcessWaitUntilWithErrorOutput() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 814: public function testFakeInvokedProcessWaitUntilWithErrorOutput() - line 819: return $factory->describe() - line 827: $process = $factory->start('echo "STDOUT"; echo "ERROR1" >&2; echo "TARGET_ERROR" >&2; echo "MORE_STDOUT";'); - line 831: $result = $process->waitUntil(function ($type, $buffer) use (&$callbackInvoked) { - line 838: $this->assertTrue($result->successful()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 844: public function testFakeInvokedProcessWaitUntilCalledTwice() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 844: public function testFakeInvokedProcessWaitUntilCalledTwice() - line 849: return $factory->describe() - line 857: $process = $factory->start('echo "FIRST"; echo "SECOND"; echo "THIRD"; echo "FOURTH";'); - line 862: $firstResult = $process->waitUntil(function ($type, $buffer) use (&$firstCallbackInvoked) { - line 869: $this->assertTrue($firstResult->successful()); - line 874: $secondResult = $process->waitUntil(function ($type, $buffer) use (&$secondCallbackInvoked) { - line 881: $this->assertTrue($secondResult->successful()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 887: public function testFakeInvokedProcessWaitUntilThatNeverMatches() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 887: public function testFakeInvokedProcessWaitUntilThatNeverMatches() - line 892: return $factory->describe() - line 899: $process = $factory->start('echo "LINE1"; echo "LINE2"; echo "LINE3";'); - line 903: $result = $process->waitUntil(function ($type, $buffer) use (&$callbackInvoked) { - line 910: $this->assertTrue($result->successful()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 917: public function testFakeInvokedProcessWaitUntilFollowedByWait() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 917: public function testFakeInvokedProcessWaitUntilFollowedByWait() - line 922: return $factory->describe() - line 929: $process = $factory->start('echo "FIRST"; echo "SECOND"; echo "THIRD";'); - line 934: $process->waitUntil(function ($type, $buffer) use (&$waitUntilCallbacks) { - line 940: $result = $process->wait(function ($type, $buffer) use (&$waitCallbacks) { - line 945: $this->assertTrue($result->successful()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 953: public function testFakeInvokedProcessWaitCalledTwice() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 953: public function testFakeInvokedProcessWaitCalledTwice() - line 958: return $factory->describe() - line 965: $process = $factory->start('echo "FIRST"; echo "SECOND"; echo "THIRD";'); - line 970: $firstResult = $process->wait(function ($type, $buffer) use (&$firstCallbackInvoked) { - line 975: $this->assertTrue($firstResult->successful()); - line 981: $secondResult = $process->wait(function ($type, $buffer) use (&$secondCallbackInvoked) { - line 986: $this->assertTrue($secondResult->successful()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 990: public function testFakeInvokedProcessWaitFollowedByWaitUntil() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 990: public function testFakeInvokedProcessWaitFollowedByWaitUntil() - line 995: return $factory->describe() - line 1002: $process = $factory->start('echo "FIRST"; echo "SECOND"; echo "THIRD";'); - line 1007: $process->wait(function ($type, $buffer) use (&$waitCallbacks) { - line 1011: $result = $process->waitUntil(function ($type, $buffer) use (&$waitUntilCallbacks) { - line 1018: $this->assertTrue($result->successful()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1023: public function testBasicFakeAssertions() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1023: public function testBasicFakeAssertions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1044: public function testAssertingThatNothingRan() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1044: public function testAssertingThatNothingRan() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1044: public function testAssertingThatNothingRan() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1053: public function testProcessWithMultipleEnvironmentVariablesAndSequences() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 1053: public function testProcessWithMultipleEnvironmentVariablesAndSequences() - line 1058: 'printenv TEST_VAR OTHER_VAR' => $factory->sequence() - line 1063: $result = $factory->env([ - line 1068: $this->assertTrue($result->successful()); - line 1069: $this->assertEquals("test_value\nother_value\n", $result->output()); - line 1071: $result = $factory->env([ - line 1076: $this->assertTrue($result->successful()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Queue/BeforeCommitContractTest.php - Test @ line 38: public function testJobWithoutContractRespectsAfterCommit() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 38: public function testJobWithoutContractRespectsAfterCommit() - line 52: $job->afterCommit(); - line 54: $this->assertTrue($this->shouldDispatchAfterCommit($job)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 67: public function testJobWithContractAndAfterCommitFalseRespectsBeforeCommit() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 67: public function testJobWithContractAndAfterCommitFalseRespectsBeforeCommit() - line 81: $job->beforeCommit(); - line 83: $this->assertFalse($this->shouldDispatchAfterCommit($job)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 86: public function testJobWithContractAndExplicitAfterCommitTrueStillSchedulesAfterCommit() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 86: public function testJobWithContractAndExplicitAfterCommitTrueStillSchedulesAfterCommit() - line 100: $job->afterCommit(); - line 102: $this->assertTrue($this->shouldDispatchAfterCommit($job)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Queue/DatabaseFailedJobProviderTest.php - Test @ line 28: public function testCanGetAllFailedJobIds() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 28: public function testCanGetAllFailedJobIds() - line 30: $this->assertEmpty($this->provider->ids()); - line 32: array_map(fn () => $this->createFailedJobsRecord(), range(1, 4)); - line 34: $this->assertCount(4, $this->provider->ids()); - line 35: $this->assertSame([4, 3, 2, 1], $this->provider->ids()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 38: public function testCanGetAllFailedJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 38: public function testCanGetAllFailedJobs() - line 40: $this->assertEmpty($this->provider->all()); - line 42: array_map(fn () => $this->createFailedJobsRecord(), range(1, 4)); - line 44: $this->assertCount(4, $this->provider->all()); - line 45: $this->assertSame(3, $this->provider->all()[1]->id); - line 46: $this->assertSame('default', $this->provider->all()[1]->queue); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 49: public function testCanRetrieveFailedJobsById() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 49: public function testCanRetrieveFailedJobsById() - line 51: array_map(fn () => $this->createFailedJobsRecord(), range(1, 2)); - line 53: $this->assertNotNull($this->provider->find(1)); - line 54: $this->assertNotNull($this->provider->find(2)); - line 55: $this->assertNull($this->provider->find(3)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testCanRetrieveFailedJobsById() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 58: public function testCanRemoveFailedJobsById() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 58: public function testCanRemoveFailedJobsById() - line 60: $this->createFailedJobsRecord(); - line 62: $this->assertFalse($this->provider->forget(2)); - line 63: $this->assertSame(1, $this->failedJobsTable()->count()); - line 64: $this->assertTrue($this->provider->forget(1)); - line 65: $this->assertSame(0, $this->failedJobsTable()->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 68: public function testCanPruneFailedJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 68: public function testCanPruneFailedJobs() - line 72: $this->createFailedJobsRecord(['failed_at' => Carbon::createFromDate(2024, 4, 24)]); - line 73: $this->createFailedJobsRecord(['failed_at' => Carbon::createFromDate(2024, 4, 26)]); - line 75: $this->provider->prune(Carbon::createFromDate(2024, 4, 23)); - line 76: $this->assertSame(2, $this->failedJobsTable()->count()); - line 78: $this->provider->prune(Carbon::createFromDate(2024, 4, 25)); - line 79: $this->assertSame(1, $this->failedJobsTable()->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 85: public function testCanPruneFailedJobsWithRelativeHoursAndMinutes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 85: public function testCanPruneFailedJobsWithRelativeHoursAndMinutes() - line 89: $this->createFailedJobsRecord(['failed_at' => Carbon::create(2025, 8, 24, 11, 45, 0)]); - line 90: $this->createFailedJobsRecord(['failed_at' => Carbon::create(2025, 8, 24, 13, 0, 0)]); - line 92: $this->provider->prune(Carbon::create(2025, 8, 24, 11, 45, 0)); - line 93: $this->assertSame(2, $this->failedJobsTable()->count()); - line 95: $this->provider->prune(Carbon::create(2025, 8, 24, 14, 0, 0)); - line 96: $this->assertSame(0, $this->failedJobsTable()->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 99: public function testCanFlushFailedJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 99: public function testCanFlushFailedJobs() - line 101: Date::setTestNow(Date::now()); - line 103: $this->createFailedJobsRecord(['failed_at' => Date::now()->subDays(10)]); - line 104: $this->provider->flush(); - line 105: $this->assertSame(0, $this->failedJobsTable()->count()); - line 107: $this->createFailedJobsRecord(['failed_at' => Date::now()->subDays(10)]); - line 108: $this->provider->flush(15 * 24); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 116: public function testCanProperlyLogFailedJob() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 116: public function testCanProperlyLogFailedJob() - line 118: $uuid = Str::uuid(); - line 121: $this->provider->log('database', 'default', json_encode(['uuid' => (string) $uuid]), $exception); - line 125: $this->assertSame(1, $this->failedJobsTable()->count()); - line 126: $this->assertSame($exception, $this->failedJobsTable()->first()->exception); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 129: public function testJobsCanBeCounted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 129: public function testJobsCanBeCounted() - line 131: $this->assertSame(0, $this->provider->count()); - line 133: $this->provider->log('database', 'default', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 134: $this->assertSame(1, $this->provider->count()); - line 136: $this->provider->log('database', 'default', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 137: $this->provider->log('another-connection', 'another-queue', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 138: $this->assertSame(3, $this->provider->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 141: public function testJobsCanBeCountedByConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 141: public function testJobsCanBeCountedByConnection() - line 143: $this->provider->log('connection-1', 'default', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 144: $this->provider->log('connection-2', 'default', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 145: $this->assertSame(1, $this->provider->count('connection-1')); - line 146: $this->assertSame(1, $this->provider->count('connection-2')); - line 148: $this->provider->log('connection-1', 'default', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 149: $this->assertSame(2, $this->provider->count('connection-1')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 153: public function testJobsCanBeCountedByQueue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 153: public function testJobsCanBeCountedByQueue() - line 155: $this->provider->log('database', 'queue-1', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 156: $this->provider->log('database', 'queue-2', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 157: $this->assertSame(1, $this->provider->count(queue: 'queue-1')); - line 158: $this->assertSame(1, $this->provider->count(queue: 'queue-2')); - line 160: $this->provider->log('database', 'queue-1', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 161: $this->assertSame(2, $this->provider->count(queue: 'queue-1')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 165: public function testJobsCanBeCountedByQueueAndConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 165: public function testJobsCanBeCountedByQueueAndConnection() - line 167: $this->provider->log('connection-1', 'queue-99', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 168: $this->provider->log('connection-1', 'queue-99', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 169: $this->provider->log('connection-2', 'queue-99', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 170: $this->provider->log('connection-1', 'queue-1', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 171: $this->provider->log('connection-2', 'queue-1', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 172: $this->provider->log('connection-2', 'queue-1', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Queue/DatabaseUuidFailedJobProviderTest.php - Test @ line 15: public function testGettingIdsOfAllFailedJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 15: public function testGettingIdsOfAllFailedJobs() - line 17: $provider = $this->getFailedJobProvider(); - line 19: $provider->log('connection-1', 'queue-1', json_encode(['uuid' => 'uuid-1']), new RuntimeException()); - line 20: $provider->log('connection-1', 'queue-1', json_encode(['uuid' => 'uuid-2']), new RuntimeException()); - line 21: $provider->log('connection-2', 'queue-2', json_encode(['uuid' => 'uuid-3']), new RuntimeException()); - line 22: $provider->log('connection-2', 'queue-2', json_encode(['uuid' => 'uuid-4']), new RuntimeException()); - line 24: $this->assertSame(['uuid-1', 'uuid-2', 'uuid-3', 'uuid-4'], $provider->ids()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 29: public function testGettingAllFailedJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 29: public function testGettingAllFailedJobs() - line 31: $provider = $this->getFailedJobProvider(); - line 33: $this->assertEmpty($provider->all()); - line 35: $provider->log('connection-1', 'queue-1', json_encode(['uuid' => 'uuid-1']), new RuntimeException()); - line 36: $provider->log('connection-1', 'queue-1', json_encode(['uuid' => 'uuid-2']), new RuntimeException()); - line 37: $provider->log('connection-2', 'queue-2', json_encode(['uuid' => 'uuid-3']), new RuntimeException()); - line 38: $provider->log('connection-2', 'queue-2', json_encode(['uuid' => 'uuid-4']), new RuntimeException()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 48: public function testFindingFailedJobsById() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 48: public function testFindingFailedJobsById() - line 50: $provider = $this->getFailedJobProvider(); - line 52: $provider->log('connection-1', 'queue-1', json_encode(['uuid' => 'uuid-1']), new RuntimeException()); - line 54: $this->assertNull($provider->find('uuid-2')); - line 55: $this->assertEquals('uuid-1', $provider->find('uuid-1')->id); - line 56: $this->assertEquals('queue-1', $provider->find('uuid-1')->queue); - line 57: $this->assertEquals('connection-1', $provider->find('uuid-1')->connection); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 60: public function testRemovingJobsById() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 60: public function testRemovingJobsById() - line 62: $provider = $this->getFailedJobProvider(); - line 64: $provider->log('connection-1', 'queue-1', json_encode(['uuid' => 'uuid-1']), new RuntimeException()); - line 66: $this->assertNotNull($provider->find('uuid-1')); - line 68: $provider->forget('uuid-1'); - line 70: $this->assertNull($provider->find('uuid-1')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 60: public function testRemovingJobsById() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 73: public function testRemovingAllFailedJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 73: public function testRemovingAllFailedJobs() - line 75: $provider = $this->getFailedJobProvider(); - line 77: $provider->log('connection-1', 'queue-1', json_encode(['uuid' => 'uuid-1']), new RuntimeException()); - line 78: $provider->log('connection-2', 'queue-2', json_encode(['uuid' => 'uuid-2']), new RuntimeException()); - line 80: $this->assertCount(2, $provider->all()); - line 82: $provider->flush(); - line 84: $this->assertEmpty($provider->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 87: public function testPruningFailedJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 87: public function testPruningFailedJobs() - line 89: $provider = $this->getFailedJobProvider(); - line 93: $provider->log('connection-1', 'queue-1', json_encode(['uuid' => 'uuid-1']), new RuntimeException()); - line 94: $provider->log('connection-2', 'queue-2', json_encode(['uuid' => 'uuid-2']), new RuntimeException()); - line 96: $provider->prune(Carbon::createFromDate(2024, 4, 26)); - line 98: $this->assertCount(2, $provider->all()); - line 100: $provider->prune(Carbon::createFromDate(2024, 4, 30)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 105: public function testPruningFailedJobsWithRelativeHoursAndMinutes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 105: public function testPruningFailedJobsWithRelativeHoursAndMinutes() - line 107: $provider = $this->getFailedJobProvider(); - line 111: $provider->log('connection-1', 'queue-1', json_encode(['uuid' => 'uuid-1']), new RuntimeException()); - line 112: $provider->log('connection-2', 'queue-2', json_encode(['uuid' => 'uuid-2']), new RuntimeException()); - line 114: $provider->prune(Carbon::create(2025, 8, 24, 12, 30, 0)); - line 116: $this->assertCount(2, $provider->all()); - line 118: $provider->prune(Carbon::create(2025, 8, 24, 13, 0, 0)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 123: public function testJobsCanBeCounted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 123: public function testJobsCanBeCounted() - line 125: $provider = $this->getFailedJobProvider(); - line 127: $this->assertSame(0, $provider->count()); - line 129: $provider->log('connection-1', 'queue-1', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 130: $this->assertSame(1, $provider->count()); - line 132: $provider->log('connection-1', 'queue-1', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 133: $provider->log('connection-2', 'queue-2', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 137: public function testJobsCanBeCountedByConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 137: public function testJobsCanBeCountedByConnection() - line 139: $provider = $this->getFailedJobProvider(); - line 141: $provider->log('connection-1', 'default', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 142: $provider->log('connection-2', 'default', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 143: $this->assertSame(1, $provider->count('connection-1')); - line 144: $this->assertSame(1, $provider->count('connection-2')); - line 146: $provider->log('connection-1', 'default', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 151: public function testJobsCanBeCountedByQueue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 151: public function testJobsCanBeCountedByQueue() - line 153: $provider = $this->getFailedJobProvider(); - line 155: $provider->log('database', 'queue-1', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 156: $provider->log('database', 'queue-2', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 157: $this->assertSame(1, $provider->count(queue: 'queue-1')); - line 158: $this->assertSame(1, $provider->count(queue: 'queue-2')); - line 160: $provider->log('database', 'queue-1', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 165: public function testJobsCanBeCountedByQueueAndConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 165: public function testJobsCanBeCountedByQueueAndConnection() - line 167: $provider = $this->getFailedJobProvider(); - line 169: $provider->log('connection-1', 'queue-99', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 170: $provider->log('connection-1', 'queue-99', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 171: $provider->log('connection-2', 'queue-99', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 172: $provider->log('connection-1', 'queue-1', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); - line 173: $provider->log('connection-2', 'queue-1', json_encode(['uuid' => (string) Str::uuid()]), new RuntimeException()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Queue/DynamoDbFailedJobProviderTest.php - Test @ line 22: public function testCanProperlyLogFailedJob() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 22: public function testCanProperlyLogFailedJob() - line 24: $uuid = Str::orderedUuid(); - line 45: 'failed_at' => ['N' => (string) $now->getTimestamp()], - line 52: $provider->log('connection', 'queue', json_encode(['uuid' => (string) $uuid]), $exception); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 34: $dynamoDbClient = m::mock(DynamoDbClient::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 22: public function testCanProperlyLogFailedJob() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 57: public function testCanRetrieveAllFailedJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 57: public function testCanRetrieveAllFailedJobs() - line 59: $dynamoDbClient = m::mock(DynamoDbClient::class); - line 88: $response = $provider->all(); - line 97: 'failed_at' => Carbon::createFromTimestamp($time)->format(DateTimeInterface::ISO8601), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 59: $dynamoDbClient = m::mock(DynamoDbClient::class); - Test @ line 102: public function testASingleJobCanBeFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 102: public function testASingleJobCanBeFound() - line 104: $dynamoDbClient = m::mock(DynamoDbClient::class); - line 129: $response = $provider->find('id'); - line 138: 'failed_at' => Carbon::createFromTimestamp($time)->format(DateTimeInterface::ISO8601), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 104: $dynamoDbClient = m::mock(DynamoDbClient::class); - Test @ line 143: public function testNullIsReturnedIfJobNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 143: public function testNullIsReturnedIfJobNotFound() - line 145: $dynamoDbClient = m::mock(DynamoDbClient::class); - line 157: $response = $provider->find('id'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 145: $dynamoDbClient = m::mock(DynamoDbClient::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 143: public function testNullIsReturnedIfJobNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 162: public function testJobsCanBeDeleted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 162: public function testJobsCanBeDeleted() - line 164: $dynamoDbClient = m::mock(DynamoDbClient::class); - line 176: $provider->forget('id'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 164: $dynamoDbClient = m::mock(DynamoDbClient::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 162: public function testJobsCanBeDeleted() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Queue/FailoverQueueTest.php - Test @ line 21: public function test_push_fails_over_on_exception() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 21: public function test_push_fails_over_on_exception() - line 23: $failover = new FailoverQueue($queue = m::mock(QueueManager::class), $events = m::mock(Dispatcher::class), [ - line 38: $redis->shouldReceive('push')->once()->andReturnUsing( - line 44: $failover->push('some-job'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 23: $failover = new FailoverQueue($queue = m::mock(QueueManager::class), $events = m::mock(Dispatcher::class), [ - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 21: public function test_push_fails_over_on_exception() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Queue/FileFailedJobProviderTest.php - Test @ line 23: public function testCanLogFailedJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 23: public function testCanLogFailedJobs() - line 25: [$uuid, $exception] = $this->logFailedJob(); - line 27: $failedJobs = $this->provider->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testCanLogFailedJobs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 42: public function testCanRetrieveAllFailedJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 42: public function testCanRetrieveAllFailedJobs() - line 47: [$uuidOne, $exceptionOne] = $this->logFailedJob(); - line 48: [$uuidTwo, $exceptionTwo] = $this->logFailedJob(); - line 50: $failedJobs = $this->provider->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 42: public function testCanRetrieveAllFailedJobs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 77: public function testCanFindFailedJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 77: public function testCanFindFailedJobs() - line 79: [$uuid, $exception] = $this->logFailedJob(); - line 81: $failedJob = $this->provider->find($uuid); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 77: public function testCanFindFailedJobs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 94: public function testNullIsReturnedIfJobNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 94: public function testNullIsReturnedIfJobNotFound() - line 96: $uuid = Str::uuid(); - line 98: $failedJob = $this->provider->find($uuid); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 94: public function testNullIsReturnedIfJobNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 103: public function testCanForgetFailedJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 103: public function testCanForgetFailedJobs() - line 105: [$uuid] = $this->logFailedJob(); - line 107: $this->provider->forget($uuid); - line 109: $failedJob = $this->provider->find($uuid); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 103: public function testCanForgetFailedJobs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 114: public function testCanFlushFailedJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 114: public function testCanFlushFailedJobs() - line 116: $this->logFailedJob(); - line 117: $this->logFailedJob(); - line 119: $this->provider->flush(); - line 121: $failedJobs = $this->provider->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 114: public function testCanFlushFailedJobs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 126: public function testCanPruneFailedJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 126: public function testCanPruneFailedJobs() - line 128: $this->logFailedJob(); - line 129: $this->logFailedJob(); - line 131: $this->provider->prune(now()->addDay(1)); - line 132: $failedJobs = $this->provider->all(); - line 135: $this->logFailedJob(); - line 136: $this->logFailedJob(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 143: public function testCanPruneFailedJobsWithRelativeHours() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 143: public function testCanPruneFailedJobsWithRelativeHours() - line 145: $this->logFailedJob(); - line 146: $this->logFailedJob(); - line 148: $this->provider->prune(now()->addHour(1)); - line 149: $failedJobs = $this->provider->all(); - line 152: $this->logFailedJob(); - line 153: $this->logFailedJob(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 160: public function testEmptyFailedJobsByDefault() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 160: public function testEmptyFailedJobsByDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 167: public function testJobsCanBeCounted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 167: public function testJobsCanBeCounted() - line 169: $this->assertSame(0, $this->provider->count()); - line 171: $this->logFailedJob('database', 'default'); - line 172: $this->assertSame(1, $this->provider->count()); - line 174: $this->logFailedJob('database', 'default'); - line 175: $this->logFailedJob('another-connection', 'another-queue'); - line 176: $this->assertSame(3, $this->provider->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 179: public function testJobsCanBeCountedByConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 179: public function testJobsCanBeCountedByConnection() - line 181: $this->logFailedJob('connection-1', 'default'); - line 182: $this->logFailedJob('connection-2', 'default'); - line 183: $this->assertSame(1, $this->provider->count('connection-1')); - line 184: $this->assertSame(1, $this->provider->count('connection-2')); - line 186: $this->logFailedJob('connection-1', 'default'); - line 187: $this->assertSame(2, $this->provider->count('connection-1')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 191: public function testJobsCanBeCountedByQueue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 191: public function testJobsCanBeCountedByQueue() - line 193: $this->logFailedJob('database', 'queue-1'); - line 194: $this->logFailedJob('database', 'queue-2'); - line 195: $this->assertSame(1, $this->provider->count(queue: 'queue-1')); - line 196: $this->assertSame(1, $this->provider->count(queue: 'queue-2')); - line 198: $this->logFailedJob('database', 'queue-1'); - line 199: $this->assertSame(2, $this->provider->count(queue: 'queue-1')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 203: public function testJobsCanBeCountedByQueueAndConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 203: public function testJobsCanBeCountedByQueueAndConnection() - line 205: $this->logFailedJob('connection-1', 'queue-99'); - line 206: $this->logFailedJob('connection-1', 'queue-99'); - line 207: $this->logFailedJob('connection-2', 'queue-99'); - line 208: $this->logFailedJob('connection-1', 'queue-1'); - line 209: $this->logFailedJob('connection-2', 'queue-1'); - line 210: $this->logFailedJob('connection-2', 'queue-1'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Queue/InteractsWithQueueTest.php - Test @ line 13: public function testCreatesAnExceptionFromString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 13: public function testCreatesAnExceptionFromString() - line 15: $queueJob = m::mock(Job::class); - line 16: $queueJob->shouldReceive('fail')->withArgs(function ($e) { - line 31: $job->fail('Whoops!'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 15: $queueJob = m::mock(Job::class); ❌ tests/Queue/PruneBatchesCommandTest.php - Test @ line 21: public function testAllowPruningAllUnfinishedBatches() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 21: public function testAllowPruningAllUnfinishedBatches() - line 24: $container->instance(BatchRepository::class, $repo = m::spy(DatabaseBatchRepository::class)); - line 27: $command->setLaravel($container); - line 29: $command->run(new ArrayInput(['--unfinished' => 0]), new NullOutput()); - line 31: $repo->shouldHaveReceived('pruneUnfinished')->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 21: public function testAllowPruningAllUnfinishedBatches() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 34: public function testAllowPruningAllCancelledBatches() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 34: public function testAllowPruningAllCancelledBatches() - line 37: $container->instance(BatchRepository::class, $repo = m::spy(DatabaseBatchRepository::class)); - line 40: $command->setLaravel($container); - line 42: $command->run(new ArrayInput(['--cancelled' => 0]), new NullOutput()); - line 44: $repo->shouldHaveReceived('pruneCancelled')->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function testAllowPruningAllCancelledBatches() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Queue/QueueBeanstalkdJobTest.php - Test @ line 27: public function testFireProperlyCallsTheJobHandler() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 27: public function testFireProperlyCallsTheJobHandler() - line 29: $job = $this->getJob(); - line 30: $job->getPheanstalkJob()->shouldReceive('getData')->once()->andReturn(json_encode(['job' => 'foo', 'data' => ['data']])); - line 31: $job->getContainer()->shouldReceive('make')->once()->with('foo')->andReturn($handler = m::mock(stdClass::class)); - line 34: $job->fire(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 31: $job->getContainer()->shouldReceive('make')->once()->with('foo')->andReturn($handler = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 27: public function testFireProperlyCallsTheJobHandler() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 37: public function testFailProperlyCallsTheJobHandler() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 37: public function testFailProperlyCallsTheJobHandler() - line 39: $job = $this->getJob(); - line 40: $job->getPheanstalkJob()->shouldReceive('getData')->andReturn(json_encode(['job' => 'foo', 'uuid' => 'test-uuid', 'data' => ['data']])); - line 41: $job->getContainer()->shouldReceive('make')->once()->with('foo')->andReturn($handler = m::mock(BeanstalkdJobTestFailedTest::class)); - line 42: $job->getPheanstalk()->shouldReceive('delete')->once()->with($job->getPheanstalkJob())->andReturnSelf(); - line 44: $job->getContainer()->shouldReceive('make')->once()->with(Dispatcher::class)->andReturn($events = m::mock(Dispatcher::class)); - line 45: $events->shouldReceive('dispatch')->once()->with(m::type(JobFailed::class))->andReturnNull(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 41: $job->getContainer()->shouldReceive('make')->once()->with('foo')->andReturn($handler = m::mock(BeanstalkdJobTestFailedTest::class)); - line 44: $job->getContainer()->shouldReceive('make')->once()->with(Dispatcher::class)->andReturn($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 37: public function testFailProperlyCallsTheJobHandler() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 50: public function testDeleteRemovesTheJobFromBeanstalkd() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 50: public function testDeleteRemovesTheJobFromBeanstalkd() - line 52: $job = $this->getJob(); - line 53: $job->getPheanstalk()->shouldReceive('delete')->once()->with($job->getPheanstalkJob()); - line 55: $job->delete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 50: public function testDeleteRemovesTheJobFromBeanstalkd() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 58: public function testReleaseProperlyReleasesJobOntoBeanstalkd() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 58: public function testReleaseProperlyReleasesJobOntoBeanstalkd() - line 60: $job = $this->getJob(); - line 61: $job->getPheanstalk()->shouldReceive('release')->once()->with($job->getPheanstalkJob(), Pheanstalk::DEFAULT_PRIORITY, 0); - line 63: $job->release(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 58: public function testReleaseProperlyReleasesJobOntoBeanstalkd() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 66: public function testBuryProperlyBuryTheJobFromBeanstalkd() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 66: public function testBuryProperlyBuryTheJobFromBeanstalkd() - line 68: $job = $this->getJob(); - line 69: $job->getPheanstalk()->shouldReceive('bury')->once()->with($job->getPheanstalkJob()); - line 71: $job->bury(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 66: public function testBuryProperlyBuryTheJobFromBeanstalkd() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Queue/QueueBeanstalkdQueueTest.php - Test @ line 38: public function testPushProperlyPushesJobOntoBeanstalkd() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 38: public function testPushProperlyPushesJobOntoBeanstalkd() - line 40: $uuid = Str::uuid(); - line 49: $this->setQueue('default', 60); - line 50: $pheanstalk = $this->queue->getPheanstalk(); - line 53: $pheanstalk->shouldReceive('put')->twice()->with(json_encode(['uuid' => $uuid, 'displayName' => 'foo', 'job' => 'foo', 'maxTries' => null, 'maxExceptions' => null, 'failOnTimeout' => false, 'backoff' => null, 'timeout' => null, 'data' => ['data'], 'createdAt' => $time->getTimestamp(), 'delay' => null]), 1024, 0, 60); - line 55: $this->queue->push('foo', ['data'], 'stack'); - line 56: $this->queue->push('foo', ['data']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 38: public function testPushProperlyPushesJobOntoBeanstalkd() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 64: public function testDelayedPushProperlyPushesJobOntoBeanstalkd() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 64: public function testDelayedPushProperlyPushesJobOntoBeanstalkd() - line 66: $uuid = Str::uuid(); - line 75: $this->setQueue('default', 60); - line 76: $pheanstalk = $this->queue->getPheanstalk(); - line 79: $pheanstalk->shouldReceive('put')->twice()->with(json_encode(['uuid' => $uuid, 'displayName' => 'foo', 'job' => 'foo', 'maxTries' => null, 'maxExceptions' => null, 'failOnTimeout' => false, 'backoff' => null, 'timeout' => null, 'data' => ['data'], 'createdAt' => $time->getTimestamp(), 'delay' => 5]), Pheanstalk::DEFAULT_PRIORITY, 5, Pheanstalk::DEFAULT_TTR); - line 81: $this->queue->later(5, 'foo', ['data'], 'stack'); - line 82: $this->queue->later(5, 'foo', ['data']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 64: public function testDelayedPushProperlyPushesJobOntoBeanstalkd() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 90: public function testPopProperlyPopsJobOffOfBeanstalkd() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 90: public function testPopProperlyPopsJobOffOfBeanstalkd() - line 92: $this->setQueue('default', 60); - line 95: $pheanstalk = $this->queue->getPheanstalk(); - line 104: $result = $this->queue->pop(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 99: $jobId = m::mock(JobIdInterface::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 90: public function testPopProperlyPopsJobOffOfBeanstalkd() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 109: public function testBlockingPopProperlyPopsJobOffOfBeanstalkd() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 109: public function testBlockingPopProperlyPopsJobOffOfBeanstalkd() - line 111: $this->setQueue('default', 60, 60); - line 114: $pheanstalk = $this->queue->getPheanstalk(); - line 123: $result = $this->queue->pop(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 118: $jobId = m::mock(JobIdInterface::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 109: public function testBlockingPopProperlyPopsJobOffOfBeanstalkd() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 128: public function testDeleteProperlyRemoveJobsOffBeanstalkd() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 128: public function testDeleteProperlyRemoveJobsOffBeanstalkd() - line 130: $this->setQueue('default', 60); - line 132: $pheanstalk = $this->queue->getPheanstalk(); - line 136: $this->queue->deleteMessage('default', 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 128: public function testDeleteProperlyRemoveJobsOffBeanstalkd() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Queue/QueueDatabaseQueueIntegrationTest.php - Test @ line 112: public function testAvailableAndUnReservedJobsArePopped() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 112: public function testAvailableAndUnReservedJobsArePopped() - line 114: $this->connection() - line 126: $popped_job = $this->queue->pop($mock_queue_name); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 112: public function testAvailableAndUnReservedJobsArePopped() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 134: public function testPoppedJobsIncrementAttempts() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 134: public function testPoppedJobsIncrementAttempts() - line 142: 'available_at' => Carbon::now()->subSeconds(1)->getTimestamp(), - line 146: $this->connection()->table('jobs')->insert($job); - line 148: $popped_job = $this->queue->pop($job['queue']); - line 150: $database_record = $this->connection()->table('jobs')->find($job['id']); - line 153: $this->assertEquals(1, $popped_job->attempts(), 'The "attempts" attribute of the Job object was not updated by pop!'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 159: public function testThatQueueCanBeCleared() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 159: public function testThatQueueCanBeCleared() - line 161: $this->connection() - line 181: $this->assertEquals(2, $this->queue->clear($mock_queue_name)); - line 182: $this->assertEquals(0, $this->queue->size()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 188: public function testUnavailableJobsAreNotPopped() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 188: public function testUnavailableJobsAreNotPopped() - line 190: $this->connection() - line 202: $popped_job = $this->queue->pop($mock_queue_name); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 188: public function testUnavailableJobsAreNotPopped() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 210: public function testThatReservedAndExpiredJobsArePopped() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 210: public function testThatReservedAndExpiredJobsArePopped() - line 212: $this->connection() - line 224: $popped_job = $this->queue->pop($mock_queue_name); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 210: public function testThatReservedAndExpiredJobsArePopped() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 232: public function testThatReservedJobsAreNotPopped() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 232: public function testThatReservedJobsAreNotPopped() - line 234: $this->connection() - line 246: $popped_job = $this->queue->pop($mock_queue_name); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 232: public function testThatReservedJobsAreNotPopped() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 251: public function testJobPayloadIsAvailableOnEvents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 251: public function testJobPayloadIsAvailableOnEvents() - line 255: Str::createUuidsUsingSequence([ - line 258: $this->container['events']->listen(function (JobQueueing $e) use (&$jobQueueingEvent) { - line 261: $this->container['events']->listen(function (JobQueued $e) use (&$jobQueuedEvent) { - line 265: $this->queue->push('MyJob', [ - line 269: $this->assertIsArray($jobQueueingEvent->payload()); - line 270: $this->assertSame('expected-job-uuid', $jobQueueingEvent->payload()['uuid']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Queue/QueueDatabaseQueueUnitTest.php - Test @ line 25: public function testPushProperlyPushesJobOntoDatabase($uuid, $job, $displayNameStartsWith, $jobStartsWith) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 25: public function testPushProperlyPushesJobOntoDatabase($uuid, $job, $displayNameStartsWith, $jobStartsWith) - line 27: Str::createUuidsUsing(function () use ($uuid) { - line 31: $queue = $this->getMockBuilder(DatabaseQueue::class)->onlyMethods(['currentTime'])->setConstructorArgs([$database = m::mock(Connection::class), 'table', 'default'])->getMock(); - line 32: $queue->expects($this->any())->method('currentTime')->willReturn('time'); - line 33: $queue->setContainer($container = m::spy(Container::class)); - line 35: $query->shouldReceive('insertGetId')->once()->andReturnUsing(function ($array) use ($uuid, $displayNameStartsWith, $jobStartsWith) { - line 47: $queue->push($job, ['data']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 31: $queue = $this->getMockBuilder(DatabaseQueue::class)->onlyMethods(['currentTime'])->setConstructorArgs([$database = m::mock(Connection::class), 'table', 'default'])->getMock(); - line 34: $database->shouldReceive('table')->with('table')->andReturn($query = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 25: public function testPushProperlyPushesJobOntoDatabase($uuid, $job, $displayNameStartsWith, $jobStartsWith) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 65: public function testDelayedPushProperlyPushesJobOntoDatabase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 65: public function testDelayedPushProperlyPushesJobOntoDatabase() - line 67: $uuid = Str::uuid(); - line 76: $queue = $this->getMockBuilder(DatabaseQueue::class) - line 80: $queue->expects($this->any())->method('currentTime')->willReturn('time'); - line 81: $queue->setContainer($container = m::spy(Container::class)); - line 83: $query->shouldReceive('insertGetId')->once()->andReturnUsing(function ($array) use ($uuid, $time) { - line 91: $queue->later(10, 'foo', ['data']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 78: ->setConstructorArgs([$database = m::mock(Connection::class), 'table', 'default']) - line 82: $database->shouldReceive('table')->with('table')->andReturn($query = m::mock(stdClass::class)); - Test @ line 99: public function testFailureToCreatePayloadFromObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 99: public function testFailureToCreatePayloadFromObject() - line 101: $this->expectException('InvalidArgumentException'); - line 106: $queue = m::mock(Queue::class)->makePartial(); - line 109: $createPayload = $class->getMethod('createPayload'); - line 110: $createPayload->invokeArgs($queue, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 106: $queue = m::mock(Queue::class)->makePartial(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 99: public function testFailureToCreatePayloadFromObject() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 116: public function testFailureToCreatePayloadFromArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 116: public function testFailureToCreatePayloadFromArray() - line 118: $this->expectException('InvalidArgumentException'); - line 120: $queue = m::mock(Queue::class)->makePartial(); - line 123: $createPayload = $class->getMethod('createPayload'); - line 124: $createPayload->invokeArgs($queue, [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 120: $queue = m::mock(Queue::class)->makePartial(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 116: public function testFailureToCreatePayloadFromArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 130: public function testBulkBatchPushesOntoDatabase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 130: public function testBulkBatchPushesOntoDatabase() - line 132: $uuid = Str::uuid(); - line 142: $queue = $this->getMockBuilder(DatabaseQueue::class)->onlyMethods(['currentTime', 'availableAt'])->setConstructorArgs([$database, 'table', 'default'])->getMock(); - line 143: $queue->expects($this->any())->method('currentTime')->willReturn('created'); - line 144: $queue->expects($this->any())->method('availableAt')->willReturn('available'); - line 146: $query->shouldReceive('insert')->once()->andReturnUsing(function ($records) use ($uuid, $time) { - line 164: $queue->bulk(['foo', 'bar'], ['data'], 'queue'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 141: $database = m::mock(Connection::class); - line 145: $database->shouldReceive('table')->with('table')->andReturn($query = m::mock(stdClass::class)); - Test @ line 170: public function testBuildDatabaseRecordWithPayloadAtTheEnd() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 170: public function testBuildDatabaseRecordWithPayloadAtTheEnd() - line 172: $queue = m::mock(DatabaseQueue::class); - line 173: $record = $queue->buildDatabaseRecord('queue', 'any_payload', 0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 172: $queue = m::mock(DatabaseQueue::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 170: public function testBuildDatabaseRecordWithPayloadAtTheEnd() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Queue/QueueDelayTest.php - Test @ line 12: public function test_queue_delay() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 12: public function test_queue_delay() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 23: public function test_queue_without_delay() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function test_queue_without_delay() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 34: public function test_pending_dispatch_without_delay() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function test_pending_dispatch_without_delay() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Queue/QueueExceptionTest.php - Test @ line 12: public function test_it_can_create_timeout_exception_for_job() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 12: public function test_it_can_create_timeout_exception_for_job() - line 14: $e = TimeoutExceededException::forJob($job = new MyFakeRedisJob()); - line 16: $this->assertSame('App\\Jobs\\UnderlyingJob has timed out.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 20: public function test_it_can_create_max_attempts_exception_for_job() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 20: public function test_it_can_create_max_attempts_exception_for_job() - line 22: $e = MaxAttemptsExceededException::forJob($job = new MyFakeRedisJob()); - line 24: $this->assertSame('App\\Jobs\\UnderlyingJob has been attempted too many times.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Queue/QueueListenerTest.php - Test @ line 21: public function testRunProcessCallsProcess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 21: public function testRunProcessCallsProcess() - line 23: $process = m::mock(Process::class)->makePartial(); - line 25: $listener = m::mock(Listener::class)->makePartial(); - line 28: $listener->runProcess($process, 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 23: $process = m::mock(Process::class)->makePartial(); - line 25: $listener = m::mock(Listener::class)->makePartial(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 21: public function testRunProcessCallsProcess() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 31: public function testListenerStopsWhenMemoryIsExceeded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 31: public function testListenerStopsWhenMemoryIsExceeded() - line 33: $process = m::mock(Process::class)->makePartial(); - line 35: $listener = m::mock(Listener::class)->makePartial(); - line 39: $listener->runProcess($process, 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 33: $process = m::mock(Process::class)->makePartial(); - line 35: $listener = m::mock(Listener::class)->makePartial(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 31: public function testListenerStopsWhenMemoryIsExceeded() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 42: public function testMakeProcessCorrectlyFormatsCommandLine() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 42: public function testMakeProcessCorrectlyFormatsCommandLine() - line 49: $process = $listener->makeProcess('connection', 'queue', $options); - line 55: $this->assertEquals(__DIR__, $process->getWorkingDirectory()); - line 56: $this->assertEquals(3, $process->getTimeout()); - line 57: $this->assertEquals($escape.php_binary().$escape." {$escape}{$artisanBinary}{$escape} {$escape}queue:work{$escape} {$escape}connection{$escape} {$escape}--once{$escape} {$escape}--name=default{$escape} {$escape}--queue=queue{$escape} {$escape}--backoff=1{$escape} {$escape}--memory=2{$escape} {$escape}--sleep=3{$escape} {$escape}--tries=1{$escape}", $process->getCommandLine()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 60: public function testMakeProcessCorrectlyFormatsCommandLineWithAnEnvironmentSpecified() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 60: public function testMakeProcessCorrectlyFormatsCommandLineWithAnEnvironmentSpecified() - line 67: $process = $listener->makeProcess('connection', 'queue', $options); - line 73: $this->assertEquals(__DIR__, $process->getWorkingDirectory()); - line 74: $this->assertEquals(3, $process->getTimeout()); - line 75: $this->assertEquals($escape.php_binary().$escape." {$escape}{$artisanBinary}{$escape} {$escape}queue:work{$escape} {$escape}connection{$escape} {$escape}--once{$escape} {$escape}--name=default{$escape} {$escape}--queue=queue{$escape} {$escape}--backoff=1{$escape} {$escape}--memory=2{$escape} {$escape}--sleep=3{$escape} {$escape}--tries=1{$escape} {$escape}--env=test{$escape}", $process->getCommandLine()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 78: public function testMakeProcessCorrectlyFormatsCommandLineWhenTheConnectionIsNotSpecified() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 78: public function testMakeProcessCorrectlyFormatsCommandLineWhenTheConnectionIsNotSpecified() - line 85: $process = $listener->makeProcess(null, 'queue', $options); - line 91: $this->assertEquals(__DIR__, $process->getWorkingDirectory()); - line 92: $this->assertEquals(3, $process->getTimeout()); - line 93: $this->assertEquals($escape.php_binary().$escape." {$escape}{$artisanBinary}{$escape} {$escape}queue:work{$escape} {$escape}--once{$escape} {$escape}--name=default{$escape} {$escape}--queue=queue{$escape} {$escape}--backoff=1{$escape} {$escape}--memory=2{$escape} {$escape}--sleep=3{$escape} {$escape}--tries=1{$escape} {$escape}--env=test{$escape}", $process->getCommandLine()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Queue/QueueManagerTest.php - Test @ line 18: public function testDefaultConnectionCanBeResolved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 18: public function testDefaultConnectionCanBeResolved() - line 25: 'encrypter' => $encrypter = m::mock(Encrypter::class), - line 31: $queue->shouldReceive('setConnectionName')->once()->with('sync')->andReturnSelf(); - line 33: $manager->addConnector('sync', function () use ($connector) { - line 38: $this->assertSame($queue, $manager->connection('sync')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 25: 'encrypter' => $encrypter = m::mock(Encrypter::class), - line 29: $connector = m::mock(stdClass::class); - line 30: $queue = m::mock(stdClass::class); - Test @ line 41: public function testOtherConnectionCanBeResolved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 41: public function testOtherConnectionCanBeResolved() - line 48: 'encrypter' => $encrypter = m::mock(Encrypter::class), - line 54: $queue->shouldReceive('setConnectionName')->once()->with('foo')->andReturnSelf(); - line 56: $manager->addConnector('bar', function () use ($connector) { - line 61: $this->assertSame($queue, $manager->connection('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 48: 'encrypter' => $encrypter = m::mock(Encrypter::class), - line 52: $connector = m::mock(stdClass::class); - line 53: $queue = m::mock(stdClass::class); - Test @ line 64: public function testNullConnectionCanBeResolved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 64: public function testNullConnectionCanBeResolved() - line 70: 'encrypter' => $encrypter = m::mock(Encrypter::class), - line 76: $queue->shouldReceive('setConnectionName')->once()->with('null')->andReturnSelf(); - line 78: $manager->addConnector('null', function () use ($connector) { - line 83: $this->assertSame($queue, $manager->connection('null')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 70: 'encrypter' => $encrypter = m::mock(Encrypter::class), - line 74: $connector = m::mock(stdClass::class); - line 75: $queue = m::mock(stdClass::class); ❌ tests/Queue/QueuePauseResumeTest.php - Test @ line 50: public function testPauseQueueWithConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 50: public function testPauseQueueWithConnection() - line 52: $this->manager->pause('redis', 'default'); - line 54: $this->assertTrue($this->manager->isPaused('redis', 'default')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 57: public function testPauseQueueWithTTL() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 57: public function testPauseQueueWithTTL() - line 60: $this->manager->pauseFor('redis', 'default', 30); - line 62: $this->assertTrue($this->manager->isPaused('redis', 'default')); - line 64: Carbon::setTestNow(Carbon::now()->addMinute()); - line 65: $this->assertFalse($this->manager->isPaused('redis', 'default')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 68: public function testPauseQueueIndefinitely() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 68: public function testPauseQueueIndefinitely() - line 71: $this->manager->pause('redis', 'default'); - line 73: $this->assertTrue($this->manager->isPaused('redis', 'default')); - line 75: Carbon::setTestNow(Carbon::now()->addYear()); - line 76: $this->assertTrue($this->manager->isPaused('redis', 'default')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 79: public function testResumeQueue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 79: public function testResumeQueue() - line 81: $this->manager->pause('redis', 'default'); - line 82: $this->assertTrue($this->manager->isPaused('redis', 'default')); - line 84: $this->manager->resume('redis', 'default'); - line 85: $this->assertFalse($this->manager->isPaused('redis', 'default')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 88: public function testPausingQueueOnOneConnectionDoesNotAffectAnother() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 88: public function testPausingQueueOnOneConnectionDoesNotAffectAnother() - line 90: $this->manager->pause('redis', 'default'); - line 92: $this->assertTrue($this->manager->isPaused('redis', 'default')); - line 93: $this->assertFalse($this->manager->isPaused('database', 'default')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 96: public function testPausingDifferentQueuesOnSameConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 96: public function testPausingDifferentQueuesOnSameConnection() - line 98: $this->manager->pause('redis', 'emails'); - line 99: $this->manager->pause('redis', 'notifications'); - line 101: $this->assertTrue($this->manager->isPaused('redis', 'emails')); - line 102: $this->assertTrue($this->manager->isPaused('redis', 'notifications')); - line 103: $this->assertFalse($this->manager->isPaused('redis', 'default')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 106: public function testResumingOnlyAffectsSpecificQueue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 106: public function testResumingOnlyAffectsSpecificQueue() - line 108: $this->manager->pause('redis', 'emails'); - line 109: $this->manager->pause('redis', 'notifications'); - line 111: $this->manager->resume('redis', 'emails'); - line 113: $this->assertFalse($this->manager->isPaused('redis', 'emails')); - line 114: $this->assertTrue($this->manager->isPaused('redis', 'notifications')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 117: public function testPauseDispatchesQueuePausedEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 117: public function testPauseDispatchesQueuePausedEvent() - line 121: $dispatcher = $this->manager->getApplication()['events']; - line 123: $dispatcher->listen(QueuePaused::class, function ($event) use (&$dispatchedEvent) { - line 127: $this->manager->pause('redis', 'default'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 117: public function testPauseDispatchesQueuePausedEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 135: public function testPauseForDispatchesQueuePausedEventWithTTL() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 135: public function testPauseForDispatchesQueuePausedEventWithTTL() - line 139: $dispatcher = $this->manager->getApplication()['events']; - line 141: $dispatcher->listen(QueuePaused::class, function ($event) use (&$dispatchedEvent) { - line 145: $this->manager->pauseFor('redis', 'emails', 60); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 135: public function testPauseForDispatchesQueuePausedEventWithTTL() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 153: public function testResumeDispatchesQueueResumedEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 153: public function testResumeDispatchesQueueResumedEvent() - line 157: $dispatcher = $this->manager->getApplication()['events']; - line 159: $dispatcher->listen(QueueResumed::class, function ($event) use (&$dispatchedEvent) { - line 163: $this->manager->resume('database', 'notifications'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 153: public function testResumeDispatchesQueueResumedEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 170: public function testParsingQueueString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 170: public function testParsingQueueString() - line 182: return $this->parseQueue($queue); - line 186: $this->assertSame(['redis', 'default'], $parser->parse('')); - line 187: $this->assertSame(['redis', 'emails'], $parser->parse('emails')); - line 188: $this->assertSame(['database', 'notifications'], $parser->parse('database:notifications')); - line 189: $this->assertSame(['redis', 'foo:bar'], $parser->parse('redis:foo:bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Queue/QueueRedisJobTest.php - Test @ line 19: public function testFireProperlyCallsTheJobHandler() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 19: public function testFireProperlyCallsTheJobHandler() - line 21: $job = $this->getJob(); - line 22: $job->getContainer()->shouldReceive('make')->once()->with('foo')->andReturn($handler = m::mock(stdClass::class)); - line 25: $job->fire(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 22: $job->getContainer()->shouldReceive('make')->once()->with('foo')->andReturn($handler = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 19: public function testFireProperlyCallsTheJobHandler() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 28: public function testDeleteRemovesTheJobFromRedis() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 28: public function testDeleteRemovesTheJobFromRedis() - line 30: $job = $this->getJob(); - line 31: $job->getRedisQueue()->shouldReceive('deleteReserved')->once() - line 34: $job->delete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 28: public function testDeleteRemovesTheJobFromRedis() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 37: public function testReleaseProperlyReleasesJobOntoRedis() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 37: public function testReleaseProperlyReleasesJobOntoRedis() - line 39: $job = $this->getJob(); - line 40: $job->getRedisQueue()->shouldReceive('deleteAndRelease')->once() - line 43: $job->release(1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 37: public function testReleaseProperlyReleasesJobOntoRedis() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Queue/QueueRedisQueueTest.php - Test @ line 22: public function testPushProperlyPushesJobOntoRedis() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 22: public function testPushProperlyPushesJobOntoRedis() - line 24: $uuid = Str::uuid(); - line 33: $queue = $this->getMockBuilder(RedisQueue::class)->onlyMethods(['getRandomId'])->setConstructorArgs([$redis = m::mock(Factory::class), 'default'])->getMock(); - line 34: $queue->expects($this->once())->method('getRandomId')->willReturn('foo'); - line 35: $queue->setContainer($container = m::spy(Container::class)); - line 37: $redis->shouldReceive('eval')->once()->with(LuaScripts::push(), 2, 'queues:default', 'queues:default:notify', json_encode(['uuid' => $uuid, 'displayName' => 'foo', 'job' => 'foo', 'maxTries' => null, 'maxExceptions' => null, 'failOnTimeout' => false, 'backoff' => null, 'timeout' => null, 'data' => ['data'], 'createdAt' => $time->getTimestamp(), 'id' => 'foo', 'attempts' => 0, 'delay' => null])); - line 39: $id = $queue->push('foo', ['data']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 33: $queue = $this->getMockBuilder(RedisQueue::class)->onlyMethods(['getRandomId'])->setConstructorArgs([$redis = m::mock(Factory::class), 'default'])->getMock(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 22: public function testPushProperlyPushesJobOntoRedis() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 47: public function testPushProperlyPushesJobOntoRedisWithCustomPayloadHook() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 47: public function testPushProperlyPushesJobOntoRedisWithCustomPayloadHook() - line 49: $uuid = Str::uuid(); - line 58: $queue = $this->getMockBuilder(RedisQueue::class)->onlyMethods(['getRandomId'])->setConstructorArgs([$redis = m::mock(Factory::class), 'default'])->getMock(); - line 59: $queue->expects($this->once())->method('getRandomId')->willReturn('foo'); - line 60: $queue->setContainer($container = m::spy(Container::class)); - line 62: $redis->shouldReceive('eval')->once()->with(LuaScripts::push(), 2, 'queues:default', 'queues:default:notify', json_encode(['uuid' => $uuid, 'displayName' => 'foo', 'job' => 'foo', 'maxTries' => null, 'maxExceptions' => null, 'failOnTimeout' => false, 'backoff' => null, 'timeout' => null, 'data' => ['data'], 'createdAt' => $time->getTimestamp(), 'custom' => 'taylor', 'id' => 'foo', 'attempts' => 0, 'delay' => null])); - line 68: $id = $queue->push('foo', ['data']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 58: $queue = $this->getMockBuilder(RedisQueue::class)->onlyMethods(['getRandomId'])->setConstructorArgs([$redis = m::mock(Factory::class), 'default'])->getMock(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 47: public function testPushProperlyPushesJobOntoRedisWithCustomPayloadHook() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 78: public function testPushProperlyPushesJobOntoRedisWithTwoCustomPayloadHook() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 78: public function testPushProperlyPushesJobOntoRedisWithTwoCustomPayloadHook() - line 80: $uuid = Str::uuid(); - line 89: $queue = $this->getMockBuilder(RedisQueue::class)->onlyMethods(['getRandomId'])->setConstructorArgs([$redis = m::mock(Factory::class), 'default'])->getMock(); - line 90: $queue->expects($this->once())->method('getRandomId')->willReturn('foo'); - line 91: $queue->setContainer($container = m::spy(Container::class)); - line 93: $redis->shouldReceive('eval')->once()->with(LuaScripts::push(), 2, 'queues:default', 'queues:default:notify', json_encode(['uuid' => $uuid, 'displayName' => 'foo', 'job' => 'foo', 'maxTries' => null, 'maxExceptions' => null, 'failOnTimeout' => false, 'backoff' => null, 'timeout' => null, 'data' => ['data'], 'createdAt' => $time->getTimestamp(), 'custom' => 'taylor', 'bar' => 'foo', 'id' => 'foo', 'attempts' => 0, 'delay' => null])); - line 103: $id = $queue->push('foo', ['data']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 89: $queue = $this->getMockBuilder(RedisQueue::class)->onlyMethods(['getRandomId'])->setConstructorArgs([$redis = m::mock(Factory::class), 'default'])->getMock(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 78: public function testPushProperlyPushesJobOntoRedisWithTwoCustomPayloadHook() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 113: public function testDelayedPushProperlyPushesJobOntoRedis() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 113: public function testDelayedPushProperlyPushesJobOntoRedis() - line 115: $uuid = Str::uuid(); - line 124: $queue = $this->getMockBuilder(RedisQueue::class)->onlyMethods(['availableAt', 'getRandomId'])->setConstructorArgs([$redis = m::mock(Factory::class), 'default'])->getMock(); - line 125: $queue->setContainer($container = m::spy(Container::class)); - line 126: $queue->expects($this->once())->method('getRandomId')->willReturn('foo'); - line 127: $queue->expects($this->once())->method('availableAt')->with(1)->willReturn(2); - line 133: json_encode(['uuid' => $uuid, 'displayName' => 'foo', 'job' => 'foo', 'maxTries' => null, 'maxExceptions' => null, 'failOnTimeout' => false, 'backoff' => null, 'timeout' => null, 'data' => ['data'], 'createdAt' => $time->getTimestamp(), 'id' => 'foo', 'attempts' => 0, 'delay' => 1]) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 124: $queue = $this->getMockBuilder(RedisQueue::class)->onlyMethods(['availableAt', 'getRandomId'])->setConstructorArgs([$redis = m::mock(Factory::class), 'default'])->getMock(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 113: public function testDelayedPushProperlyPushesJobOntoRedis() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 144: public function testDelayedPushWithDateTimeProperlyPushesJobOntoRedis() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 144: public function testDelayedPushWithDateTimeProperlyPushesJobOntoRedis() - line 146: $uuid = Str::uuid(); - line 154: $queue = $this->getMockBuilder(RedisQueue::class)->onlyMethods(['availableAt', 'getRandomId'])->setConstructorArgs([$redis = m::mock(Factory::class), 'default'])->getMock(); - line 155: $queue->setContainer($container = m::spy(Container::class)); - line 156: $queue->expects($this->once())->method('getRandomId')->willReturn('foo'); - line 157: $queue->expects($this->once())->method('availableAt')->with($date)->willReturn(5); - line 163: json_encode(['uuid' => $uuid, 'displayName' => 'foo', 'job' => 'foo', 'maxTries' => null, 'maxExceptions' => null, 'failOnTimeout' => false, 'backoff' => null, 'timeout' => null, 'data' => ['data'], 'createdAt' => $time->getTimestamp(), 'id' => 'foo', 'attempts' => 0, 'delay' => 5]) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 154: $queue = $this->getMockBuilder(RedisQueue::class)->onlyMethods(['availableAt', 'getRandomId'])->setConstructorArgs([$redis = m::mock(Factory::class), 'default'])->getMock(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 144: public function testDelayedPushWithDateTimeProperlyPushesJobOntoRedis() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Queue/QueueSizeTest.php - Test @ line 12: public function test_queue_size() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 12: public function test_queue_size() - line 19: $job = new TestJob1; - line 21: dispatch($job); - line 22: dispatch(new TestJob2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Queue/QueueSqsJobTest.php - Test @ line 73: public function testFireProperlyCallsTheJobHandler() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 73: public function testFireProperlyCallsTheJobHandler() - line 75: $job = $this->getJob(); - line 76: $job->getContainer()->shouldReceive('make')->once()->with('foo')->andReturn($handler = m::mock(stdClass::class)); - line 78: $job->fire(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 76: $job->getContainer()->shouldReceive('make')->once()->with('foo')->andReturn($handler = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 73: public function testFireProperlyCallsTheJobHandler() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 81: public function testDeleteRemovesTheJobFromSqs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 81: public function testDeleteRemovesTheJobFromSqs() - line 83: $this->mockedSqsClient = m::mock(SqsClient::class)->makePartial(); - line 84: $queue = m::mock(SqsQueue::class, [$this->mockedSqsClient, $this->queueName, $this->account])->makePartial(); - line 85: $queue->setContainer($this->mockedContainer); - line 86: $job = $this->getJob(); - line 87: $job->getSqs()->shouldReceive('deleteMessage')->once()->with(['QueueUrl' => $this->queueUrl, 'ReceiptHandle' => $this->mockedReceiptHandle]); - line 88: $job->delete(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 83: $this->mockedSqsClient = m::mock(SqsClient::class)->makePartial(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 81: public function testDeleteRemovesTheJobFromSqs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 91: public function testReleaseProperlyReleasesTheJobOntoSqs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 91: public function testReleaseProperlyReleasesTheJobOntoSqs() - line 93: $this->mockedSqsClient = m::mock(SqsClient::class)->makePartial(); - line 94: $queue = m::mock(SqsQueue::class, [$this->mockedSqsClient, $this->queueName, $this->account])->makePartial(); - line 95: $queue->setContainer($this->mockedContainer); - line 96: $job = $this->getJob(); - line 97: $job->getSqs()->shouldReceive('changeMessageVisibility')->once()->with(['QueueUrl' => $this->queueUrl, 'ReceiptHandle' => $this->mockedReceiptHandle, 'VisibilityTimeout' => $this->releaseDelay]); - line 98: $job->release($this->releaseDelay); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 93: $this->mockedSqsClient = m::mock(SqsClient::class)->makePartial(); ❌ tests/Queue/QueueSqsQueueTest.php - Test @ line 103: public function testPopProperlyPopsJobOffOfSqs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 103: public function testPopProperlyPopsJobOffOfSqs() - line 105: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['getQueue'])->setConstructorArgs([$this->sqs, $this->queueName, $this->account])->getMock(); - line 106: $queue->setContainer(m::mock(Container::class)); - line 107: $queue->expects($this->once())->method('getQueue')->with($this->queueName)->willReturn($this->queueUrl); - line 109: $result = $queue->pop($this->queueName); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 106: $queue->setContainer(m::mock(Container::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 103: public function testPopProperlyPopsJobOffOfSqs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 113: public function testPopProperlyHandlesEmptyMessage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 113: public function testPopProperlyHandlesEmptyMessage() - line 115: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['getQueue'])->setConstructorArgs([$this->sqs, $this->queueName, $this->account])->getMock(); - line 116: $queue->setContainer(m::mock(Container::class)); - line 117: $queue->expects($this->once())->method('getQueue')->with($this->queueName)->willReturn($this->queueUrl); - line 119: $result = $queue->pop($this->queueName); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 116: $queue->setContainer(m::mock(Container::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 113: public function testPopProperlyHandlesEmptyMessage() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 123: public function testDelayedPushWithDateTimeProperlyPushesJobOntoSqs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 123: public function testDelayedPushWithDateTimeProperlyPushesJobOntoSqs() - line 126: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['createPayload', 'secondsUntil', 'getQueue'])->setConstructorArgs([$this->sqs, $this->queueName, $this->account])->getMock(); - line 127: $queue->setContainer($container = m::spy(Container::class)); - line 128: $queue->expects($this->once())->method('createPayload')->with($this->mockedJob, $this->queueName, $this->mockedData)->willReturn($this->mockedPayload); - line 129: $queue->expects($this->once())->method('secondsUntil')->with($now->addSeconds(5))->willReturn(5); - line 130: $queue->expects($this->once())->method('getQueue')->with($this->queueName)->willReturn($this->queueUrl); - line 132: $id = $queue->later($now->addSeconds(5), $this->mockedJob, $this->mockedData, $this->queueName); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 123: public function testDelayedPushWithDateTimeProperlyPushesJobOntoSqs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 137: public function testDelayedPushProperlyPushesJobOntoSqs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 137: public function testDelayedPushProperlyPushesJobOntoSqs() - line 139: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['createPayload', 'secondsUntil', 'getQueue'])->setConstructorArgs([$this->sqs, $this->queueName, $this->account])->getMock(); - line 140: $queue->setContainer($container = m::spy(Container::class)); - line 141: $queue->expects($this->once())->method('createPayload')->with($this->mockedJob, $this->queueName, $this->mockedData)->willReturn($this->mockedPayload); - line 142: $queue->expects($this->once())->method('secondsUntil')->with($this->mockedDelay)->willReturn($this->mockedDelay); - line 143: $queue->expects($this->once())->method('getQueue')->with($this->queueName)->willReturn($this->queueUrl); - line 145: $id = $queue->later($this->mockedDelay, $this->mockedJob, $this->mockedData, $this->queueName); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 137: public function testDelayedPushProperlyPushesJobOntoSqs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 150: public function testPushProperlyPushesJobOntoSqs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 150: public function testPushProperlyPushesJobOntoSqs() - line 152: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['createPayload', 'getQueue'])->setConstructorArgs([$this->sqs, $this->queueName, $this->account])->getMock(); - line 153: $queue->setContainer($container = m::spy(Container::class)); - line 154: $queue->expects($this->once())->method('createPayload')->with($this->mockedJob, $this->queueName, $this->mockedData)->willReturn($this->mockedPayload); - line 155: $queue->expects($this->once())->method('getQueue')->with($this->queueName)->willReturn($this->queueUrl); - line 157: $id = $queue->push($this->mockedJob, $this->mockedData, $this->queueName); - line 159: $container->shouldHaveReceived('bound')->with('events')->twice(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 150: public function testPushProperlyPushesJobOntoSqs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 162: public function testSizeProperlyReadsSqsQueueSize() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 162: public function testSizeProperlyReadsSqsQueueSize() - line 164: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['getQueue'])->setConstructorArgs([$this->sqs, $this->queueName, $this->account])->getMock(); - line 165: $queue->expects($this->once())->method('getQueue')->with($this->queueName)->willReturn($this->queueUrl); - line 182: $size = $queue->size($this->queueName); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 162: public function testSizeProperlyReadsSqsQueueSize() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 187: public function testGetQueueProperlyResolvesUrlWithPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 187: public function testGetQueueProperlyResolvesUrlWithPrefix() - line 190: $this->assertEquals($this->queueUrl, $queue->getQueue(null)); - line 192: $this->assertEquals($queueUrl, $queue->getQueue('test')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 195: public function testGetQueueProperlyResolvesFifoUrlWithPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 195: public function testGetQueueProperlyResolvesFifoUrlWithPrefix() - line 200: $this->assertEquals($this->queueUrl, $queue->getQueue(null)); - line 202: $this->assertEquals($queueUrl, $queue->getQueue('test.fifo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 205: public function testGetQueueProperlyResolvesUrlWithoutPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 205: public function testGetQueueProperlyResolvesUrlWithoutPrefix() - line 208: $this->assertEquals($this->queueUrl, $queue->getQueue(null)); - line 210: $this->assertEquals($queueUrl, $queue->getQueue($queueUrl)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 213: public function testGetQueueProperlyResolvesFifoUrlWithoutPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 213: public function testGetQueueProperlyResolvesFifoUrlWithoutPrefix() - line 218: $this->assertEquals($this->queueUrl, $queue->getQueue(null)); - line 220: $this->assertEquals($fifoQueueUrl, $queue->getQueue($fifoQueueUrl)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 223: public function testGetQueueProperlyResolvesUrlWithSuffix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 223: public function testGetQueueProperlyResolvesUrlWithSuffix() - line 226: $this->assertEquals($this->queueUrl.$suffix, $queue->getQueue(null)); - line 228: $this->assertEquals($queueUrl, $queue->getQueue('test')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 231: public function testGetQueueProperlyResolvesFifoUrlWithSuffix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 231: public function testGetQueueProperlyResolvesFifoUrlWithSuffix() - line 235: $this->assertEquals("{$this->prefix}emails-staging.fifo", $queue->getQueue(null)); - line 237: $this->assertEquals($queueUrl, $queue->getQueue('test.fifo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 240: public function testGetQueueEnsuresTheQueueIsOnlySuffixedOnce() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 240: public function testGetQueueEnsuresTheQueueIsOnlySuffixedOnce() - line 243: $this->assertEquals($this->queueUrl.$suffix, $queue->getQueue(null)); - line 245: $this->assertEquals($queueUrl, $queue->getQueue('test-staging')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 248: public function testGetFifoQueueEnsuresTheQueueIsOnlySuffixedOnce() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 248: public function testGetFifoQueueEnsuresTheQueueIsOnlySuffixedOnce() - line 251: $this->assertEquals("{$this->prefix}{$this->queueName}{$suffix}.fifo", $queue->getQueue(null)); - line 253: $this->assertEquals($queueUrl, $queue->getQueue('test-staging.fifo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 256: public function testPushProperlyPushesJobObjectOntoSqs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 256: public function testPushProperlyPushesJobObjectOntoSqs() - line 260: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['createPayload', 'getQueue'])->setConstructorArgs([$this->sqs, $this->queueName, $this->account])->getMock(); - line 261: $queue->setContainer($container = m::spy(Container::class)); - line 262: $queue->expects($this->once())->method('createPayload')->with($job, $this->queueName, $this->mockedData)->willReturn($this->mockedPayload); - line 263: $queue->expects($this->once())->method('getQueue')->with($this->queueName)->willReturn($this->queueUrl); - line 265: $id = $queue->push($job, $this->mockedData, $this->queueName); - line 267: $container->shouldHaveReceived('bound')->with('events')->twice(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 256: public function testPushProperlyPushesJobObjectOntoSqs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 270: public function testPendingDispatchProperlyPushesJobObjectOntoSqs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 270: public function testPendingDispatchProperlyPushesJobObjectOntoSqs() - line 271: { - line 275: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['createPayload', 'getQueue'])->setConstructorArgs([$this->sqs, $this->queueName, $this->account])->getMock(); - line 276: $queue->setContainer($container = m::spy(Container::class)); - line 277: $queue->expects($this->once())->method('createPayload')->with($pendingDispatch->getJob(), $this->queueName, '')->willReturn($this->mockedPayload); - line 278: $queue->expects($this->once())->method('getQueue')->with(null)->willReturn($this->queueUrl); - line 282: app()->instance(DispatcherContract::class, $dispatcher); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 270: public function testPendingDispatchProperlyPushesJobObjectOntoSqs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 290: public function testPushProperlyPushesJobObjectOntoSqsFairQueue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 290: public function testPushProperlyPushesJobObjectOntoSqsFairQueue() - line 292: $job = (new FakeSqsJob())->onGroup($this->mockedMessageGroupId); - line 294: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['createPayload', 'getQueue'])->setConstructorArgs([$this->sqs, $this->queueName, $this->account])->getMock(); - line 295: $queue->setContainer($container = m::spy(Container::class)); - line 296: $queue->expects($this->once())->method('createPayload')->with($job, $this->queueName, $this->mockedData)->willReturn($this->mockedPayload); - line 297: $queue->expects($this->once())->method('getQueue')->with($this->queueName)->willReturn($this->queueUrl); - line 299: $id = $queue->push($job, $this->mockedData, $this->queueName); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 290: public function testPushProperlyPushesJobObjectOntoSqsFairQueue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 304: public function testPendingDispatchProperlyPushesJobObjectOntoSqsFairQueue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 304: public function testPendingDispatchProperlyPushesJobObjectOntoSqsFairQueue() - line 305: { - line 308: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['createPayload', 'getQueue'])->setConstructorArgs([$this->sqs, $this->queueName, $this->account])->getMock(); - line 309: $queue->setContainer($container = m::spy(Container::class)); - line 310: $queue->expects($this->once())->method('createPayload')->with($pendingDispatch->getJob(), $this->queueName, '')->willReturn($this->mockedPayload); - line 311: $queue->expects($this->once())->method('getQueue')->with(null)->willReturn($this->queueUrl); - line 315: app()->instance(DispatcherContract::class, $dispatcher); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 304: public function testPendingDispatchProperlyPushesJobObjectOntoSqsFairQueue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 323: public function testPushProperlyPushesJobStringOntoSqsFifoQueue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 323: public function testPushProperlyPushesJobStringOntoSqsFifoQueue() - line 325: Str::createUuidsUsing(fn () => $this->mockedDeduplicationId); - line 327: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['createPayload', 'getQueue'])->setConstructorArgs([$this->sqs, $this->fifoQueueName, $this->account])->getMock(); - line 328: $queue->setContainer($container = m::spy(Container::class)); - line 329: $queue->expects($this->once())->method('createPayload')->with($this->mockedJob, $this->fifoQueueName, $this->mockedData)->willReturn($this->mockedPayload); - line 330: $queue->expects($this->once())->method('getQueue')->with($this->fifoQueueName)->willReturn($this->fifoQueueUrl); - line 337: $id = $queue->push($this->mockedJob, $this->mockedData, $this->fifoQueueName); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 323: public function testPushProperlyPushesJobStringOntoSqsFifoQueue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 344: public function testPushProperlyPushesJobObjectOntoSqsFifoQueue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 344: public function testPushProperlyPushesJobObjectOntoSqsFifoQueue() - line 346: Str::createUuidsUsing(fn () => $this->mockedDeduplicationId); - line 348: $job = (new FakeSqsJob())->onGroup($this->mockedMessageGroupId); - line 350: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['createPayload', 'getQueue'])->setConstructorArgs([$this->sqs, $this->fifoQueueName, $this->account])->getMock(); - line 351: $queue->setContainer($container = m::spy(Container::class)); - line 352: $queue->expects($this->once())->method('createPayload')->with($job, $this->fifoQueueName, $this->mockedData)->willReturn($this->mockedPayload); - line 353: $queue->expects($this->once())->method('getQueue')->with($this->fifoQueueName)->willReturn($this->fifoQueueUrl); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 344: public function testPushProperlyPushesJobObjectOntoSqsFifoQueue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 367: public function testPushProperlyPushesJobObjectOntoSqsFifoQueueWithMessageGroupMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 367: public function testPushProperlyPushesJobObjectOntoSqsFifoQueueWithMessageGroupMethod() - line 369: Str::createUuidsUsing(fn () => $this->mockedDeduplicationId); - line 371: $job = $this->getMockBuilder(FakeSqsJobWithMessageGroup::class)->onlyMethods(['messageGroup'])->getMock(); - line 372: $job->expects($this->once())->method('messageGroup')->willReturn($this->mockedMessageGroupId); - line 374: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['createPayload', 'getQueue'])->setConstructorArgs([$this->sqs, $this->fifoQueueName, $this->account])->getMock(); - line 375: $queue->setContainer($container = m::spy(Container::class)); - line 376: $queue->expects($this->once())->method('createPayload')->with($job, $this->fifoQueueName, $this->mockedData)->willReturn($this->mockedPayload); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 367: public function testPushProperlyPushesJobObjectOntoSqsFifoQueueWithMessageGroupMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 391: public function testPushProperlyPushesJobObjectOntoSqsFifoQueueWithMessageGroupPropertyOverridingMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 391: public function testPushProperlyPushesJobObjectOntoSqsFifoQueueWithMessageGroupPropertyOverridingMethod() - line 393: Str::createUuidsUsing(fn () => $this->mockedDeduplicationId); - line 395: $job = $this->getMockBuilder(FakeSqsJobWithMessageGroup::class)->onlyMethods(['messageGroup'])->getMock(); - line 398: $job->expects($this->never())->method('messageGroup')->willReturn('this-should-not-be-used'); - line 399: $job->onGroup($this->mockedMessageGroupId); - line 401: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['createPayload', 'getQueue'])->setConstructorArgs([$this->sqs, $this->fifoQueueName, $this->account])->getMock(); - line 402: $queue->setContainer($container = m::spy(Container::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 391: public function testPushProperlyPushesJobObjectOntoSqsFifoQueueWithMessageGroupPropertyOverridingMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 418: public function testPushProperlyPushesJobObjectOntoSqsFifoQueueWithDeduplicationId() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 418: public function testPushProperlyPushesJobObjectOntoSqsFifoQueueWithDeduplicationId() - line 420: $job = $this->getMockBuilder(FakeSqsJobWithDeduplication::class)->onlyMethods(['deduplicationId'])->getMock(); - line 421: $job->expects($this->once())->method('deduplicationId')->with($this->mockedPayload, $this->fifoQueueName)->willReturn($this->mockedDeduplicationId); - line 422: $job->onGroup($this->mockedMessageGroupId); - line 424: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['createPayload', 'getQueue'])->setConstructorArgs([$this->sqs, $this->fifoQueueName, $this->account])->getMock(); - line 425: $queue->setContainer($container = m::spy(Container::class)); - line 426: $queue->expects($this->once())->method('createPayload')->with($job, $this->fifoQueueName, $this->mockedData)->willReturn($this->mockedPayload); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 418: public function testPushProperlyPushesJobObjectOntoSqsFifoQueueWithDeduplicationId() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 439: public function testPushProperlyPushesJobObjectOntoSqsFifoQueueWithDeduplicator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 439: public function testPushProperlyPushesJobObjectOntoSqsFifoQueueWithDeduplicator() - line 441: $job = $this->getMockBuilder(FakeSqsJobWithDeduplication::class)->onlyMethods(['deduplicationId'])->getMock(); - line 444: $job->expects($this->never())->method('deduplicationId')->willReturn('this-should-not-be-used'); - line 445: $job->onGroup($this->mockedMessageGroupId)->withDeduplicator(function ($payload, $queue) { - line 452: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['createPayload', 'getQueue'])->setConstructorArgs([$this->sqs, $this->fifoQueueName, $this->account])->getMock(); - line 453: $queue->setContainer($container = m::spy(Container::class)); - line 454: $queue->expects($this->once())->method('createPayload')->with($job, $this->fifoQueueName, $this->mockedData)->willReturn($this->mockedPayload); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 439: public function testPushProperlyPushesJobObjectOntoSqsFifoQueueWithDeduplicator() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 467: public function testPendingDispatchProperlyPushesJobObjectOntoSqsFifoQueue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 467: public function testPendingDispatchProperlyPushesJobObjectOntoSqsFifoQueue() - line 469: Str::createUuidsUsing(fn () => $this->mockedDeduplicationId); - line 473: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['createPayload', 'getQueue'])->setConstructorArgs([$this->sqs, $this->fifoQueueName, $this->account])->getMock(); - line 474: $queue->setContainer($container = m::spy(Container::class)); - line 475: $queue->expects($this->once())->method('createPayload')->with($pendingDispatch->getJob(), $this->fifoQueueName, '')->willReturn($this->mockedPayload); - line 476: $queue->expects($this->once())->method('getQueue')->with(null)->willReturn($this->fifoQueueUrl); - line 485: app()->instance(DispatcherContract::class, $dispatcher); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 467: public function testPendingDispatchProperlyPushesJobObjectOntoSqsFifoQueue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 495: public function testPendingDispatchProperlyPushesJobObjectOntoSqsFifoQueueWithDeduplicationId() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 495: public function testPendingDispatchProperlyPushesJobObjectOntoSqsFifoQueueWithDeduplicationId() - line 497: FakeSqsJobWithDeduplication::createDeduplicationIdsUsing(fn ($payload, $queue) => $this->mockedDeduplicationId); - line 501: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['createPayload', 'getQueue'])->setConstructorArgs([$this->sqs, $this->fifoQueueName, $this->account])->getMock(); - line 502: $queue->setContainer($container = m::spy(Container::class)); - line 503: $queue->expects($this->once())->method('createPayload')->with($pendingDispatch->getJob(), $this->fifoQueueName, '')->willReturn($this->mockedPayload); - line 504: $queue->expects($this->once())->method('getQueue')->with(null)->willReturn($this->fifoQueueUrl); - line 513: app()->instance(DispatcherContract::class, $dispatcher); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 495: public function testPendingDispatchProperlyPushesJobObjectOntoSqsFifoQueueWithDeduplicationId() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 523: public function testPendingDispatchProperlyPushesJobObjectOntoSqsFifoQueueWithDeduplicator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 523: public function testPendingDispatchProperlyPushesJobObjectOntoSqsFifoQueueWithDeduplicator() - line 526: $this->fail('The deduplicationId method should not be called when a deduplicator callback is provided.'); - line 529: }); - line 538: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['createPayload', 'getQueue'])->setConstructorArgs([$this->sqs, $this->fifoQueueName, $this->account])->getMock(); - line 539: $queue->setContainer($container = m::spy(Container::class)); - line 540: $queue->expects($this->once())->method('createPayload')->with($pendingDispatch->getJob(), $this->fifoQueueName, '')->willReturn($this->mockedPayload); - line 541: $queue->expects($this->once())->method('getQueue')->with(null)->willReturn($this->fifoQueueUrl); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 523: public function testPendingDispatchProperlyPushesJobObjectOntoSqsFifoQueueWithDeduplicator() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 560: public function testJobObjectCanBeSerializedOntoSqsFifoQueueWithDeduplicator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 560: public function testJobObjectCanBeSerializedOntoSqsFifoQueueWithDeduplicator() - line 563: $deduplicationId = $this->mockedDeduplicationId; - line 569: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['getQueue'])->setConstructorArgs([$this->sqs, $this->fifoQueueName, $this->account])->getMock(); - line 570: $queue->setContainer($container = m::spy(Container::class)); - line 571: $queue->expects($this->once())->method('getQueue')->with(null)->willReturn($this->fifoQueueUrl); - line 572: $this->sqs->shouldReceive('sendMessage')->once()->withArgs(function ($args) { - line 588: app()->instance(DispatcherContract::class, $dispatcher); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 560: public function testJobObjectCanBeSerializedOntoSqsFifoQueueWithDeduplicator() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 596: public function testDelayedPushProperlyPushesJobStringOntoSqsFifoQueueWithoutDelay() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 596: public function testDelayedPushProperlyPushesJobStringOntoSqsFifoQueueWithoutDelay() - line 598: Str::createUuidsUsing(fn () => $this->mockedDeduplicationId); - line 600: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['createPayload', 'secondsUntil', 'getQueue'])->setConstructorArgs([$this->sqs, $this->fifoQueueName, $this->account])->getMock(); - line 601: $queue->setContainer($container = m::spy(Container::class)); - line 602: $queue->expects($this->once())->method('createPayload')->with($this->mockedJob, $this->fifoQueueName, $this->mockedData)->willReturn($this->mockedPayload); - line 603: $queue->expects($this->never())->method('secondsUntil')->with($this->mockedDelay)->willReturn($this->mockedDelay); - line 604: $queue->expects($this->once())->method('getQueue')->with($this->fifoQueueName)->willReturn($this->fifoQueueUrl); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 596: public function testDelayedPushProperlyPushesJobStringOntoSqsFifoQueueWithoutDelay() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 618: public function testDelayedPushProperlyPushesJobObjectOntoSqsFifoQueueWithoutDelay() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 618: public function testDelayedPushProperlyPushesJobObjectOntoSqsFifoQueueWithoutDelay() - line 620: Str::createUuidsUsing(fn () => $this->mockedDeduplicationId); - line 622: $job = (new FakeSqsJob())->onGroup($this->mockedMessageGroupId); - line 624: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['createPayload', 'secondsUntil', 'getQueue'])->setConstructorArgs([$this->sqs, $this->fifoQueueName, $this->account])->getMock(); - line 625: $queue->setContainer($container = m::spy(Container::class)); - line 626: $queue->expects($this->once())->method('createPayload')->with($job, $this->fifoQueueName, $this->mockedData)->willReturn($this->mockedPayload); - line 627: $queue->expects($this->never())->method('secondsUntil')->with($this->mockedDelay)->willReturn($this->mockedDelay); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 618: public function testDelayedPushProperlyPushesJobObjectOntoSqsFifoQueueWithoutDelay() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 642: public function testDelayedPendingDispatchProperlyPushesJobObjectOntoSqsFifoQueueWithoutDelay() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 642: public function testDelayedPendingDispatchProperlyPushesJobObjectOntoSqsFifoQueueWithoutDelay() - line 644: Str::createUuidsUsing(fn () => $this->mockedDeduplicationId); - line 648: $queue = $this->getMockBuilder(SqsQueue::class)->onlyMethods(['createPayload', 'getQueue'])->setConstructorArgs([$this->sqs, $this->fifoQueueName, $this->account])->getMock(); - line 649: $queue->setContainer($container = m::spy(Container::class)); - line 650: $queue->expects($this->once())->method('createPayload')->with($pendingDispatch->getJob(), $this->fifoQueueName, '')->willReturn($this->mockedPayload); - line 651: $queue->expects($this->once())->method('getQueue')->with(null)->willReturn($this->fifoQueueUrl); - line 660: app()->instance(DispatcherContract::class, $dispatcher); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 642: public function testDelayedPendingDispatchProperlyPushesJobObjectOntoSqsFifoQueueWithoutDelay() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Queue/QueueSyncQueueTest.php - Test @ line 29: public function testPushShouldFireJobInstantly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 29: public function testPushShouldFireJobInstantly() - line 35: $sync->setContainer($container); - line 37: $sync->push(SyncQueueTestHandler::class, ['foo' => 'bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 31: unset($_SERVER['__sync.test']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 29: public function testPushShouldFireJobInstantly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 42: public function testFailedJobGetsHandledWhenAnExceptionIsThrown() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 42: public function testFailedJobGetsHandledWhenAnExceptionIsThrown() - line 48: Container::setInstance($container); - line 51: $container->instance('events', $events); - line 52: $container->instance(Dispatcher::class, $events); - line 53: $sync->setContainer($container); - line 56: $sync->push(FailingSyncQueueTestHandler::class, ['foo' => 'bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 44: unset($_SERVER['__sync.failed']); - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 49: $events = m::mock(Dispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 42: public function testFailedJobGetsHandledWhenAnExceptionIsThrown() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 64: public function testFailedJobHasAccessToJobInstance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 64: public function testFailedJobHasAccessToJobInstance() - line 70: $container->bind(\Illuminate\Contracts\Events\Dispatcher::class, \Illuminate\Events\Dispatcher::class); - line 71: $container->bind(\Illuminate\Contracts\Bus\Dispatcher::class, \Illuminate\Bus\Dispatcher::class); - line 72: $container->bind(\Illuminate\Contracts\Container\Container::class, \Illuminate\Container\Container::class); - line 73: $sync->setContainer($container); - line 80: $sync->push(new FailingSyncQueueJob()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 66: unset($_SERVER['__sync.failed']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 64: public function testFailedJobHasAccessToJobInstance() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 86: public function testCreatesPayloadObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 86: public function testCreatesPayloadObject() - line 90: $container->bind(\Illuminate\Contracts\Events\Dispatcher::class, \Illuminate\Events\Dispatcher::class); - line 91: $container->bind(\Illuminate\Contracts\Bus\Dispatcher::class, \Illuminate\Bus\Dispatcher::class); - line 92: $container->bind(\Illuminate\Contracts\Container\Container::class, \Illuminate\Container\Container::class); - line 93: $sync->setContainer($container); - line 100: $sync->push(new SyncQueueJob()); - line 102: $this->assertSame('extraValue', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 106: public function testItAddsATransactionCallbackForAfterCommitJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 106: public function testItAddsATransactionCallbackForAfterCommitJobs() - line 110: $container->bind(\Illuminate\Contracts\Container\Container::class, \Illuminate\Container\Container::class); - line 113: $transactionManager->shouldNotReceive('addCallbackForRollback'); - line 114: $container->instance('db.transactions', $transactionManager); - line 116: $sync->setContainer($container); - line 117: $sync->push(new SyncQueueAfterCommitJob()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 111: $transactionManager = m::mock(DatabaseTransactionsManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 106: public function testItAddsATransactionCallbackForAfterCommitJobs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 120: public function testItAddsATransactionCallbackForInterfaceBasedAfterCommitJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 120: public function testItAddsATransactionCallbackForInterfaceBasedAfterCommitJobs() - line 124: $container->bind(\Illuminate\Contracts\Container\Container::class, \Illuminate\Container\Container::class); - line 127: $transactionManager->shouldNotReceive('addCallbackForRollback'); - line 128: $container->instance('db.transactions', $transactionManager); - line 130: $sync->setContainer($container); - line 131: $sync->push(new SyncQueueAfterCommitInterfaceJob()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 125: $transactionManager = m::mock(DatabaseTransactionsManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 120: public function testItAddsATransactionCallbackForInterfaceBasedAfterCommitJobs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 134: public function testItAddsATransactionCallbackForAfterCommitUniqueJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 134: public function testItAddsATransactionCallbackForAfterCommitUniqueJobs() - line 138: $container->bind(\Illuminate\Contracts\Container\Container::class, \Illuminate\Container\Container::class); - line 142: $container->instance('db.transactions', $transactionManager); - line 144: $sync->setContainer($container); - line 145: $sync->push(new SyncQueueAfterCommitUniqueJob()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 139: $transactionManager = m::mock(DatabaseTransactionsManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 134: public function testItAddsATransactionCallbackForAfterCommitUniqueJobs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 148: public function testItAddsATransactionCallbackForInterfaceBasedAfterCommitUniqueJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 148: public function testItAddsATransactionCallbackForInterfaceBasedAfterCommitUniqueJobs() - line 152: $container->bind(\Illuminate\Contracts\Container\Container::class, \Illuminate\Container\Container::class); - line 156: $container->instance('db.transactions', $transactionManager); - line 158: $sync->setContainer($container); - line 159: $sync->push(new SyncQueueAfterCommitInterfaceUniqueJob()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 153: $transactionManager = m::mock(DatabaseTransactionsManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 148: public function testItAddsATransactionCallbackForInterfaceBasedAfterCommitUniqueJobs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Queue/QueueWorkerTest.php - Test @ line 51: public function testJobCanBeFired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 51: public function testJobCanBeFired() - line 53: $worker = $this->getWorker('default', ['queue' => [$job = new WorkerFakeJob]]); - line 54: $worker->runNextJob('default', 'queue', new WorkerOptions); - line 56: $this->events->shouldHaveReceived('dispatch')->with(m::type(JobPopping::class))->once(); - line 57: $this->events->shouldHaveReceived('dispatch')->with(m::type(JobPopped::class))->once(); - line 58: $this->events->shouldHaveReceived('dispatch')->with(m::type(JobProcessing::class))->once(); - line 59: $this->events->shouldHaveReceived('dispatch')->with(m::type(JobProcessed::class))->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 51: public function testJobCanBeFired() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 62: public function testWorkerCanWorkUntilQueueIsEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 62: public function testWorkerCanWorkUntilQueueIsEmpty() - line 67: $worker = $this->getWorker('default', ['queue' => [ - line 72: $status = $worker->daemon('default', 'queue', $workerOptions); - line 78: $this->events->shouldHaveReceived('dispatch')->with(m::type(JobProcessing::class))->twice(); - line 80: $this->events->shouldHaveReceived('dispatch')->with(m::type(JobProcessed::class))->twice(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 62: public function testWorkerCanWorkUntilQueueIsEmpty() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 83: public function testWorkerStopsWhenMemoryExceeded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 83: public function testWorkerStopsWhenMemoryExceeded() - line 87: $worker = $this->getWorker('default', ['queue' => [ - line 93: $status = $worker->daemon('default', 'queue', $workerOptions); - line 99: $this->events->shouldHaveReceived('dispatch')->with(m::type(JobProcessing::class))->once(); - line 101: $this->events->shouldHaveReceived('dispatch')->with(m::type(JobProcessed::class))->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 83: public function testWorkerStopsWhenMemoryExceeded() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 104: public function testWorkerMemoryExceededWhenMemoryIsZero() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 104: public function testWorkerMemoryExceededWhenMemoryIsZero() - line 106: $worker = new Worker(...$this->workerDependencies()); - line 107: $this->assertFalse($worker->memoryExceeded(0)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 110: public function testWorkerMemoryExceededWhenMemoryGreaterThanZero() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 110: public function testWorkerMemoryExceededWhenMemoryGreaterThanZero() - line 112: $worker = new Worker(...$this->workerDependencies()); - line 113: $this->assertTrue($worker->memoryExceeded(1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 116: public function testWorkerMemoryExceededWhenMemoryIsNegative() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 116: public function testWorkerMemoryExceededWhenMemoryIsNegative() - line 118: $worker = new Worker(...$this->workerDependencies()); - line 119: $this->assertFalse($worker->memoryExceeded(-1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 122: public function testJobCanBeFiredBasedOnPriority() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 122: public function testJobCanBeFiredBasedOnPriority() - line 124: $worker = $this->getWorker('default', [ - line 128: $worker->runNextJob('default', 'high,low', new WorkerOptions); - line 133: $worker->runNextJob('default', 'high,low', new WorkerOptions); - line 137: $worker->runNextJob('default', 'high,low', new WorkerOptions); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 122: public function testJobCanBeFiredBasedOnPriority() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 141: public function testExceptionIsReportedIfConnectionThrowsExceptionOnJobPop() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 141: public function testExceptionIsReportedIfConnectionThrowsExceptionOnJobPop() - line 152: $worker->runNextJob('default', 'queue', $this->workerOptions()); - line 154: $this->exceptionHandler->shouldHaveReceived('report')->with($e); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 141: public function testExceptionIsReportedIfConnectionThrowsExceptionOnJobPop() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 157: public function testWorkerSleepsWhenQueueIsEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 157: public function testWorkerSleepsWhenQueueIsEmpty() - line 159: $worker = $this->getWorker('default', ['queue' => []]); - line 160: $worker->runNextJob('default', 'queue', $this->workerOptions(['sleep' => 5])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 164: public function testJobIsReleasedOnException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 164: public function testJobIsReleasedOnException() - line 172: $worker = $this->getWorker('default', ['queue' => [$job]]); - line 173: $worker->runNextJob('default', 'queue', $this->workerOptions(['backoff' => 10])); - line 177: $this->exceptionHandler->shouldHaveReceived('report')->with($e); - line 178: $this->events->shouldHaveReceived('dispatch')->with(m::type(JobExceptionOccurred::class))->once(); - line 179: $this->events->shouldNotHaveReceived('dispatch', [m::type(JobProcessed::class)]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 164: public function testJobIsReleasedOnException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 182: public function testJobIsNotReleasedIfItHasExceededMaxAttempts() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 182: public function testJobIsNotReleasedIfItHasExceededMaxAttempts() - line 194: $worker = $this->getWorker('default', ['queue' => [$job]]); - line 195: $worker->runNextJob('default', 'queue', $this->workerOptions(['maxTries' => 1])); - line 200: $this->exceptionHandler->shouldHaveReceived('report')->with($e); - line 201: $this->events->shouldHaveReceived('dispatch')->with(m::type(JobExceptionOccurred::class))->once(); - line 202: $this->events->shouldNotHaveReceived('dispatch', [m::type(JobProcessed::class)]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 182: public function testJobIsNotReleasedIfItHasExceededMaxAttempts() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 205: public function testJobIsNotReleasedIfItHasExpired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 205: public function testJobIsNotReleasedIfItHasExpired() - line 216: $job->retryUntil = now()->addSeconds(1)->getTimestamp(); - line 221: Carbon::now()->addSeconds(1) - line 224: $worker = $this->getWorker('default', ['queue' => [$job]]); - line 225: $worker->runNextJob('default', 'queue', $this->workerOptions()); - line 230: $this->exceptionHandler->shouldHaveReceived('report')->with($e); - line 231: $this->events->shouldHaveReceived('dispatch')->with(m::type(JobExceptionOccurred::class))->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 205: public function testJobIsNotReleasedIfItHasExpired() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 235: public function testJobIsFailedIfItHasAlreadyExceededMaxAttempts() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 235: public function testJobIsFailedIfItHasAlreadyExceededMaxAttempts() - line 243: $worker = $this->getWorker('default', ['queue' => [$job]]); - line 244: $worker->runNextJob('default', 'queue', $this->workerOptions(['maxTries' => 1])); - line 249: $this->exceptionHandler->shouldHaveReceived('report')->with(m::type(MaxAttemptsExceededException::class)); - line 250: $this->events->shouldHaveReceived('dispatch')->with(m::type(JobExceptionOccurred::class))->once(); - line 251: $this->events->shouldNotHaveReceived('dispatch', [m::type(JobProcessed::class)]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 235: public function testJobIsFailedIfItHasAlreadyExceededMaxAttempts() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 254: public function testJobIsFailedIfItHasAlreadyExpired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 254: public function testJobIsFailedIfItHasAlreadyExpired() - line 260: $job->retryUntil = Carbon::now()->addSeconds(2)->getTimestamp(); - line 265: Carbon::now()->addSeconds(3) - line 268: $worker = $this->getWorker('default', ['queue' => [$job]]); - line 269: $worker->runNextJob('default', 'queue', $this->workerOptions()); - line 274: $this->exceptionHandler->shouldHaveReceived('report')->with(m::type(MaxAttemptsExceededException::class)); - line 275: $this->events->shouldHaveReceived('dispatch')->with(m::type(JobExceptionOccurred::class))->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 254: public function testJobIsFailedIfItHasAlreadyExpired() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 279: public function testJobBasedMaxRetries() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 279: public function testJobBasedMaxRetries() - line 288: $worker = $this->getWorker('default', ['queue' => [$job]]); - line 289: $worker->runNextJob('default', 'queue', $this->workerOptions(['maxTries' => 1])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 279: public function testJobBasedMaxRetries() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 295: public function testJobBasedFailedDelay() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 295: public function testJobBasedFailedDelay() - line 304: $worker = $this->getWorker('default', ['queue' => [$job]]); - line 305: $worker->runNextJob('default', 'queue', $this->workerOptions(['backoff' => 3, 'maxTries' => 0])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 295: public function testJobBasedFailedDelay() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 310: public function testJobRunsIfAppIsNotInMaintenanceMode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 310: public function testJobRunsIfAppIsNotInMaintenanceMode() - line 330: $worker = $this->getWorker('default', ['queue' => [$firstJob, $secondJob]], $maintenanceModeChecker); - line 333: $worker->daemon('default', 'queue', $this->workerOptions()); - line 335: $this->fail('Expected LoopBreakerException to be thrown'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 310: public function testJobRunsIfAppIsNotInMaintenanceMode() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 343: public function testJobDoesNotFireIfDeleted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 343: public function testJobDoesNotFireIfDeleted() - line 349: $worker = $this->getWorker('default', ['queue' => [$job]]); - line 350: $job->delete(); - line 351: $worker->runNextJob('default', 'queue', $this->workerOptions()); - line 353: $this->events->shouldHaveReceived('dispatch')->with(m::type(JobProcessed::class))->once(); - line 354: $this->assertFalse($job->hasFailed()); - line 355: $this->assertFalse($job->isReleased()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 359: public function testWorkerPicksJobUsingCustomCallbacks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 359: public function testWorkerPicksJobUsingCustomCallbacks() - line 361: $worker = $this->getWorker('default', [ - line 365: $worker->runNextJob('default', 'default', new WorkerOptions); - line 366: $worker->runNextJob('default', 'default', new WorkerOptions); - line 371: $worker2 = $this->getWorker('default', [ - line 375: $worker2->setName('myworker'); - line 381: $worker2->runNextJob('default', 'default', new WorkerOptions); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 359: public function testWorkerPicksJobUsingCustomCallbacks() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 390: public function testWorkerStartingIsDispatched() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 390: public function testWorkerStartingIsDispatched() - line 395: $worker = $this->getWorker('default', ['queue' => [ - line 400: $worker->daemon('default', 'queue', $workerOptions); - line 405: $this->events->shouldHaveReceived('dispatch')->with(m::type(WorkerStarting::class))->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 390: public function testWorkerStartingIsDispatched() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Redis/ConcurrentLimiterTest.php - Test @ line 30: public function testItLocksTasksWhenNoSlotAvailable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 30: public function testItLocksTasksWhenNoSlotAvailable() - line 35: (new ConcurrencyLimiterMockThatDoesntRelease($this->redis(), 'key', 2, 5))->block(2, function () use (&$store, $i) { - line 41: (new ConcurrencyLimiterMockThatDoesntRelease($this->redis(), 'key', 2, 5))->block(0, function () use (&$store) { - line 48: (new ConcurrencyLimiterMockThatDoesntRelease($this->redis(), 'other_key', 2, 5))->block(2, function () use (&$store) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 30: public function testItLocksTasksWhenNoSlotAvailable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 55: public function testItReleasesLockAfterTaskFinishes() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 55: public function testItReleasesLockAfterTaskFinishes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 68: public function testItReleasesLockIfTaskTookTooLong() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 68: public function testItReleasesLockIfTaskTookTooLong() - line 72: $lock = (new ConcurrencyLimiterMockThatDoesntRelease($this->redis(), 'key', 1, 1)); - line 74: $lock->block(2, function () use (&$store) { - line 79: $lock->block(0, function () use (&$store) { - line 88: $lock->block(0, function () use (&$store) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 68: public function testItReleasesLockIfTaskTookTooLong() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 95: public function testItFailsImmediatelyOrRetriesForAWhileBasedOnAGivenTimeout() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 95: public function testItFailsImmediatelyOrRetriesForAWhileBasedOnAGivenTimeout() - line 99: $lock = (new ConcurrencyLimiterMockThatDoesntRelease($this->redis(), 'key', 1, 2)); - line 101: $lock->block(2, function () use (&$store) { - line 106: $lock->block(0, function () use (&$store) { - line 113: $lock->block(3, function () use (&$store) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 95: public function testItFailsImmediatelyOrRetriesForAWhileBasedOnAGivenTimeout() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 120: public function testItFailsAfterRetryTimeout() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 120: public function testItFailsAfterRetryTimeout() - line 124: $lock = (new ConcurrencyLimiterMockThatDoesntRelease($this->redis(), 'key', 1, 10)); - line 126: $lock->block(2, function () use (&$store) { - line 131: $lock->block(2, function () use (&$store) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 120: public function testItFailsAfterRetryTimeout() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 141: public function testItReleasesIfErrorIsThrown() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 141: public function testItReleasesIfErrorIsThrown() - line 145: $lock = new ConcurrencyLimiter($this->redis(), 'key', 1, 5); - line 148: $lock->block(1, function () { - line 154: $lock = new ConcurrencyLimiter($this->redis(), 'key', 1, 5); - line 155: $lock->block(1, function () use (&$store) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 141: public function testItReleasesIfErrorIsThrown() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Redis/Connections/PhpRedisClusterConnectionTest.php - Test @ line 18: public function testItScansUsingDefaultNode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 18: public function testItScansUsingDefaultNode() - line 20: $client = m::mock(\RedisCluster::class); - line 28: $this->assertEquals([0, ['key']], $connection->scan(0)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 20: $client = m::mock(\RedisCluster::class); - Test @ line 31: public function testItOnlyFetchesDefaultNodeOnce() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 31: public function testItOnlyFetchesDefaultNodeOnce() - line 33: $client = m::mock(\RedisCluster::class); - line 38: $connection->scan(0); - line 39: $connection->scan(0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 33: $client = m::mock(\RedisCluster::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 31: public function testItOnlyFetchesDefaultNodeOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 42: public function testItScansUsingOptionNode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 42: public function testItScansUsingOptionNode() - line 44: $client = m::mock(\RedisCluster::class); - line 51: $this->assertEquals([0, ['key']], $connection->scan(0, ['node' => 'option-node'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 44: $client = m::mock(\RedisCluster::class); - Test @ line 54: public function testItThrowsExceptionWithoutNodes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 54: public function testItThrowsExceptionWithoutNodes() - line 56: $client = m::mock(\RedisCluster::class); - line 60: $this->expectExceptionMessage('Unable to determine default node. No master nodes found in the cluster.'); - line 63: $connection->scan(0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 56: $client = m::mock(\RedisCluster::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 54: public function testItThrowsExceptionWithoutNodes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Redis/DurationLimiterTest.php - Test @ line 29: public function testItLocksTasksWhenNoSlotAvailable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 29: public function testItLocksTasksWhenNoSlotAvailable() - line 33: (new DurationLimiter($this->redis(), 'key', 2, 2))->block(0, function () use (&$store) { - line 37: (new DurationLimiter($this->redis(), 'key', 2, 2))->block(0, function () use (&$store) { - line 42: (new DurationLimiter($this->redis(), 'key', 2, 2))->block(0, function () use (&$store) { - line 53: (new DurationLimiter($this->redis(), 'key', 2, 2))->block(0, function () use (&$store) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 29: public function testItLocksTasksWhenNoSlotAvailable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 60: public function testItFailsImmediatelyOrRetriesForAWhileBasedOnAGivenTimeout() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 60: public function testItFailsImmediatelyOrRetriesForAWhileBasedOnAGivenTimeout() - line 64: (new DurationLimiter($this->redis(), 'key', 1, 1))->block(2, function () use (&$store) { - line 69: (new DurationLimiter($this->redis(), 'key', 1, 1))->block(0, function () use (&$store) { - line 76: (new DurationLimiter($this->redis(), 'key', 1, 1))->block(2, function () use (&$store) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 60: public function testItFailsImmediatelyOrRetriesForAWhileBasedOnAGivenTimeout() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 83: public function testItReturnsTheCallbackResult() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 83: public function testItReturnsTheCallbackResult() - line 85: $limiter = new DurationLimiter($this->redis(), 'key', 1, 1); - line 87: $result = $limiter->block(1, function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 83: public function testItReturnsTheCallbackResult() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 94: public function testAcquireSetsDecaysAtAndRemaining() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 94: public function testAcquireSetsDecaysAtAndRemaining() - line 96: $limiter = new DurationLimiter($this->redis(), 'acquire-key', 2, 2); - line 98: $acquired1 = $limiter->acquire(); - line 103: $acquired2 = $limiter->acquire(); - line 107: $acquired3 = $limiter->acquire(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 112: public function testTooManyAttemptsReportsCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 112: public function testTooManyAttemptsReportsCorrectly() - line 114: $limiter = new DurationLimiter($this->redis(), 'too-many-key', 2, 1); - line 117: $this->assertFalse($limiter->tooManyAttempts()); - line 122: $this->assertTrue($limiter->acquire()); - line 123: $this->assertTrue($limiter->acquire()); - line 126: $this->assertTrue($limiter->tooManyAttempts()); - line 131: $this->assertFalse($limiter->tooManyAttempts()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 134: public function testClearResetsLimiter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 134: public function testClearResetsLimiter() - line 136: $limiter = new DurationLimiter($this->redis(), 'clear-key', 1, 2); - line 138: $this->assertTrue($limiter->acquire()); - line 139: $this->assertFalse($limiter->acquire()); - line 142: $limiter->clear(); - line 143: $this->assertTrue($limiter->acquire()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 146: public function testBlockReturnsTrueWithoutCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 146: public function testBlockReturnsTrueWithoutCallback() - line 148: $limiter = new DurationLimiter($this->redis(), 'no-callback-key', 1, 1); - line 150: $this->assertTrue($limiter->block(1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 153: public function testAcquireResetsAfterDecay() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 153: public function testAcquireResetsAfterDecay() - line 155: $limiter = new DurationLimiter($this->redis(), 'reset-after-decay-key', 1, 1); - line 157: $this->assertTrue($limiter->acquire()); - line 158: $this->assertFalse($limiter->acquire()); - line 162: $this->assertTrue($limiter->acquire()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Redis/RedisConnectionTest.php - Test @ line 35: public function testItSetsValuesWithExpiry() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 35: public function testItSetsValuesWithExpiry() - line 37: foreach ($this->connections() as $redis) { - line 40: $this->assertNotEquals(-1, $redis->ttl('one')); - line 56: $this->assertNotEquals(-1, $redis->ttl('three')); - line 57: $this->assertNotEquals(-1, $redis->pttl('three')); - line 59: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 63: public function testItDeletesKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 63: public function testItDeletesKeys() - line 65: foreach ($this->connections() as $redis) { - line 70: $redis->del('one'); - line 75: $redis->del('two', 'three'); - line 79: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 63: public function testItDeletesKeys() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 83: public function testItChecksForExistence() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 83: public function testItChecksForExistence() - line 85: foreach ($this->connections() as $redis) { - line 89: $this->assertEquals(1, $redis->exists('one')); - line 90: $this->assertEquals(0, $redis->exists('nothing')); - line 91: $this->assertEquals(2, $redis->exists('one', 'two')); - line 92: $this->assertEquals(2, $redis->exists('one', 'two', 'nothing')); - line 94: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 98: public function testItExpiresKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 98: public function testItExpiresKeys() - line 100: foreach ($this->connections() as $redis) { - line 102: $this->assertEquals(-1, $redis->ttl('one')); - line 103: $this->assertEquals(1, $redis->expire('one', 10)); - line 104: $this->assertNotEquals(-1, $redis->ttl('one')); - line 106: $this->assertEquals(0, $redis->expire('nothing', 10)); - line 109: $this->assertEquals(-1, $redis->ttl('two')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 119: public function testItRenamesKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 119: public function testItRenamesKeys() - line 121: foreach ($this->connections() as $redis) { - line 123: $redis->rename('one', 'two'); - line 128: $redis->renamenx('two', 'three'); - line 132: $redis->renamenx('two', 'four'); - line 137: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 141: public function testItAddsMembersToSortedSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 17. Evidence: - line 141: public function testItAddsMembersToSortedSet() - line 143: foreach ($this->connections() as $redis) { - line 145: $this->assertEquals(1, $redis->zcard('set')); - line 147: $redis->zadd('set', 2, 'taylor', 3, 'adam'); - line 148: $this->assertEquals(3, $redis->zcard('set')); - line 150: $redis->zadd('set', ['jeffrey' => 4, 'matt' => 5]); - line 151: $this->assertEquals(5, $redis->zcard('set')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 172: public function testItCountsMembersInSortedSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 172: public function testItCountsMembersInSortedSet() - line 174: foreach ($this->connections() as $redis) { - line 177: $this->assertEquals(1, $redis->zcount('set', 1, 5)); - line 178: $this->assertEquals(2, $redis->zcount('set', '-inf', '+inf')); - line 179: $this->assertEquals(2, $redis->zcard('set')); - line 181: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 185: public function testItIncrementsScoreOfSortedSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 185: public function testItIncrementsScoreOfSortedSet() - line 187: foreach ($this->connections() as $redis) { - line 189: $redis->zincrby('set', 2, 'jeffrey'); - line 190: $this->assertEquals(3, $redis->zscore('set', 'jeffrey')); - line 192: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 196: public function testItSetsKeyIfNotExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 196: public function testItSetsKeyIfNotExists() - line 198: foreach ($this->connections() as $redis) { - line 201: $this->assertSame(0, $redis->setnx('name', 'taylor')); - line 204: $this->assertSame(1, $redis->setnx('boss', 'taylor')); - line 207: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 211: public function testItSetsHashFieldIfNotExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 211: public function testItSetsHashFieldIfNotExists() - line 213: foreach ($this->connections() as $redis) { - line 216: $this->assertSame(0, $redis->hsetnx('person', 'name', 'taylor')); - line 217: $this->assertSame('mohamed', $redis->hget('person', 'name')); - line 219: $this->assertSame(1, $redis->hsetnx('person', 'boss', 'taylor')); - line 220: $this->assertSame('taylor', $redis->hget('person', 'boss')); - line 222: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 226: public function testItCalculatesIntersectionOfSortedSetsAndStores() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 226: public function testItCalculatesIntersectionOfSortedSetsAndStores() - line 228: foreach ($this->connections() as $redis) { - line 230: $redis->zadd('set2', ['jeffrey' => 2, 'matt' => 3]); - line 232: $redis->zinterstore('output', ['set1', 'set2']); - line 233: $this->assertEquals(2, $redis->zcard('output')); - line 234: $this->assertEquals(3, $redis->zscore('output', 'jeffrey')); - line 235: $this->assertEquals(5, $redis->zscore('output', 'matt')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 255: public function testItCalculatesUnionOfSortedSetsAndStores() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 255: public function testItCalculatesUnionOfSortedSetsAndStores() - line 257: foreach ($this->connections() as $redis) { - line 259: $redis->zadd('set2', ['jeffrey' => 2, 'matt' => 3]); - line 261: $redis->zunionstore('output', ['set1', 'set2']); - line 262: $this->assertEquals(3, $redis->zcard('output')); - line 263: $this->assertEquals(3, $redis->zscore('output', 'jeffrey')); - line 264: $this->assertEquals(5, $redis->zscore('output', 'matt')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 287: public function testItReturnsRangeInSortedSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 287: public function testItReturnsRangeInSortedSet() - line 289: foreach ($this->connections() as $connector => $redis) { - line 291: $this->assertEquals(['jeffrey', 'matt'], $redis->zrange('set', 0, 1)); - line 292: $this->assertEquals(['jeffrey', 'matt', 'taylor'], $redis->zrange('set', 0, -1)); - line 295: $this->assertEquals(['jeffrey' => 1, 'matt' => 5], $redis->zrange('set', 0, 1, 'withscores')); - line 297: $this->assertEquals(['jeffrey' => 1, 'matt' => 5], $redis->zrange('set', 0, 1, true)); - line 300: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 304: public function testItReturnsRevRangeInSortedSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 304: public function testItReturnsRevRangeInSortedSet() - line 306: foreach ($this->connections() as $connector => $redis) { - line 308: $this->assertEquals(['taylor', 'matt'], $redis->ZREVRANGE('set', 0, 1)); - line 309: $this->assertEquals(['taylor', 'matt', 'jeffrey'], $redis->ZREVRANGE('set', 0, -1)); - line 312: $this->assertEquals(['matt' => 5, 'taylor' => 10], $redis->ZREVRANGE('set', 0, 1, 'withscores')); - line 314: $this->assertEquals(['matt' => 5, 'taylor' => 10], $redis->ZREVRANGE('set', 0, 1, true)); - line 317: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 321: public function testItReturnsRangeByScoreInSortedSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 321: public function testItReturnsRangeByScoreInSortedSet() - line 323: foreach ($this->connections() as $redis) { - line 325: $this->assertEquals(['jeffrey'], $redis->zrangebyscore('set', 0, 3)); - line 326: $this->assertEquals(['matt' => 5, 'taylor' => 10], $redis->zrangebyscore('set', 0, 11, [ - line 333: $this->assertEquals(['matt' => 5, 'taylor' => 10], $redis->zrangebyscore('set', 0, 11, [ - line 338: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 342: public function testItReturnsRevRangeByScoreInSortedSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 342: public function testItReturnsRevRangeByScoreInSortedSet() - line 344: foreach ($this->connections() as $redis) { - line 346: $this->assertEquals(['taylor'], $redis->ZREVRANGEBYSCORE('set', 10, 6)); - line 347: $this->assertEquals(['matt' => 5, 'jeffrey' => 1], $redis->ZREVRANGEBYSCORE('set', 10, 0, [ - line 354: $this->assertEquals(['matt' => 5, 'jeffrey' => 1], $redis->ZREVRANGEBYSCORE('set', 10, 0, [ - line 359: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 363: public function testItReturnsRankInSortedSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 363: public function testItReturnsRankInSortedSet() - line 365: foreach ($this->connections() as $redis) { - line 368: $this->assertEquals(0, $redis->zrank('set', 'jeffrey')); - line 369: $this->assertEquals(2, $redis->zrank('set', 'taylor')); - line 371: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 375: public function testItReturnsScoreInSortedSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 375: public function testItReturnsScoreInSortedSet() - line 377: foreach ($this->connections() as $redis) { - line 380: $this->assertEquals(1, $redis->zscore('set', 'jeffrey')); - line 381: $this->assertEquals(10, $redis->zscore('set', 'taylor')); - line 383: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 387: public function testItRemovesMembersInSortedSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 387: public function testItRemovesMembersInSortedSet() - line 389: foreach ($this->connections() as $redis) { - line 392: $redis->zrem('set', 'jeffrey'); - line 393: $this->assertEquals(3, $redis->zcard('set')); - line 395: $redis->zrem('set', 'matt', 'adam'); - line 396: $this->assertEquals(1, $redis->zcard('set')); - line 398: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 402: public function testItRemovesMembersByScoreInSortedSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 402: public function testItRemovesMembersByScoreInSortedSet() - line 404: foreach ($this->connections() as $redis) { - line 406: $redis->ZREMRANGEBYSCORE('set', 5, '+inf'); - line 407: $this->assertEquals(1, $redis->zcard('set')); - line 409: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 413: public function testItRemovesMembersByRankInSortedSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 413: public function testItRemovesMembersByRankInSortedSet() - line 415: foreach ($this->connections() as $redis) { - line 417: $redis->ZREMRANGEBYRANK('set', 1, -1); - line 418: $this->assertEquals(1, $redis->zcard('set')); - line 420: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 424: public function testItSetsMultipleHashFields() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 424: public function testItSetsMultipleHashFields() - line 426: foreach ($this->connections() as $redis) { - line 428: $this->assertEquals(['name' => 'mohamed', 'hobby' => 'diving'], $redis->hgetall('hash')); - line 430: $redis->hmset('hash2', 'name', 'mohamed', 'hobby', 'diving'); - line 431: $this->assertEquals(['name' => 'mohamed', 'hobby' => 'diving'], $redis->hgetall('hash2')); - line 433: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 437: public function testItGetsMultipleHashFields() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 437: public function testItGetsMultipleHashFields() - line 439: foreach ($this->connections() as $redis) { - line 443: $redis->hmget('hash', 'name', 'hobby') - line 447: $redis->hmget('hash', ['name', 'hobby']) - line 450: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 454: public function testItGetsMultipleKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 454: public function testItGetsMultipleKeys() - line 458: foreach ($this->connections() as $redis) { - line 463: $redis->mget(array_keys($valueSet)) - line 466: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 470: public function testItFlushes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 470: public function testItFlushes() - line 472: foreach ($this->connections() as $redis) { - line 474: $this->assertSame(1, $redis->exists('name')); - line 476: $redis->flushdb(); - line 477: $this->assertSame(0, $redis->exists('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 481: public function testItFlushesAsynchronous() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 481: public function testItFlushesAsynchronous() - line 483: foreach ($this->connections() as $redis) { - line 485: $this->assertSame(1, $redis->exists('name')); - line 487: $redis->flushdb('ASYNC'); - line 488: $this->assertSame(0, $redis->exists('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 492: public function testItRunsEval() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 492: public function testItRunsEval() - line 494: foreach ($this->connections() as $redis) { - line 499: $redis->eval('redis.call("set", KEYS[1], ARGV[1])', 1, 'name', 'mohamed'); - line 504: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 508: public function testItRunsPipes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 508: public function testItRunsPipes() - line 510: foreach ($this->connections() as $redis) { - line 522: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 526: public function testItRunsTransactions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 526: public function testItRunsTransactions() - line 528: foreach ($this->connections() as $redis) { - line 540: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 544: public function testItRunsRawCommand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 544: public function testItRunsRawCommand() - line 546: foreach ($this->connections() as $redis) { - line 550: 1, $redis->executeRaw(['GET', 'test:raw:1']) - line 553: $redis->flushall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 557: public function testItDispatchesQueryEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 557: public function testItDispatchesQueryEvent() - line 559: foreach ($this->connections() as $redis) { - line 573: $redis->unsetEventDispatcher(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 560: $redis->setEventDispatcher($events = m::mock(Dispatcher::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 557: public function testItDispatchesQueryEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 577: public function testItPersistsConnection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 577: public function testItPersistsConnection() - line 580: $this->markTestSkipped('PhpRedis does not support persistent connections with PHP_ZTS enabled.'); - line 585: $this->connections()['persistent']->getPersistentID() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 589: public function testItScansForKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 589: public function testItScansForKeys() - line 591: foreach ($this->connections() as $redis) { - line 596: $initialKeys[$k] = $this->getPrefix($redis->client()).$key; - line 602: [$cursor, $returnedKeys] = $redis->scan($iterator); - line 613: $redis->flushAll(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 589: public function testItScansForKeys() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 617: public function testItZscansForKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 617: public function testItZscansForKeys() - line 619: foreach ($this->connections() as $redis) { - line 623: $redis->zadd('set', $score, $member); - line 630: [$iterator, $returnedMembers] = $redis->zscan('set', $iterator); - line 647: [$iterator, $returned] = $redis->zscan('set', $iterator, ['match' => 'test:unmatch:*']); - line 651: [$iterator, $returned] = $redis->zscan('set', $iterator, ['count' => 5]); - line 654: $redis->flushAll(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 617: public function testItZscansForKeys() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 658: public function testItHscansForKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 658: public function testItHscansForKeys() - line 660: foreach ($this->connections() as $redis) { - line 664: $redis->hset('hash', $field, $value); - line 671: [$iterator, $returnedFields] = $redis->hscan('hash', $iterator); - line 684: [$iterator, $returned] = $redis->hscan('hash', $iterator, ['match' => 'test:unmatch:*']); - line 688: [$iterator, $returned] = $redis->hscan('hash', $iterator, ['count' => 5]); - line 691: $redis->flushAll(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 695: public function testItSscansForKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 695: public function testItSscansForKeys() - line 697: foreach ($this->connections() as $redis) { - line 701: $redis->sadd('set', $member); - line 708: [$iterator, $returnedMembers] = $redis->sscan('set', $iterator); - line 719: [$iterator, $returned] = $redis->sscan('set', $iterator, ['match' => 'test:unmatch:*']); - line 723: [$iterator, $returned] = $redis->sscan('set', $iterator, ['count' => 5]); - line 726: $redis->flushAll(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 730: public function testItSPopsForKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 730: public function testItSPopsForKeys() - line 732: foreach ($this->connections() as $redis) { - line 736: $redis->sadd('set', $member); - line 739: $result = $redis->spop('set'); - line 743: $result = $redis->spop('set', 1); - line 748: $result = $redis->spop('set', 2); - line 753: $redis->flushAll(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 757: public function testPhpRedisScanOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 757: public function testPhpRedisScanOption() - line 759: foreach ($this->connections() as $redis) { - line 767: $returned = $redis->scan($iterator); - line 769: if ($redis->client()->getOption(Redis::OPT_SCAN) === Redis::SCAN_RETRY) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 757: public function testPhpRedisScanOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 785: public function testMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 785: public function testMacroable() - line 787: Connection::macro('foo', function () { - line 791: foreach ($this->connections() as $redis) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Redis/RedisConnectorTest.php - Test @ line 28: public function testDefaultConfiguration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 28: public function testDefaultConfiguration() - line 33: $predisClient = $this->redis['predis']->connection()->client(); - line 34: $parameters = $predisClient->getConnection()->getParameters(); - line 39: $phpRedisClient = $this->redis['phpredis']->connection()->client(); - line 40: $this->assertEquals($host, $phpRedisClient->getHost()); - line 41: $this->assertEquals($port, $phpRedisClient->getPort()); - line 42: $this->assertSame('default', $phpRedisClient->client('GETNAME')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 45: public function testUrl() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 45: public function testUrl() - line 61: $predisClient = $predis->connection()->client(); - line 62: $parameters = $predisClient->getConnection()->getParameters(); - line 78: $phpRedisClient = $phpRedis->connection()->client(); - line 79: $this->assertSame("tcp://{$host}", $phpRedisClient->getHost()); - line 80: $this->assertEquals($port, $phpRedisClient->getPort()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 83: public function testUrlWithScheme() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 83: public function testUrlWithScheme() - line 99: $predisClient = $predis->connection()->client(); - line 100: $parameters = $predisClient->getConnection()->getParameters(); - line 116: $phpRedisClient = $phpRedis->connection()->client(); - line 117: $this->assertSame("tcp://{$host}", $phpRedisClient->getHost()); - line 118: $this->assertEquals($port, $phpRedisClient->getPort()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 121: public function testScheme() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 121: public function testScheme() - line 139: $predisClient = $predis->connection()->client(); - line 140: $parameters = $predisClient->getConnection()->getParameters(); - line 158: $phpRedisClient = $phpRedis->connection()->client(); - line 159: $this->assertSame("tcp://{$host}", $phpRedisClient->getHost()); - line 160: $this->assertEquals($port, $phpRedisClient->getPort()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 163: public function testPredisConfigurationWithUsername() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 163: public function testPredisConfigurationWithUsername() - line 180: $predisClient = $predis->connection()->client(); - line 181: $parameters = $predisClient->getConnection()->getParameters(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 163: public function testPredisConfigurationWithUsername() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 186: public function testPredisConfigurationWithSentinel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 186: public function testPredisConfigurationWithSentinel() - line 207: $predisClient = $predis->connection()->client(); - line 208: $parameters = $predisClient->getConnection()->getSentinelConnection()->getParameters(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 186: public function testPredisConfigurationWithSentinel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 212: public function testPrefixOverrideBehaviour() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 212: public function testPrefixOverrideBehaviour() - line 233: $predisClient1 = $predis1->client(); - line 234: $this->assertEquals('test_default_options_', $predisClient1->getOptions()->prefix->getPrefix()); - line 253: $predisClient2 = $predis2->client(); - line 254: $this->assertEquals('test_default_config_', $predisClient2->getOptions()->prefix->getPrefix()); - line 272: $phpRedisClient1 = $phpRedis1->connection()->client(); - line 273: $this->assertEquals('test_default_options_', $phpRedisClient1->getOption(Redis::OPT_PREFIX)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Redis/RedisManagerExtensionTest.php - Test @ line 65: public function testParseConnectionConfigurationForCluster() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 65: public function testParseConnectionConfigurationForCluster() - line 80: $redis->extend('my_custom_driver', function () use ($config) { - line 90: $redis->resolve($name); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 81: return m::mock(Connector::class) - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 65: public function testParseConnectionConfigurationForCluster() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Routing/ImplicitRouteBindingTest.php - Test @ line 16: public function test_it_can_resolve_the_implicit_backed_enum_route_bindings_for_the_given_route() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 16: public function test_it_can_resolve_the_implicit_backed_enum_route_bindings_for_the_given_route() - line 25: $route->prepareForSerialization(); - line 31: $this->assertSame('fruits', $route->parameter('category')->value); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 34: public function test_it_can_resolve_the_implicit_backed_enum_route_bindings_for_the_given_route_with_optional_parameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 34: public function test_it_can_resolve_the_implicit_backed_enum_route_bindings_for_the_given_route_with_optional_parameter() - line 43: $route->prepareForSerialization(); - line 49: $this->assertSame('fruits', $route->parameter('category')->value); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 52: public function test_it_handles_optional_implicit_backed_enum_route_bindings_for_the_given_route_with_optional_parameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 52: public function test_it_handles_optional_implicit_backed_enum_route_bindings_for_the_given_route_with_optional_parameter() - line 61: $route->prepareForSerialization(); - line 67: $this->assertNull($route->parameter('category')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 52: public function test_it_handles_optional_implicit_backed_enum_route_bindings_for_the_given_route_with_optional_parameter() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 70: public function test_it_does_not_resolve_implicit_non_backed_enum_route_bindings_for_the_given_route() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 70: public function test_it_does_not_resolve_implicit_non_backed_enum_route_bindings_for_the_given_route() - line 79: $route->prepareForSerialization(); - line 85: $this->assertIsString($route->parameter('category')); - line 86: $this->assertSame('fruits', $route->parameter('category')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 89: public function test_implicit_backed_enum_internal_exception() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 89: public function test_implicit_backed_enum_internal_exception() - line 98: $route->prepareForSerialization(); - line 102: $this->expectException(BackedEnumCaseNotFoundException::class); - line 103: $this->expectExceptionMessage(sprintf( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 89: public function test_implicit_backed_enum_internal_exception() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 112: public function test_it_can_resolve_the_implicit_model_route_bindings_for_the_given_route() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 112: public function test_it_can_resolve_the_implicit_model_route_bindings_for_the_given_route() - line 114: $this->expectNotToPerformAssertions(); - line 123: $route->prepareForSerialization(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 112: public function test_it_can_resolve_the_implicit_model_route_bindings_for_the_given_route() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Routing/RouteBindingTest.php - Test @ line 15: public function test_it_can_resolve_the_explicit_model_for_the_given_route() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 15: public function test_it_can_resolve_the_explicit_model_for_the_given_route() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 26: public function test_it_cannot_resolve_the_explicit_soft_deleted_model_for_the_given_route() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 26: public function test_it_cannot_resolve_the_explicit_soft_deleted_model_for_the_given_route() - line 28: $container = Container::getInstance(); - line 35: $this->expectException(ModelNotFoundException::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 26: public function test_it_cannot_resolve_the_explicit_soft_deleted_model_for_the_given_route() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 39: public function test_it_can_resolve_the_explicit_soft_deleted_model_for_the_given_route_with_trashed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 39: public function test_it_can_resolve_the_explicit_soft_deleted_model_for_the_given_route_with_trashed() - line 41: $container = Container::getInstance(); - line 44: }))->withTrashed(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 39: public function test_it_can_resolve_the_explicit_soft_deleted_model_for_the_given_route_with_trashed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Routing/RouteCollectionTest.php - Test @ line 28: public function testRouteCollectionCanAddRoute() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 28: public function testRouteCollectionCanAddRoute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 47: public function testRouteCollectionCanRetrieveByName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 47: public function testRouteCollectionCanRetrieveByName() - line 49: $this->routeCollection->add($routeIndex = new Route('GET', 'foo/index', [ - line 54: $this->assertSame('route_name', $routeIndex->getName()); - line 55: $this->assertSame('route_name', $this->routeCollection->getByName('route_name')->getName()); - line 56: $this->assertEquals($routeIndex, $this->routeCollection->getByName('route_name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 59: public function testRouteCollectionCanRetrieveByAction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 59: public function testRouteCollectionCanRetrieveByAction() - line 61: $this->routeCollection->add($routeIndex = new Route('GET', 'foo/index', $action = [ - line 66: $this->assertSame($action, $routeIndex->getAction()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 69: public function testRouteCollectionCanRetrieveByMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 69: public function testRouteCollectionCanRetrieveByMethod() - line 71: $this->routeCollection->add($routeIndex = new Route('GET', 'foo/index', $action = [ - line 80: $this->routeCollection->add($routeShow = new Route('GET', 'bar/show', [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 87: public function testRouteCollectionCanGetIterator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 87: public function testRouteCollectionCanGetIterator() - line 89: $this->routeCollection->add(new Route('GET', 'foo/index', [ - line 93: $this->assertInstanceOf(ArrayIterator::class, $this->routeCollection->getIterator()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 87: public function testRouteCollectionCanGetIterator() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 96: public function testRouteCollectionCanGetIteratorWhenEmpty() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 96: public function testRouteCollectionCanGetIteratorWhenEmpty() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 102: public function testRouteCollectionCanGetIteratorWhenRouteAreAdded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 102: public function testRouteCollectionCanGetIteratorWhenRouteAreAdded() - line 104: $this->routeCollection->add($routeIndex = new Route('GET', 'foo/index', [ - line 110: $this->routeCollection->add($routeShow = new Route('GET', 'bar/show', [ - line 116: $this->assertInstanceOf(ArrayIterator::class, $this->routeCollection->getIterator()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 102: public function testRouteCollectionCanGetIteratorWhenRouteAreAdded() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 119: public function testRouteCollectionCanHandleSameRoute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 119: public function testRouteCollectionCanHandleSameRoute() - line 126: $this->routeCollection->add($routeIndex); - line 130: $this->routeCollection->add($routeIndex); - line 134: $this->routeCollection->add(new Route('GET', 'bar/show', [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 119: public function testRouteCollectionCanHandleSameRoute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 141: public function testRouteCollectionCanRefreshNameLookups() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 141: public function testRouteCollectionCanRefreshNameLookups() - line 148: $this->assertNull($routeIndex->getName()); - line 151: $this->routeCollection->add($routeIndex)->name('route_name'); - line 154: $this->assertNull($this->routeCollection->getByName('route_name')); - line 157: $this->routeCollection->refreshNameLookups(); - line 158: $this->assertEquals($routeIndex, $this->routeCollection->getByName('route_name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 161: public function testRouteCollectionCanGetAllRoutes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 161: public function testRouteCollectionCanGetAllRoutes() - line 163: $this->routeCollection->add($routeIndex = new Route('GET', 'foo/index', [ - line 168: $this->routeCollection->add($routeShow = new Route('GET', 'foo/show', [ - line 173: $this->routeCollection->add($routeNew = new Route('POST', 'bar', [ - line 183: $this->assertEquals($allRoutes, $this->routeCollection->getRoutes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 186: public function testRouteCollectionCanGetRoutesByName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 186: public function testRouteCollectionCanGetRoutesByName() - line 203: $this->routeCollection->add($routesByName['foo_index']); - line 204: $this->routeCollection->add($routesByName['foo_show']); - line 205: $this->routeCollection->add($routesByName['bar_create']); - line 207: $this->assertSame($routesByName, $this->routeCollection->getRoutesByName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 210: public function testRouteCollectionCanGetRoutesByMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 210: public function testRouteCollectionCanGetRoutesByMethod() - line 227: $this->routeCollection->add($routes['foo_index']); - line 228: $this->routeCollection->add($routes['foo_show']); - line 229: $this->routeCollection->add($routes['bar_create']); - line 243: ], $this->routeCollection->getRoutesByMethod()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 246: public function testRouteCollectionCleansUpOverwrittenRoutes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 246: public function testRouteCollectionCleansUpOverwrittenRoutes() - line 252: $this->routeCollection->add($routeA); - line 253: $this->routeCollection->add($routeB); - line 256: $this->assertEquals($routeA, $this->routeCollection->getByName('routeA')); - line 257: $this->assertEquals($routeA, $this->routeCollection->getByAction('View@view')); - line 258: $this->assertEquals($routeB, $this->routeCollection->getByName('overwrittenRouteA')); - line 259: $this->assertEquals($routeB, $this->routeCollection->getByAction('OverwrittenView@view')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 273: public function testCannotCacheDuplicateRouteNames() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 273: public function testCannotCacheDuplicateRouteNames() - line 275: $this->routeCollection->add( - line 278: $this->routeCollection->add( - line 282: $this->expectException(LogicException::class); - line 284: $this->routeCollection->compile(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 273: public function testCannotCacheDuplicateRouteNames() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 287: public function testRouteCollectionDontMatchNonMatchingDoubleSlashes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 287: public function testRouteCollectionDontMatchNonMatchingDoubleSlashes() - line 289: $this->expectException(NotFoundHttpException::class); - line 290: $this->expectExceptionMessage('The route foo could not be found.'); - line 292: $this->routeCollection->add(new Route('GET', 'foo', [ - line 302: $this->routeCollection->match($request); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 287: public function testRouteCollectionDontMatchNonMatchingDoubleSlashes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 305: public function testRouteCollectionRequestMethodNotAllowed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 305: public function testRouteCollectionRequestMethodNotAllowed() - line 307: $this->expectException(MethodNotAllowedHttpException::class); - line 308: $this->expectExceptionMessage('The POST method is not supported for route users. Supported methods: GET, HEAD.'); - line 310: $this->routeCollection->add( - line 316: $this->routeCollection->match($request); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 305: public function testRouteCollectionRequestMethodNotAllowed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 319: public function testHasNameRouteMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 319: public function testHasNameRouteMethod() - line 321: $this->routeCollection->add( - line 324: $this->routeCollection->add( - line 328: $this->routeCollection->add( - line 332: $this->assertTrue($this->routeCollection->hasNamedRoute('users')); - line 333: $this->assertTrue($this->routeCollection->hasNamedRoute('posts')); - line 334: $this->assertFalse($this->routeCollection->hasNamedRoute('article')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 338: public function testToSymfonyRouteCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 338: public function testToSymfonyRouteCollection() - line 340: $this->routeCollection->add( - line 344: $this->assertInstanceOf("\Symfony\Component\Routing\RouteCollection", $this->routeCollection->toSymfonyRouteCollection()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 338: public function testToSymfonyRouteCollection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 347: public function testOverlappingRoutesMatchesFirstRoute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 347: public function testOverlappingRoutesMatchesFirstRoute() - line 349: $this->routeCollection->add( - line 353: $this->routeCollection->add( - line 359: $this->assertCount(2, $this->routeCollection->getRoutes()); - line 360: $this->assertEquals('first', $this->routeCollection->match($request)->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Routing/RouteRegistrarTest.php - Test @ line 36: public function testMiddlewareFluentRegistration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 36: public function testMiddlewareFluentRegistration() - line 38: $this->router->middleware(['one', 'two'])->get('users', function () { - line 42: $this->seeResponse('all-users', Request::create('users', 'GET')); - line 43: $this->assertEquals(['one', 'two'], $this->getRoute()->middleware()); - line 45: $this->router->middleware('three', 'four')->get('users', function () { - line 49: $this->seeResponse('all-users', Request::create('users', 'GET')); - line 50: $this->assertEquals(['three', 'four'], $this->getRoute()->middleware()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 67: public function testNullNamespaceIsRespected() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 67: public function testNullNamespaceIsRespected() - line 69: $this->router->middleware(['one'])->namespace(null)->get('users', function () { - line 73: $this->assertNull($this->getRoute()->getAction()['namespace']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 67: public function testNullNamespaceIsRespected() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 76: public function testMiddlewareAsStringableObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 76: public function testMiddlewareAsStringableObject() - line 86: $this->router->middleware($one)->get('users', function () { - line 90: $this->seeResponse('all-users', Request::create('users', 'GET')); - line 91: $this->assertSame(['one'], $this->getRoute()->middleware()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 94: public function testMiddlewareAsStringableObjectOnRouteInstance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 94: public function testMiddlewareAsStringableObjectOnRouteInstance() - line 106: })->middleware($one); - line 108: $this->seeResponse('all-users', Request::create('users', 'GET')); - line 109: $this->assertSame(['one'], $this->getRoute()->middleware()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 112: public function testMiddlewareAsArrayWithStringables() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 112: public function testMiddlewareAsArrayWithStringables() - line 122: $this->router->middleware([$one, 'two'])->get('users', function () { - line 126: $this->seeResponse('all-users', Request::create('users', 'GET')); - line 127: $this->assertSame(['one', 'two'], $this->getRoute()->middleware()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 130: public function testMiddlewareAsNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 130: public function testMiddlewareAsNull() - line 132: $this->router->middleware(null)->get('users', function () { - line 136: $this->seeResponse('all-users', Request::create('users', 'GET')); - line 137: $this->assertSame([], $this->getRoute()->middleware()); - line 141: })->middleware(null); - line 143: $this->seeResponse('all-users', Request::create('users', 'GET')); - line 144: $this->assertSame([], $this->getRoute()->middleware()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 147: public function testWithoutMiddlewareRegistration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 147: public function testWithoutMiddlewareRegistration() - line 149: $this->router->middleware(['one', 'two'])->get('users', function () { - line 153: $this->seeResponse('all-users', Request::create('users', 'GET')); - line 155: $this->assertEquals(['one'], $this->getRoute()->excludedMiddleware()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 158: public function testGetRouteWithTrashed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 158: public function testGetRouteWithTrashed() - line 160: $route = $this->router->get('users', [RouteRegistrarControllerStub::class, 'index'])->withTrashed(); - line 162: $this->assertTrue($route->allowsTrashedBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 165: public function testResourceWithTrashed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 165: public function testResourceWithTrashed() - line 167: $this->router->resource('users', RouteRegistrarControllerStub::class) - line 175: foreach ($this->router->getRoutes() as $route) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 189: public function testSetFallbackRoute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 189: public function testSetFallbackRoute() - line 191: $route = $this->router->fallback(function () { - line 194: $route->setFallback(false); - line 198: $route->setFallback(true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 203: public function testCanRegisterGetRouteWithClosureAction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 203: public function testCanRegisterGetRouteWithClosureAction() - line 205: $this->router->middleware('get-middleware')->get('users', function () { - line 209: $this->seeResponse('all-users', Request::create('users', 'GET')); - line 210: $this->seeMiddleware('get-middleware'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 203: public function testCanRegisterGetRouteWithClosureAction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 213: public function testCanRegisterPostRouteWithClosureAction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 213: public function testCanRegisterPostRouteWithClosureAction() - line 215: $this->router->middleware('post-middleware')->post('users', function () { - line 219: $this->seeResponse('saved', Request::create('users', 'POST')); - line 220: $this->seeMiddleware('post-middleware'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 213: public function testCanRegisterPostRouteWithClosureAction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 223: public function testCanRegisterAnyRouteWithClosureAction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 223: public function testCanRegisterAnyRouteWithClosureAction() - line 225: $this->router->middleware('test-middleware')->any('users', function () { - line 229: $this->seeResponse('anything', Request::create('users', 'PUT')); - line 230: $this->seeMiddleware('test-middleware'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 223: public function testCanRegisterAnyRouteWithClosureAction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 233: public function testCanRegisterMatchRouteWithClosureAction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 233: public function testCanRegisterMatchRouteWithClosureAction() - line 235: $this->router->middleware('match-middleware')->match(['DELETE'], 'users', function () { - line 239: $this->seeResponse('deleted', Request::create('users', 'DELETE')); - line 240: $this->seeMiddleware('match-middleware'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 233: public function testCanRegisterMatchRouteWithClosureAction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 243: public function testCanRegisterRouteWithArrayAndClosureAction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 243: public function testCanRegisterRouteWithArrayAndClosureAction() - line 245: $this->router->middleware('patch-middleware')->patch('users', [function () { - line 249: $this->seeResponse('updated', Request::create('users', 'PATCH')); - line 250: $this->seeMiddleware('patch-middleware'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 243: public function testCanRegisterRouteWithArrayAndClosureAction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 253: public function testCanRegisterRouteWithArrayAndClosureUsesAction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 253: public function testCanRegisterRouteWithArrayAndClosureUsesAction() - line 255: $this->router->middleware('put-middleware')->put('users', ['uses' => function () { - line 259: $this->seeResponse('replaced', Request::create('users', 'PUT')); - line 260: $this->seeMiddleware('put-middleware'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 253: public function testCanRegisterRouteWithArrayAndClosureUsesAction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 263: public function testCanRegisterRouteWithControllerAction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 263: public function testCanRegisterRouteWithControllerAction() - line 265: $this->router->middleware('controller-middleware') - line 268: $this->seeResponse('controller', Request::create('users', 'GET')); - line 269: $this->seeMiddleware('controller-middleware'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 263: public function testCanRegisterRouteWithControllerAction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 272: public function testCanRegisterRouteWithControllerActionArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 272: public function testCanRegisterRouteWithControllerActionArray() - line 274: $this->router->middleware('controller-middleware') - line 277: $this->seeResponse('controller', Request::create('users', 'GET')); - line 278: $this->seeMiddleware('controller-middleware'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 272: public function testCanRegisterRouteWithControllerActionArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 281: public function testCanRegisterNamespacedGroupRouteWithControllerActionArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 281: public function testCanRegisterNamespacedGroupRouteWithControllerActionArray() - line 283: $this->router->group(['namespace' => 'WhatEver'], function () { - line 288: $this->seeResponse('controller', Request::create('users', 'GET')); - line 289: $this->seeMiddleware('controller-middleware'); - line 291: $this->router->group(['namespace' => 'WhatEver'], function () { - line 296: $this->seeResponse('controller', Request::create('users', 'GET')); - line 297: $this->seeMiddleware('controller-middleware'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 281: public function testCanRegisterNamespacedGroupRouteWithControllerActionArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 300: public function testCanRegisterRouteWithArrayAndControllerAction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 300: public function testCanRegisterRouteWithArrayAndControllerAction() - line 302: $this->router->middleware('controller-middleware')->put('users', [ - line 306: $this->seeResponse('controller', Request::create('users', 'PUT')); - line 307: $this->seeMiddleware('controller-middleware'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 300: public function testCanRegisterRouteWithArrayAndControllerAction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 310: public function testCanRegisterGroupWithMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 310: public function testCanRegisterGroupWithMiddleware() - line 312: $this->router->middleware('group-middleware')->group(function ($router) { - line 318: $this->seeResponse('all-users', Request::create('users', 'GET')); - line 319: $this->seeMiddleware('group-middleware'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 310: public function testCanRegisterGroupWithMiddleware() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 322: public function testCanRegisterGroupWithoutMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 322: public function testCanRegisterGroupWithoutMiddleware() - line 324: $this->router->withoutMiddleware('one')->group(function ($router) { - line 330: $this->seeResponse('all-users', Request::create('users', 'GET')); - line 331: $this->assertEquals(['one'], $this->getRoute()->excludedMiddleware()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 334: public function testCanRegisterGroupWithStringableMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 334: public function testCanRegisterGroupWithStringableMiddleware() - line 344: $this->router->middleware($one)->group(function ($router) { - line 350: $this->seeResponse('all-users', Request::create('users', 'GET')); - line 351: $this->seeMiddleware('one'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 334: public function testCanRegisterGroupWithStringableMiddleware() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 354: public function testCanRegisterGroupWithNamespace() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 354: public function testCanRegisterGroupWithNamespace() - line 356: $this->router->namespace('App\Http\Controllers')->group(function ($router) { - line 362: $this->getRoute()->getAction()['uses'] - line 365: $this->router->namespace('App\Http\Controllers')->group(function ($router) { - line 371: $this->getRoute()->getAction()['uses'] Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 375: public function testCanRegisterGroupWithPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 375: public function testCanRegisterGroupWithPrefix() - line 377: $this->router->prefix('api')->group(function ($router) { - line 381: $this->assertSame('api/users', $this->getRoute()->uri()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 384: public function testCanRegisterGroupWithPrefixAndWhere() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 384: public function testCanRegisterGroupWithPrefixAndWhere() - line 386: $this->router->prefix('foo/{bar}')->where(['bar' => '[0-9]+'])->group(function ($router) { - line 392: $this->seeResponse('good', Request::create('foo/12345/here', 'GET')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 384: public function testCanRegisterGroupWithPrefixAndWhere() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 395: public function testCanRegisterGroupWithNamePrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 395: public function testCanRegisterGroupWithNamePrefix() - line 397: $this->router->name('api.')->group(function ($router) { - line 401: $this->assertSame('api.users', $this->getRoute()->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 404: public function testCanRegisterGroupWithDomain() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 404: public function testCanRegisterGroupWithDomain() - line 406: $this->router->domain('{account}.myapp.com')->group(function ($router) { - line 410: $this->assertSame('{account}.myapp.com', $this->getRoute()->getDomain()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 413: public function testCanRegisterGroupWithDomainAndNamePrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 413: public function testCanRegisterGroupWithDomainAndNamePrefix() - line 415: $this->router->domain('{account}.myapp.com')->name('api.')->group(function ($router) { - line 419: $this->assertSame('{account}.myapp.com', $this->getRoute()->getDomain()); - line 420: $this->assertSame('api.users', $this->getRoute()->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 423: public function testCanRegisterGroupWithController() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 423: public function testCanRegisterGroupWithController() - line 425: $this->router->controller(RouteRegistrarControllerStub::class)->group(function ($router) { - line 431: $this->getRoute()->getAction()['uses'] Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 435: public function testCanOverrideGroupControllerWithStringSyntax() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 435: public function testCanOverrideGroupControllerWithStringSyntax() - line 437: $this->router->controller(RouteRegistrarControllerStub::class)->group(function ($router) { - line 443: $this->getRoute()->getAction()['uses'] Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 447: public function testCanOverrideGroupControllerWithClosureSyntax() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 447: public function testCanOverrideGroupControllerWithClosureSyntax() - line 449: $this->router->controller(RouteRegistrarControllerStub::class)->group(function ($router) { - line 455: $this->seeResponse('hello world', Request::create('users', 'GET')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 447: public function testCanOverrideGroupControllerWithClosureSyntax() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 458: public function testCanOverrideGroupControllerWithInvokableControllerSyntax() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 458: public function testCanOverrideGroupControllerWithInvokableControllerSyntax() - line 460: $this->router->controller(RouteRegistrarControllerStub::class)->group(function ($router) { - line 466: $this->getRoute()->getAction()['uses'] Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 470: public function testWillUseTheLatestGroupController() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 470: public function testWillUseTheLatestGroupController() - line 472: $this->router->controller(RouteRegistrarControllerStub::class)->group(function ($router) { - line 480: $this->getRoute()->getAction()['uses'] Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 484: public function testCanOverrideGroupControllerWithArraySyntax() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 484: public function testCanOverrideGroupControllerWithArraySyntax() - line 486: $this->router->controller(RouteRegistrarControllerStub::class)->group(function ($router) { - line 492: $this->getRoute()->getAction()['uses'] Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 496: public function testRouteGroupingWithoutPrefix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 496: public function testRouteGroupingWithoutPrefix() - line 498: $this->router->group([], function ($router) { - line 503: $this->seeResponse('hello', Request::create('bar/baz', 'GET')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 496: public function testRouteGroupingWithoutPrefix() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 506: public function testRouteGroupChaining() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 506: public function testRouteGroupChaining() - line 509: ->group([], function ($router) { - line 520: $routeCollection = $this->router->getRoutes(); - line 522: $this->assertInstanceOf(\Illuminate\Routing\Route::class, $routeCollection->match(Request::create('foo', 'GET'))); - line 523: $this->assertInstanceOf(\Illuminate\Routing\Route::class, $routeCollection->match(Request::create('bar', 'GET'))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 506: public function testRouteGroupChaining() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 526: public function testRegisteringNonApprovedAttributesThrows() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 526: public function testRegisteringNonApprovedAttributesThrows() - line 528: $this->expectException(BadMethodCallException::class); - line 529: $this->expectExceptionMessage('Method Illuminate\Routing\RouteRegistrar::unsupportedMethod does not exist.'); - line 531: $this->router->domain('foo')->unsupportedMethod('bar')->group(function ($router) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 526: public function testRegisteringNonApprovedAttributesThrows() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 536: public function testCanSetWithoutScopedBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 536: public function testCanSetWithoutScopedBindings() - line 538: $route = $this->router->withoutScopedBindings()->get('users', function () { - line 542: $this->assertTrue($route->preventsScopedBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 545: public function testCanSetWithoutScopedBindingsOnGroup() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 545: public function testCanSetWithoutScopedBindingsOnGroup() - line 547: $this->router->withoutScopedBindings()->group(function ($router) { - line 553: $route = $this->router->getRoutes()->getRoutes()[0]; - line 555: $this->assertTrue($route->preventsScopedBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 558: public function testCanSetScopeBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 558: public function testCanSetScopeBindings() - line 560: $route = $this->router->scopeBindings()->get('users', function () { - line 564: $this->assertTrue($route->enforcesScopedBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 567: public function testCanSetScopeBindingsOnGroup() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 567: public function testCanSetScopeBindingsOnGroup() - line 569: $this->router->scopeBindings()->group(function ($router) { - line 575: $route = $this->router->getRoutes()->getRoutes()[0]; - line 577: $this->assertTrue($route->enforcesScopedBindings()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 580: public function testCanRegisterResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 580: public function testCanRegisterResource() - line 582: $this->router->middleware('resource-middleware') - line 585: $this->seeResponse('deleted', Request::create('users/1', 'DELETE')); - line 586: $this->seeMiddleware('resource-middleware'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 580: public function testCanRegisterResource() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 589: public function testCanRegisterResourcesWithExceptOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 589: public function testCanRegisterResourcesWithExceptOption() - line 591: $this->router->resources([ - line 597: $this->assertCount(15, $this->router->getRoutes()); - line 600: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.index')); - line 601: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.store')); - line 602: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.edit')); - line 603: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.update')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 611: public function testCanRegisterResourcesWithOnlyOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 611: public function testCanRegisterResourcesWithOnlyOption() - line 613: $this->router->resources([ - line 619: $this->assertCount(6, $this->router->getRoutes()); - line 622: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.create')); - line 623: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.show')); - line 625: $this->assertFalse($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.index')); - line 626: $this->assertFalse($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.store')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 633: public function testCanRegisterResourcesWithoutOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 633: public function testCanRegisterResourcesWithoutOption() - line 635: $this->router->resources([ - line 641: $this->assertCount(21, $this->router->getRoutes()); - line 644: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.index')); - line 645: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.create')); - line 646: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.store')); - line 647: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.show')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 654: public function testCanRegisterResourceWithMissingOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 654: public function testCanRegisterResourceWithMissingOption() - line 656: $this->router->middleware('resource-middleware') - line 662: $this->assertIsCallable($this->router->getRoutes()->getByName('users.show')->getMissing()); - line 663: $this->assertIsCallable($this->router->getRoutes()->getByName('users.edit')->getMissing()); - line 664: $this->assertIsCallable($this->router->getRoutes()->getByName('users.update')->getMissing()); - line 665: $this->assertIsCallable($this->router->getRoutes()->getByName('users.destroy')->getMissing()); - line 667: $this->assertNull($this->router->getRoutes()->getByName('users.index')->getMissing()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 654: public function testCanRegisterResourceWithMissingOption() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 672: public function testCanAccessRegisteredResourceRoutesAsRouteCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 672: public function testCanAccessRegisteredResourceRoutesAsRouteCollection() - line 674: $resource = $this->router->middleware('resource-middleware') - line 678: $this->assertCount(7, $resource->getRoutes()); - line 680: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('users.index')); - line 681: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('users.create')); - line 682: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('users.store')); - line 683: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('users.show')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 689: public function testCanLimitMethodsOnRegisteredResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 689: public function testCanLimitMethodsOnRegisteredResource() - line 691: $this->router->resource('users', RouteRegistrarControllerStub::class) - line 694: $this->assertCount(3, $this->router->getRoutes()); - line 696: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('users.index')); - line 697: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('users.show')); - line 698: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('users.destroy')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 701: public function testCanExcludeMethodsOnRegisteredResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 701: public function testCanExcludeMethodsOnRegisteredResource() - line 703: $this->router->resource('users', RouteRegistrarControllerStub::class) - line 706: $this->assertCount(2, $this->router->getRoutes()); - line 708: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('users.update')); - line 709: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('users.destroy')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 712: public function testCanLimitAndExcludeMethodsOnRegisteredResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 712: public function testCanLimitAndExcludeMethodsOnRegisteredResource() - line 714: $this->router->resource('users', RouteRegistrarControllerStub::class) - line 718: $this->assertCount(2, $this->router->getRoutes()); - line 720: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('users.index')); - line 721: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('users.show')); - line 722: $this->assertFalse($this->router->getRoutes()->hasNamedRoute('users.destroy')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 725: public function testCanSetShallowOptionOnRegisteredResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 725: public function testCanSetShallowOptionOnRegisteredResource() - line 727: $this->router->resource('users.tasks', RouteRegistrarControllerStub::class)->shallow(); - line 729: $this->assertCount(7, $this->router->getRoutes()); - line 731: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('users.tasks.index')); - line 732: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('tasks.show')); - line 733: $this->assertFalse($this->router->getRoutes()->hasNamedRoute('users.tasks.show')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 736: public function testCanSetScopedOptionOnRegisteredResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 736: public function testCanSetScopedOptionOnRegisteredResource() - line 738: $this->router->resource('users.tasks', RouteRegistrarControllerStub::class)->scoped(); - line 739: $this->router->getRoutes()->refreshNameLookups(); - line 743: $this->router->getRoutes()->getByName('users.tasks.index')->bindingFields() - line 747: $this->router->getRoutes()->getByName('users.tasks.show')->bindingFields() - line 750: $this->router->resource('users.tasks', RouteRegistrarControllerStub::class)->scoped([ - line 753: $this->router->getRoutes()->refreshNameLookups(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 764: public function testCanExcludeMethodsOnRegisteredApiResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 764: public function testCanExcludeMethodsOnRegisteredApiResource() - line 766: $this->router->apiResource('users', RouteRegistrarControllerStub::class) - line 769: $this->assertCount(2, $this->router->getRoutes()); - line 771: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('users.update')); - line 772: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('users.destroy')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 775: public function testCanRegisterApiResourcesWithExceptOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 775: public function testCanRegisterApiResourcesWithExceptOption() - line 777: $this->router->apiResources([ - line 783: $this->assertCount(12, $this->router->getRoutes()); - line 786: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.index')); - line 787: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.store')); - line 788: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.update')); - line 789: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.destroy')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 797: public function testCanRegisterApiResourcesWithOnlyOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 797: public function testCanRegisterApiResourcesWithOnlyOption() - line 799: $this->router->apiResources([ - line 805: $this->assertCount(6, $this->router->getRoutes()); - line 808: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.index')); - line 809: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.show')); - line 811: $this->assertFalse($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.store')); - line 812: $this->assertFalse($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.update')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 819: public function testCanRegisterApiResourcesWithoutOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 819: public function testCanRegisterApiResourcesWithoutOption() - line 821: $this->router->apiResources([ - line 827: $this->assertCount(15, $this->router->getRoutes()); - line 830: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.index')); - line 831: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.show')); - line 832: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.store')); - line 833: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('resource-'.$resource.'.update')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 841: public function testUserCanRegisterApiResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 841: public function testUserCanRegisterApiResource() - line 843: $this->router->apiResource('users', RouteRegistrarControllerStub::class); - line 845: $this->assertCount(5, $this->router->getRoutes()); - line 847: $this->assertFalse($this->router->getRoutes()->hasNamedRoute('users.create')); - line 848: $this->assertFalse($this->router->getRoutes()->hasNamedRoute('users.edit')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 851: public function testUserCanRegisterApiResourceWithExceptOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 851: public function testUserCanRegisterApiResourceWithExceptOption() - line 853: $this->router->apiResource('users', RouteRegistrarControllerStub::class, [ - line 857: $this->assertCount(4, $this->router->getRoutes()); - line 859: $this->assertFalse($this->router->getRoutes()->hasNamedRoute('users.create')); - line 860: $this->assertFalse($this->router->getRoutes()->hasNamedRoute('users.edit')); - line 861: $this->assertFalse($this->router->getRoutes()->hasNamedRoute('users.destroy')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 864: public function testUserCanRegisterApiResourceWithOnlyOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 864: public function testUserCanRegisterApiResourceWithOnlyOption() - line 866: $this->router->apiResource('users', RouteRegistrarControllerStub::class, [ - line 870: $this->assertCount(2, $this->router->getRoutes()); - line 872: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('users.index')); - line 873: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('users.show')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 876: public function testCanNameRoutesOnRegisteredResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 876: public function testCanNameRoutesOnRegisteredResource() - line 878: $this->router->resource('comments', RouteRegistrarControllerStub::class) - line 881: $this->router->resource('users', RouteRegistrarControllerStub::class) - line 887: $this->router->resource('posts', RouteRegistrarControllerStub::class) - line 892: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('reply.create')); - line 893: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('reply.store')); - line 894: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.build')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 900: public function testCanOverrideParametersOnRegisteredResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 900: public function testCanOverrideParametersOnRegisteredResource() - line 902: $this->router->resource('users', RouteRegistrarControllerStub::class) - line 905: $this->router->resource('posts', RouteRegistrarControllerStub::class) - line 908: $this->assertStringContainsString('admin_user', $this->router->getRoutes()->getByName('users.show')->uri); - line 909: $this->assertStringContainsString('topic', $this->router->getRoutes()->getByName('posts.show')->uri); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 900: public function testCanOverrideParametersOnRegisteredResource() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 912: public function testCanSetMiddlewareOnRegisteredResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 912: public function testCanSetMiddlewareOnRegisteredResource() - line 914: $this->router->resource('users', RouteRegistrarControllerStub::class) - line 917: $this->seeMiddleware(RouteRegistrarMiddlewareStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 912: public function testCanSetMiddlewareOnRegisteredResource() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 920: public function testCanSetMiddlewareCanOnGroups() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 920: public function testCanSetMiddlewareCanOnGroups() - line 922: $this->router->can('test')->group(function ($router) { - line 926: $this->seeMiddleware('can:test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 920: public function testCanSetMiddlewareCanOnGroups() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 929: public function testCanSetMiddlewareCanWithModelsOnGroups() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 929: public function testCanSetMiddlewareCanWithModelsOnGroups() - line 931: $this->router->can('view', 'post')->group(function ($router) { - line 935: $this->seeMiddleware('can:view,post'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 929: public function testCanSetMiddlewareCanWithModelsOnGroups() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 938: public function testCanSetMiddlewareCanNestedOnGroups() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 938: public function testCanSetMiddlewareCanNestedOnGroups() - line 940: $this->router->can('access-admin')->group(function ($router) { - line 949: ], $this->getRoute()->middleware()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 952: public function testCanSetMiddlewareForSpecifiedMethodsOnRegisteredResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 18. Evidence: - line 952: public function testCanSetMiddlewareForSpecifiedMethodsOnRegisteredResource() - line 954: $this->router->resource('users', RouteRegistrarControllerStub::class) - line 959: $this->router->getRoutes()->refreshNameLookups(); - line 961: $this->assertEquals($this->router->getRoutes()->getByName('users.index')->gatherMiddleware(), ['default', RouteRegistrarMiddlewareStub::class]); - line 962: $this->assertEquals($this->router->getRoutes()->getByName('users.create')->gatherMiddleware(), ['default', 'one']); - line 963: $this->assertEquals($this->router->getRoutes()->getByName('users.store')->gatherMiddleware(), ['default', 'one']); - line 964: $this->assertEquals($this->router->getRoutes()->getByName('users.show')->gatherMiddleware(), ['default']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 985: public function testResourceWithoutMiddlewareRegistration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 985: public function testResourceWithoutMiddlewareRegistration() - line 987: $this->router->resource('users', RouteRegistrarControllerStub::class) - line 992: $this->seeResponse('controller', Request::create('users', 'GET')); - line 994: $this->assertEquals(['one'], $this->getRoute()->excludedMiddleware()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 997: public function testCanSetExcludedMiddlewareForSpecifiedMethodsOnRegisteredResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 997: public function testCanSetExcludedMiddlewareForSpecifiedMethodsOnRegisteredResource() - line 999: $this->router->resource('users', RouteRegistrarControllerStub::class) - line 1005: $this->assertEquals($this->router->getRoutes()->getByName('users.index')->excludedMiddleware(), ['one', 'two']); - line 1006: $this->assertEquals($this->router->getRoutes()->getByName('users.create')->excludedMiddleware(), ['one', 'three']); - line 1007: $this->assertEquals($this->router->getRoutes()->getByName('users.store')->excludedMiddleware(), ['one', 'three']); - line 1008: $this->assertEquals($this->router->getRoutes()->getByName('users.show')->excludedMiddleware(), ['one']); - line 1009: $this->assertEquals($this->router->getRoutes()->getByName('users.edit')->excludedMiddleware(), ['one', 'four', 'five']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1014: public function testResourceWithMiddlewareAsStringable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1014: public function testResourceWithMiddlewareAsStringable() - line 1024: $this->router->resource('users', RouteRegistrarControllerStub::class) - line 1029: $this->seeResponse('controller', Request::create('users', 'GET')); - line 1031: $this->assertEquals(['one', 'two'], $this->getRoute()->middleware()); - line 1032: $this->assertEquals(['one'], $this->getRoute()->excludedMiddleware()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1035: public function testResourceWheres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1035: public function testResourceWheres() - line 1042: $this->router->resource('users', RouteRegistrarControllerStub::class) - line 1046: foreach ($this->router->getRoutes() as $route) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1035: public function testResourceWheres() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1051: public function testWhereNumberRegistration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1051: public function testWhereNumberRegistration() - line 1055: $this->router->get('/{foo}/{bar}')->whereNumber(['foo', 'bar']); - line 1056: $this->router->get('/api/{bar}/{foo}')->whereNumber(['bar', 'foo']); - line 1059: foreach ($this->router->getRoutes() as $route) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1051: public function testWhereNumberRegistration() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1064: public function testWhereAlphaRegistration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1064: public function testWhereAlphaRegistration() - line 1068: $this->router->get('/{foo}/{bar}')->whereAlpha(['foo', 'bar']); - line 1069: $this->router->get('/api/{bar}/{foo}')->whereAlpha(['bar', 'foo']); - line 1072: foreach ($this->router->getRoutes() as $route) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1064: public function testWhereAlphaRegistration() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1077: public function testWhereAlphaNumericRegistration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1077: public function testWhereAlphaNumericRegistration() - line 1081: $this->router->get('/{foo}')->whereAlphaNumeric(['1a2b3c']); - line 1084: foreach ($this->router->getRoutes() as $route) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1077: public function testWhereAlphaNumericRegistration() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1089: public function testWhereInRegistration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1089: public function testWhereInRegistration() - line 1093: $this->router->get('/{foo}/{bar}')->whereIn(['foo', 'bar'], ['one', 'two']); - line 1094: $this->router->get('/api/{bar}/{foo}')->whereIn(['bar', 'foo'], ['one', 'two']); - line 1097: foreach ($this->router->getRoutes() as $route) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1089: public function testWhereInRegistration() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1102: public function testWhereInEnumRegistration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1102: public function testWhereInEnumRegistration() - line 1104: $this->router->get('/posts/{category}')->whereIn('category', CategoryBackedEnum::cases()); - line 1107: $this->assertFalse($this->getRoute()->matches($invalidRequest)); - line 1111: $this->assertTrue($this->getRoute()->matches($request)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1115: public function testGroupWhereNumberRegistrationOnRouteRegistrar() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1115: public function testGroupWhereNumberRegistrationOnRouteRegistrar() - line 1119: $this->router->prefix('/{foo}/{bar}')->whereNumber(['foo', 'bar'])->group(function ($router) { - line 1123: $this->router->prefix('/api/{bar}/{foo}')->whereNumber(['bar', 'foo'])->group(function ($router) { - line 1128: foreach ($this->router->getRoutes() as $route) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1115: public function testGroupWhereNumberRegistrationOnRouteRegistrar() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1133: public function testGroupWhereAlphaRegistrationOnRouteRegistrar() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1133: public function testGroupWhereAlphaRegistrationOnRouteRegistrar() - line 1137: $this->router->prefix('/{foo}/{bar}')->whereAlpha(['foo', 'bar'])->group(function ($router) { - line 1141: $this->router->prefix('/api/{bar}/{foo}')->whereAlpha(['bar', 'foo'])->group(function ($router) { - line 1146: foreach ($this->router->getRoutes() as $route) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1133: public function testGroupWhereAlphaRegistrationOnRouteRegistrar() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1151: public function testGroupWhereAlphaNumericRegistrationOnRouteRegistrar() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1151: public function testGroupWhereAlphaNumericRegistrationOnRouteRegistrar() - line 1155: $this->router->prefix('/{foo}')->whereAlphaNumeric(['1a2b3c'])->group(function ($router) { - line 1160: foreach ($this->router->getRoutes() as $route) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1151: public function testGroupWhereAlphaNumericRegistrationOnRouteRegistrar() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1165: public function testGroupWhereInRegistrationOnRouteRegistrar() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1165: public function testGroupWhereInRegistrationOnRouteRegistrar() - line 1169: $this->router->prefix('/{foo}/{bar}')->whereIn(['foo', 'bar'], ['one', 'two'])->group(function ($router) { - line 1173: $this->router->prefix('/api/{bar}/{foo}')->whereIn(['bar', 'foo'], ['one', 'two'])->group(function ($router) { - line 1178: foreach ($this->router->getRoutes() as $route) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1165: public function testGroupWhereInRegistrationOnRouteRegistrar() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1183: public function testGroupWhereNumberRegistrationOnRouter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1183: public function testGroupWhereNumberRegistrationOnRouter() - line 1187: $this->router->whereNumber(['foo', 'bar'])->prefix('/{foo}/{bar}')->group(function ($router) { - line 1191: $this->router->whereNumber(['bar', 'foo'])->prefix('/api/{bar}/{foo}')->group(function ($router) { - line 1196: foreach ($this->router->getRoutes() as $route) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1183: public function testGroupWhereNumberRegistrationOnRouter() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1201: public function testGroupWhereAlphaRegistrationOnRouter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1201: public function testGroupWhereAlphaRegistrationOnRouter() - line 1205: $this->router->whereAlpha(['foo', 'bar'])->prefix('/{foo}/{bar}')->group(function ($router) { - line 1209: $this->router->whereAlpha(['bar', 'foo'])->prefix('/api/{bar}/{foo}')->group(function ($router) { - line 1214: foreach ($this->router->getRoutes() as $route) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1201: public function testGroupWhereAlphaRegistrationOnRouter() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1219: public function testGroupWhereAlphaNumericRegistrationOnRouter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1219: public function testGroupWhereAlphaNumericRegistrationOnRouter() - line 1223: $this->router->whereAlphaNumeric(['1a2b3c'])->prefix('/{foo}')->group(function ($router) { - line 1228: foreach ($this->router->getRoutes() as $route) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1219: public function testGroupWhereAlphaNumericRegistrationOnRouter() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1233: public function testGroupWhereInRegistrationOnRouter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1233: public function testGroupWhereInRegistrationOnRouter() - line 1237: $this->router->whereIn(['foo', 'bar'], ['one', 'two'])->prefix('/{foo}/{bar}')->group(function ($router) { - line 1241: $this->router->whereIn(['bar', 'foo'], ['one', 'two'])->prefix('/api/{bar}/{foo}')->group(function ($router) { - line 1246: foreach ($this->router->getRoutes() as $route) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1233: public function testGroupWhereInRegistrationOnRouter() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1251: public function testCanSetRouteName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1251: public function testCanSetRouteName() - line 1253: $this->router->as('users.index')->get('users', function () { - line 1257: $this->seeResponse('all-users', Request::create('users', 'GET')); - line 1258: $this->assertSame('users.index', $this->getRoute()->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1261: public function testCanSetRouteNameUsingNameAlias() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1261: public function testCanSetRouteNameUsingNameAlias() - line 1263: $this->router->name('users.index')->get('users', function () { - line 1267: $this->seeResponse('all-users', Request::create('users', 'GET')); - line 1268: $this->assertSame('users.index', $this->getRoute()->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1271: public function testCanSetRouteNameUsingStringBackedEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1271: public function testCanSetRouteNameUsingStringBackedEnum() - line 1273: $this->router->name(RouteNameEnum::UserIndex)->get('users', fn () => 'all-users'); - line 1275: $this->assertSame('users.index', $this->getRoute()->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1278: public function testCannotSetRouteNameUsingIntegerBackedEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1278: public function testCannotSetRouteNameUsingIntegerBackedEnum() - line 1280: $this->expectExceptionObject(new \InvalidArgumentException('Attribute [name] expects a string backed enum.')); - line 1282: $this->router->name(IntegerEnum::One)->get('users', fn () => 'all-users'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1278: public function testCannotSetRouteNameUsingIntegerBackedEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1285: public function testCanSetRouteDomainUsingStringBackedEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1285: public function testCanSetRouteDomainUsingStringBackedEnum() - line 1287: $this->router->domain(RouteDomainEnum::DashboardDomain)->get('users', fn () => 'all-users'); - line 1289: $this->assertSame('dashboard.myapp.com', $this->getRoute()->getDomain()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1292: public function testCannotSetRouteDomainUsingIntegerBackedEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1292: public function testCannotSetRouteDomainUsingIntegerBackedEnum() - line 1294: $this->expectExceptionObject(new \InvalidArgumentException('Attribute [domain] expects a string backed enum.')); - line 1296: $this->router->domain(IntegerEnum::One)->get('users', fn () => 'all-users'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1292: public function testCannotSetRouteDomainUsingIntegerBackedEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1299: public function testPushMiddlewareToGroup() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1299: public function testPushMiddlewareToGroup() - line 1301: $this->router->middlewareGroup('web', []); - line 1302: $this->router->pushMiddlewareToGroup('web', 'test-middleware'); - line 1304: $this->assertEquals(['test-middleware'], $this->router->getMiddlewareGroups()['web']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1307: public function testPushMiddlewareToGroupUnregisteredGroup() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1307: public function testPushMiddlewareToGroupUnregisteredGroup() - line 1309: $this->router->pushMiddlewareToGroup('web', 'test-middleware'); - line 1311: $this->assertEquals(['test-middleware'], $this->router->getMiddlewareGroups()['web']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1314: public function testPushMiddlewareToGroupDuplicatedMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1314: public function testPushMiddlewareToGroupDuplicatedMiddleware() - line 1316: $this->router->pushMiddlewareToGroup('web', 'test-middleware'); - line 1317: $this->router->pushMiddlewareToGroup('web', 'test-middleware'); - line 1319: $this->assertEquals(['test-middleware'], $this->router->getMiddlewareGroups()['web']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1322: public function testCanRemoveMiddlewareFromGroup() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1322: public function testCanRemoveMiddlewareFromGroup() - line 1324: $this->router->pushMiddlewareToGroup('web', 'test-middleware'); - line 1326: $this->router->removeMiddlewareFromGroup('web', 'test-middleware'); - line 1328: $this->assertEquals([], $this->router->getMiddlewareGroups()['web']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1331: public function testCanRemoveMiddlewareFromGroupNotUnregisteredMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1331: public function testCanRemoveMiddlewareFromGroupNotUnregisteredMiddleware() - line 1333: $this->router->middlewareGroup('web', []); - line 1335: $this->router->removeMiddlewareFromGroup('web', 'different-test-middleware'); - line 1337: $this->assertEquals([], $this->router->getMiddlewareGroups()['web']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1340: public function testCanRemoveMiddlewareFromGroupUnregisteredGroup() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1340: public function testCanRemoveMiddlewareFromGroupUnregisteredGroup() - line 1342: $this->router->removeMiddlewareFromGroup('web', ['test-middleware']); - line 1344: $this->assertEquals([], $this->router->getMiddlewareGroups()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1347: public function testCanRegisterSingleton() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1347: public function testCanRegisterSingleton() - line 1349: $this->router->singleton('user', RouteRegistrarControllerStub::class); - line 1351: $this->assertCount(3, $this->router->getRoutes()); - line 1353: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.show')); - line 1354: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.edit')); - line 1355: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.update')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1358: public function testCanRegisterApiSingleton() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1358: public function testCanRegisterApiSingleton() - line 1360: $this->router->apiSingleton('user', RouteRegistrarControllerStub::class); - line 1362: $this->assertCount(2, $this->router->getRoutes()); - line 1364: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.show')); - line 1365: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.update')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1368: public function testCanRegisterCreatableSingleton() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1368: public function testCanRegisterCreatableSingleton() - line 1370: $this->router->singleton('user', RouteRegistrarControllerStub::class)->creatable(); - line 1372: $this->assertCount(6, $this->router->getRoutes()); - line 1374: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.create')); - line 1375: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.store')); - line 1376: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.show')); - line 1377: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.edit')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1382: public function testCanRegisterCreatableApiSingleton() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1382: public function testCanRegisterCreatableApiSingleton() - line 1384: $this->router->apiSingleton('user', RouteRegistrarControllerStub::class)->creatable(); - line 1386: $this->assertCount(4, $this->router->getRoutes()); - line 1388: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.store')); - line 1389: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.show')); - line 1390: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.update')); - line 1391: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.destroy')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1394: public function testSingletonCreatableNotDestroyable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1394: public function testSingletonCreatableNotDestroyable() - line 1396: $this->router->singleton('user', RouteRegistrarControllerStub::class) - line 1400: $this->assertCount(5, $this->router->getRoutes()); - line 1402: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.create')); - line 1403: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.store')); - line 1404: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.show')); - line 1405: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.edit')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1410: public function testApiSingletonCreatableNotDestroyable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1410: public function testApiSingletonCreatableNotDestroyable() - line 1412: $this->router->apiSingleton('user', RouteRegistrarControllerStub::class) - line 1416: $this->assertCount(3, $this->router->getRoutes()); - line 1418: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.store')); - line 1419: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.show')); - line 1420: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.update')); - line 1421: $this->assertFalse($this->router->getRoutes()->hasNamedRoute('user.destroy')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1424: public function testSingletonCanBeDestroyable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1424: public function testSingletonCanBeDestroyable() - line 1426: $this->router->singleton('user', RouteRegistrarControllerStub::class) - line 1429: $this->assertCount(4, $this->router->getRoutes()); - line 1431: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.show')); - line 1432: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.edit')); - line 1433: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.update')); - line 1434: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.destroy')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1437: public function testApiSingletonCanBeDestroyable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1437: public function testApiSingletonCanBeDestroyable() - line 1439: $this->router->apiSingleton('user', RouteRegistrarControllerStub::class) - line 1442: $this->assertCount(3, $this->router->getRoutes()); - line 1444: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.show')); - line 1445: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.update')); - line 1446: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.destroy')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1449: public function testSingletonCanBeOnlyCreatable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1449: public function testSingletonCanBeOnlyCreatable() - line 1451: $this->router->singleton('user', RouteRegistrarControllerStub::class) - line 1455: $this->assertCount(2, $this->router->getRoutes()); - line 1457: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.create')); - line 1458: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.store')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1461: public function testApiSingletonCanBeOnlyCreatable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1461: public function testApiSingletonCanBeOnlyCreatable() - line 1463: $this->router->apiSingleton('user', RouteRegistrarControllerStub::class) - line 1467: $this->assertCount(1, $this->router->getRoutes()); - line 1469: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.store')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1472: public function testSingletonDoesntAllowIncludingUnsupportedMethods() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1472: public function testSingletonDoesntAllowIncludingUnsupportedMethods() - line 1474: $this->router->singleton('post', RouteRegistrarControllerStub::class) - line 1477: $this->assertCount(0, $this->router->getRoutes()); - line 1479: $this->router->apiSingleton('user', RouteRegistrarControllerStub::class) - line 1482: $this->assertCount(0, $this->router->getRoutes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1485: public function testApiSingletonCanIncludeAnySingletonMethods() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1485: public function testApiSingletonCanIncludeAnySingletonMethods() - line 1488: $this->router->apiSingleton('user', RouteRegistrarControllerStub::class) - line 1491: $this->assertCount(1, $this->router->getRoutes()); - line 1493: $this->assertTrue($this->router->getRoutes()->hasNamedRoute('user.edit')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1496: public function testCanSetMiddlewareForSpecifiedMethodsOnRegisteredSingletonResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 1496: public function testCanSetMiddlewareForSpecifiedMethodsOnRegisteredSingletonResource() - line 1498: $this->router->singleton('users', RouteRegistrarControllerStub::class) - line 1505: $this->router->getRoutes()->refreshNameLookups(); - line 1507: $this->assertEquals($this->router->getRoutes()->getByName('users.create')->gatherMiddleware(), ['default', 'one']); - line 1508: $this->assertEquals($this->router->getRoutes()->getByName('users.store')->gatherMiddleware(), ['default', 'one']); - line 1509: $this->assertEquals($this->router->getRoutes()->getByName('users.show')->gatherMiddleware(), ['default', RouteRegistrarMiddlewareStub::class]); - line 1510: $this->assertEquals($this->router->getRoutes()->getByName('users.edit')->gatherMiddleware(), ['default', 'one', 'two']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1531: public function testCanSetExcludedMiddlewareForSpecifiedMethodsOnRegisteredSingletonResource() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 1531: public function testCanSetExcludedMiddlewareForSpecifiedMethodsOnRegisteredSingletonResource() - line 1533: $this->router->singleton('users', RouteRegistrarControllerStub::class) - line 1541: $this->assertEquals($this->router->getRoutes()->getByName('users.create')->excludedMiddleware(), ['one', 'three']); - line 1542: $this->assertEquals($this->router->getRoutes()->getByName('users.store')->excludedMiddleware(), ['one', 'three']); - line 1543: $this->assertEquals($this->router->getRoutes()->getByName('users.show')->excludedMiddleware(), ['one', 'two']); - line 1544: $this->assertEquals($this->router->getRoutes()->getByName('users.edit')->excludedMiddleware(), ['one', 'four', 'five']); - line 1545: $this->assertEquals($this->router->getRoutes()->getByName('users.update')->excludedMiddleware(), ['one']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Routing/RouteSignatureParametersTest.php - Test @ line 13: public function test_it_can_extract_the_route_action_signature_parameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 13: public function test_it_can_extract_the_route_action_signature_parameters() - line 23: $parameters = RouteSignatureParameters::fromAction($action); - line 26: $this->assertSame('user', $parameters[0]->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Routing/RoutingRedirectorTest.php - Test @ line 54: public function testBasicRedirectTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 54: public function testBasicRedirectTo() - line 56: $response = $this->redirect->to('bar'); - line 59: $this->assertSame('http://foo.com/bar', $response->getTargetUrl()); - line 60: $this->assertEquals(302, $response->getStatusCode()); - line 61: $this->assertEquals($this->session, $response->getSession()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 64: public function testComplexRedirectTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 64: public function testComplexRedirectTo() - line 66: $response = $this->redirect->to('bar', 303, ['X-RateLimit-Limit' => 60, 'X-RateLimit-Remaining' => 59], true); - line 68: $this->assertSame('https://foo.com/bar', $response->getTargetUrl()); - line 69: $this->assertEquals(303, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 74: public function testGuestPutCurrentUrlInSession() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 74: public function testGuestPutCurrentUrlInSession() - line 79: $response = $this->redirect->guest('login'); - line 81: $this->assertSame('http://foo.com/login', $response->getTargetUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 84: public function testGuestPutPreviousUrlInSession() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 84: public function testGuestPutPreviousUrlInSession() - line 90: $response = $this->redirect->guest('login'); - line 92: $this->assertSame('http://foo.com/login', $response->getTargetUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 95: public function testIntendedRedirectToIntendedUrlInSession() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 95: public function testIntendedRedirectToIntendedUrlInSession() - line 99: $response = $this->redirect->intended(); - line 101: $this->assertSame('http://foo.com/bar', $response->getTargetUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 104: public function testIntendedWithoutIntendedUrlInSession() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 104: public function testIntendedWithoutIntendedUrlInSession() - line 110: $response = $this->redirect->intended(); - line 111: $this->assertSame('http://foo.com/', $response->getTargetUrl()); - line 115: $response = $this->redirect->intended('bar'); - line 116: $this->assertSame('http://foo.com/bar', $response->getTargetUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 119: public function testRefreshRedirectToCurrentUrl() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 119: public function testRefreshRedirectToCurrentUrl() - line 122: $response = $this->redirect->refresh(); - line 123: $this->assertSame('http://foo.com/bar', $response->getTargetUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 126: public function testBackRedirectToHttpReferer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 126: public function testBackRedirectToHttpReferer() - line 130: $response = $this->redirect->back(); - line 131: $this->assertSame('http://foo.com/bar', $response->getTargetUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 134: public function testAwayDoesntValidateTheUrl() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 134: public function testAwayDoesntValidateTheUrl() - line 136: $response = $this->redirect->away('bar'); - line 137: $this->assertSame('bar', $response->getTargetUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 140: public function testSecureRedirectToHttpsUrl() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 140: public function testSecureRedirectToHttpsUrl() - line 142: $response = $this->redirect->secure('bar'); - line 143: $this->assertSame('https://foo.com/bar', $response->getTargetUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 146: public function testAction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 146: public function testAction() - line 149: $response = $this->redirect->action('bar@index'); - line 150: $this->assertSame('http://foo.com/bar', $response->getTargetUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 153: public function testRoute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 153: public function testRoute() - line 158: $response = $this->redirect->route('home'); - line 159: $this->assertSame('http://foo.com/bar', $response->getTargetUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 162: public function testSignedRoute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 162: public function testSignedRoute() - line 166: $response = $this->redirect->signedRoute('home'); - line 167: $this->assertSame('http://foo.com/bar?signature=secret', $response->getTargetUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 170: public function testTemporarySignedRoute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 170: public function testTemporarySignedRoute() - line 174: $response = $this->redirect->temporarySignedRoute('home', 10); - line 175: $this->assertSame('http://foo.com/bar?signature=secret', $response->getTargetUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 178: public function testItSetsAndGetsValidIntendedUrl() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 178: public function testItSetsAndGetsValidIntendedUrl() - line 183: $result = $this->redirect->setIntendedUrl('http://foo.com/bar'); - line 186: $this->assertSame('http://foo.com/bar', $this->redirect->getIntendedUrl()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Routing/RoutingRouteTest.php - Test @ line 52: public function testBasicDispatchingOfRoutes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 50. Evidence: - line 52: public function testBasicDispatchingOfRoutes() - line 54: $router = $this->getRouter(); - line 57: }); - line 60: $router = $this->getRouter(); - line 63: }); - line 66: $router = $this->getRouter(); - line 72: }]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 183: public function testNotModifiedResponseIsProperlyReturned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 183: public function testNotModifiedResponseIsProperlyReturned() - line 185: $router = $this->getRouter(); - line 187: return (new SymfonyResponse('test', 304, ['foo' => 'bar']))->setLastModified(new DateTime); - line 188: }); - line 191: $this->assertSame(304, $response->getStatusCode()); - line 192: $this->assertEmpty($response->getContent()); - line 194: $this->assertNull($response->getLastModified()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 197: public function testClosureMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 197: public function testClosureMiddleware() - line 199: $router = $this->getRouter(); - line 205: }]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 209: public function testMiddlewareCanBeSkipped() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 209: public function testMiddlewareCanBeSkipped() - line 211: $router = $this->getRouter(); - line 212: $router->aliasMiddleware('web', RoutingTestMiddlewareGroupTwo::class); - line 216: }])->withoutMiddleware(RoutingTestMiddlewareGroupTwo::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 221: public function testMiddlewareCanBeSkippedFromResources() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 221: public function testMiddlewareCanBeSkippedFromResources() - line 223: $router = $this->getRouter(); - line 224: $router->aliasMiddleware('web', RoutingTestMiddlewareGroupTwo::class); - line 226: $router->resource('foo', RouteTestControllerMiddlewareGroupStub::class) - line 228: ->withoutMiddleware(RoutingTestMiddlewareGroupTwo::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 233: public function testMiddlewareWorksIfControllerThrowsHttpResponseException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 233: public function testMiddlewareWorksIfControllerThrowsHttpResponseException() - line 236: $router = $this->getRouter(); - line 242: }]); - line 247: $router = $this->getRouter(); - line 254: return new Response($response->getContent().' caught'); - line 258: }]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 233: public function testMiddlewareWorksIfControllerThrowsHttpResponseException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 264: public function testReturnsResponseWhenMiddlewareReturnsResponsable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 264: public function testReturnsResponseWhenMiddlewareReturnsResponsable() - line 266: $router = $this->getRouter(); - line 271: $router->aliasMiddleware('foo', function ($request, $next) { - line 274: $router->aliasMiddleware('bar', function ($request, $next) { - line 277: $router->aliasMiddleware('baz', function ($request, $next) { - line 279: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 286: public function testDefinedClosureMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 286: public function testDefinedClosureMiddleware() - line 288: $router = $this->getRouter(); - line 292: $router->aliasMiddleware('foo', function ($request, $next) { - line 294: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 298: public function testControllerClosureMiddleware() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 298: public function testControllerClosureMiddleware() - line 300: $router = $this->getRouter(); - line 305: $router->aliasMiddleware('foo', function ($request, $next) { - line 309: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 317: public function testFluentRouting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 317: public function testFluentRouting() - line 319: $this->expectException(LogicException::class); - line 320: $this->expectExceptionMessage('Route for [foo/bar] has no action.'); - line 322: $router = $this->getRouter(); - line 323: $router->get('foo/bar')->uses(function () { - line 325: }); - line 327: $router->post('foo/bar')->uses(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 340: public function testFluentRoutingWithControllerAction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 340: public function testFluentRoutingWithControllerAction() - line 342: $router = $this->getRouter(); - line 343: $router->get('foo/bar')->uses(RouteTestControllerStub::class.'@index'); - line 346: $router = $this->getRouter(); - line 347: $router->group(['namespace' => 'App'], function ($router) { - line 350: $action = $router->getRoutes()->getRoutes()[0]->getAction(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 354: public function testMiddlewareGroups() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 354: public function testMiddlewareGroups() - line 357: $router = $this->getRouter(); - line 362: $router->aliasMiddleware('two', RoutingTestMiddlewareGroupTwo::class); - line 363: $router->middlewareGroup('web', [RoutingTestMiddlewareGroupOne::class, 'two:taylor']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 356: unset($_SERVER['__middleware.group']); - line 368: unset($_SERVER['__middleware.group']); - Test @ line 371: public function testMiddlewareGroupsCanReferenceOtherGroups() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 371: public function testMiddlewareGroupsCanReferenceOtherGroups() - line 374: $router = $this->getRouter(); - line 379: $router->aliasMiddleware('two', RoutingTestMiddlewareGroupTwo::class); - line 380: $router->middlewareGroup('first', ['two:abigail']); - line 381: $router->middlewareGroup('web', [RoutingTestMiddlewareGroupOne::class, 'first']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 373: unset($_SERVER['__middleware.group']); - line 386: unset($_SERVER['__middleware.group']); - Test @ line 389: public function testFluentRouteNamingWithinAGroup() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 389: public function testFluentRouteNamingWithinAGroup() - line 391: $router = $this->getRouter(); - line 392: $router->group(['as' => 'foo.'], function () use ($router) { - line 396: }); - line 398: $this->assertSame('foo.bar', $router->currentRouteName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 401: public function testRouteGetAction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 401: public function testRouteGetAction() - line 403: $router = $this->getRouter(); - line 407: })->name('foo'); - line 409: $this->assertIsArray($route->getAction()); - line 410: $this->assertArrayHasKey('as', $route->getAction()); - line 411: $this->assertSame('foo', $route->getAction('as')); - line 412: $this->assertNull($route->getAction('unknown_property')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 415: public function testRouteGetControllerClass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 415: public function testRouteGetControllerClass() - line 417: $router = $this->getRouter(); - line 419: $controllerRoute = $router->get('foo/bar')->uses(RouteTestControllerStub::class.'@index'); - line 424: $this->assertSame(RouteTestControllerStub::class, $controllerRoute->getControllerClass()); - line 425: $this->assertNull($closureRoute->getControllerClass()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 428: public function testResolvingBindingParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 428: public function testResolvingBindingParameters() - line 430: $router = $this->getRouter(); - line 434: })->name('foo'); - line 436: $this->assertSame('slug', $route->bindingFieldFor('bar')); - line 440: })->name('foo'); - line 442: $this->assertNull($route->bindingFieldFor('baz')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 445: public function testMacro() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 445: public function testMacro() - line 447: $router = $this->getRouter(); - line 448: $router->macro('webhook', function () use ($router) { - line 453: $router->webhook(); - line 454: $this->assertSame('OK', $router->dispatch(Request::create('webhook', 'GET'))->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 458: public function testRouteMacro() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 458: public function testRouteMacro() - line 460: $router = $this->getRouter(); - line 470: })->breadcrumb('fooBreadcrumb')->name('foo'); - line 472: $router->getRoutes()->refreshNameLookups(); - line 474: $this->assertSame('fooBreadcrumb', $router->getRoutes()->getByName('foo')->getAction()['breadcrumb']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 477: public function testClassesCanBeInjectedIntoRoutes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 477: public function testClassesCanBeInjectedIntoRoutes() - line 480: $router = $this->getRouter(); - line 485: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 482: $_SERVER['__test.route_inject'] = func_get_args(); - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 479: unset($_SERVER['__test.route_inject']); - line 491: unset($_SERVER['__test.route_inject']); - Test @ line 494: public function testNullValuesCanBeInjectedIntoRoutes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 494: public function testNullValuesCanBeInjectedIntoRoutes() - line 498: $container->instance(Registrar::class, $router); - line 500: $container->bind(RoutingTestUserModel::class, function () { - line 502: $container->bind(CallableDispatcherContract::class, fn ($app) => new CallableDispatcher($app)); - line 512: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 494: public function testNullValuesCanBeInjectedIntoRoutes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 516: public function testOptionsResponsesAreGeneratedByDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 516: public function testOptionsResponsesAreGeneratedByDefault() - line 518: $router = $this->getRouter(); - line 522: $router->post('foo/bar', function () { - line 524: }); - line 527: $this->assertEquals(200, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 531: public function testHeadDispatcher() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 531: public function testHeadDispatcher() - line 533: $router = $this->getRouter(); - line 534: $router->match(['GET', 'POST'], 'foo', function () { - line 536: }); - line 539: $this->assertEquals(200, $response->getStatusCode()); - line 540: $this->assertSame('GET,HEAD,POST', $response->headers->get('Allow')); - line 543: $this->assertEquals(200, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 565: public function testNonGreedyMatches() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 565: public function testNonGreedyMatches() - line 571: $request1 = Request::create('images/1.png', 'GET'); - line 572: $this->assertTrue($route->matches($request1)); - line 573: $route->bind($request1); - line 574: $this->assertTrue($route->hasParameter('id')); - line 575: $this->assertFalse($route->hasParameter('foo')); - line 576: $this->assertSame('1', (string) $route->parameter('id')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 596: public function testHasParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 596: public function testHasParameters() - line 601: $request1 = Request::create('images/1.png', 'GET'); - line 602: $this->assertFalse($route->hasParameters()); - line 603: $this->assertTrue($route->matches($request1)); - line 604: $route->bind($request1); - line 605: $this->assertTrue($route->hasParameters()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 608: public function testForgetParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 608: public function testForgetParameter() - line 613: $request1 = Request::create('images/1.png', 'GET'); - line 614: $route->bind($request1); - line 615: $this->assertTrue($route->hasParameter('id')); - line 616: $this->assertTrue($route->hasParameter('ext')); - line 617: $route->forgetParameter('id'); - line 618: $this->assertFalse($route->hasParameter('id')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 622: public function testParameterNames() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 622: public function testParameterNames() - line 627: $this->assertSame(['id', 'ext'], $route->parameterNames()); - line 632: $this->assertSame(['bar'], $route->parameterNames()); - line 637: $this->assertSame([], $route->parameterNames()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 640: public function testParametersWithoutNulls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 640: public function testParametersWithoutNulls() - line 645: $request1 = Request::create('users/12/amir', 'GET'); - line 646: $route->bind($request1); - line 647: $this->assertSame(['id' => '12', 'name' => 'amir'], $route->parametersWithoutNulls()); - line 653: $route->bind($request1); - line 654: $this->assertSame(['id' => '12'], $route->parametersWithoutNulls()); - line 660: $route->bind($request1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 664: public function testRouteParametersDefaultValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 664: public function testRouteParametersDefaultValue() - line 666: $router = $this->getRouter(); - line 667: $router->get('foo/{bar?}', ['uses' => RouteTestControllerWithParameterStub::class.'@returnParameter'])->defaults('bar', 'foo'); - line 670: $router->get('foo/{bar?}', ['uses' => RouteTestControllerWithParameterStub::class.'@returnParameter'])->defaults('bar', 'foo'); - line 675: })->defaults('bar', 'foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 679: public function testControllerCallActionMethodParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 679: public function testControllerCallActionMethodParameters() - line 681: $router = $this->getRouter(); - line 685: $router->get(($str = Str::random()).'/{one}/{two}', RouteTestAnotherControllerWithParameterStub::class.'@oneArgument'); - line 691: $router->get(($str = Str::random()).'/{one}/{two}', RouteTestAnotherControllerWithParameterStub::class.'@twoArguments'); - line 697: $router->get(($str = Str::random()).'/{one}/{two}', RouteTestAnotherControllerWithParameterStub::class.'@differentArgumentNames'); - line 703: $router->get(($str = Str::random()).'/{one}/{two}', RouteTestAnotherControllerWithParameterStub::class.'@reversedArguments'); - line 709: $router->get(($str = Str::random()).'', RouteTestAnotherControllerWithParameterStub::class.'@oneArgument'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 684: unset($_SERVER['__test.controller_callAction_parameters']); - line 690: unset($_SERVER['__test.controller_callAction_parameters']); - line 696: unset($_SERVER['__test.controller_callAction_parameters']); - line 702: unset($_SERVER['__test.controller_callAction_parameters']); - line 708: unset($_SERVER['__test.controller_callAction_parameters']); - line 714: unset($_SERVER['__test.controller_callAction_parameters']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 679: public function testControllerCallActionMethodParameters() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 729: public function testLeadingParamDoesntReceiveForwardSlashOnEmptyPath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 729: public function testLeadingParamDoesntReceiveForwardSlashOnEmptyPath() - line 731: $router = $this->getRouter(); - line 740: ]); - line 743: $this->assertNull($outer_one); - line 747: $this->assertSame('foo', $router->dispatch(Request::create('/foo', 'GET'))->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 751: public function testRoutesDontMatchNonMatchingPathsWithLeadingOptionals() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 751: public function testRoutesDontMatchNonMatchingPathsWithLeadingOptionals() - line 753: $this->expectException(NotFoundHttpException::class); - line 755: $router = $this->getRouter(); - line 758: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 762: public function testRoutesDontMatchNonMatchingDomain() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 762: public function testRoutesDontMatchNonMatchingDomain() - line 764: $this->expectException(NotFoundHttpException::class); - line 766: $router = $this->getRouter(); - line 769: }]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 773: public function testRouteDomainRegistration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 773: public function testRouteDomainRegistration() - line 775: $router = $this->getRouter(); - line 776: $router->get('/foo/bar')->domain('api.foo.bar')->uses(function () { - line 778: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 782: public function testMatchesMethodAgainstRequests() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 782: public function testMatchesMethodAgainstRequests() - line 785: $request = Request::create('foo/bar', 'GET'); - line 789: $this->assertTrue($route->matches($request)); - line 795: $this->assertFalse($route->matches($request)); - line 802: $this->assertTrue($route->matches($request)); - line 808: $this->assertFalse($route->matches($request)); - line 815: $this->assertTrue($route->matches($request)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 862: public function testWherePatternsProperlyFilter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 24. Evidence: - line 862: public function testWherePatternsProperlyFilter() - line 864: $request = Request::create('foo/123', 'GET'); - line 868: $route->where('bar', '[0-9]+'); - line 869: $this->assertTrue($route->matches($request)); - line 875: $route->where('bar', '[0-9]+'); - line 876: $this->assertFalse($route->matches($request)); - line 882: $route->where('bar', '[0-9]+'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 963: public function testDotDoesNotMatchEverything() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 963: public function testDotDoesNotMatchEverything() - line 969: $request1 = Request::create('images/1.png', 'GET'); - line 970: $this->assertTrue($route->matches($request1)); - line 971: $route->bind($request1); - line 972: $this->assertSame('1', (string) $route->parameter('id')); - line 973: $this->assertSame('png', $route->parameter('ext')); - line 976: $this->assertTrue($route->matches($request2)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 982: public function testRouteBinding() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 982: public function testRouteBinding() - line 984: $router = $this->getRouter(); - line 988: $router->bind('bar', function ($value) { - line 990: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 994: public function testRouteClassBinding() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 994: public function testRouteClassBinding() - line 996: $router = $this->getRouter(); - line 1000: $router->bind('bar', RouteBindingStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1004: public function testRouteClassMethodBinding() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1004: public function testRouteClassMethodBinding() - line 1006: $router = $this->getRouter(); - line 1010: $router->bind('bar', RouteBindingStub::class.'@find'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1014: public function testMiddlewarePrioritySorting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1014: public function testMiddlewarePrioritySorting() - line 1025: $router = $this->getRouter(); - line 1040: ], $router->gatherRouteMiddleware($route)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1043: public function testModelBinding() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1043: public function testModelBinding() - line 1045: $router = $this->getRouter(); - line 1049: $router->model('bar', RouteModelBindingStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1053: public function testModelBindingWithNullReturn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1053: public function testModelBindingWithNullReturn() - line 1055: $this->expectException(ModelNotFoundException::class); - line 1056: $this->expectExceptionMessage('No query results for model [Illuminate\Tests\Routing\RouteModelBindingNullStub].'); - line 1058: $router = $this->getRouter(); - line 1062: $router->model('bar', RouteModelBindingNullStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1053: public function testModelBindingWithNullReturn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1066: public function testModelBindingWithCustomNullReturn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1066: public function testModelBindingWithCustomNullReturn() - line 1068: $router = $this->getRouter(); - line 1072: $router->model('bar', RouteModelBindingNullStub::class, function () { - line 1074: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1078: public function testModelBindingWithBindingClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1078: public function testModelBindingWithBindingClosure() - line 1080: $router = $this->getRouter(); - line 1084: $router->model('bar', RouteModelBindingNullStub::class, function ($value) { - line 1086: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1090: public function testModelBindingWithCompoundParameterName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1090: public function testModelBindingWithCompoundParameterName() - line 1092: $router = $this->getRouter(); - line 1093: $router->resource('foo-bar', RouteTestResourceControllerWithModelParameter::class, ['middleware' => SubstituteBindings::class]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1097: public function testModelBindingWithCompoundParameterNameAndRouteBinding() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1097: public function testModelBindingWithCompoundParameterNameAndRouteBinding() - line 1099: $router = $this->getRouter(); - line 1100: $router->model('foo_bar', RoutingTestUserModel::class); - line 1101: $router->resource('foo-bar', RouteTestResourceControllerWithModelParameter::class, ['middleware' => SubstituteBindings::class]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1105: public function testModelBindingThroughIOC() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1105: public function testModelBindingThroughIOC() - line 1109: $container->instance(Registrar::class, $router); - line 1110: $container->bind(CallableDispatcherContract::class, fn ($app) => new CallableDispatcher($app)); - line 1111: $container->bind(RouteModelInterface::class, RouteModelBindingStub::class); - line 1115: $router->model('bar', RouteModelInterface::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1119: public function testRouteDependenciesCanBeResolvedThroughAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1119: public function testRouteDependenciesCanBeResolvedThroughAttributes() - line 1122: $container->singleton('config', fn () => new Repository([ - line 1128: $container->instance(Registrar::class, $router); - line 1129: $container->bind(CallableDispatcherContract::class, fn ($app) => new CallableDispatcher($app)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1119: public function testRouteDependenciesCanBeResolvedThroughAttributes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1140: public function testAfterResolvingAttributeCallbackIsCalledOnRouteDependenciesResolution() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1140: public function testAfterResolvingAttributeCallbackIsCalledOnRouteDependenciesResolution() - line 1144: $container->instance(Registrar::class, $router); - line 1145: $container->bind(CallableDispatcherContract::class, fn ($app) => new CallableDispatcher($app)); - line 1147: $container->afterResolvingAttribute(RoutingTestOnTenant::class, function (RoutingTestOnTenant $attribute, RoutingTestHasTenantImpl $hasTenantImpl, Container $container) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1140: public function testAfterResolvingAttributeCallbackIsCalledOnRouteDependenciesResolution() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1183: public function testRouteGrouping() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1183: public function testRouteGrouping() - line 1186: $router = $this->getRouter(); - line 1187: $router->group(['prefix' => 'foo'], function () use ($router) { - line 1192: $routes = $router->getRoutes(); - line 1193: $routes = $routes->getRoutes(); - line 1194: $this->assertSame('foo', $routes[0]->getPrefix()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1197: public function testRouteGroupingOutsideOfInheritedNamespace() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1197: public function testRouteGroupingOutsideOfInheritedNamespace() - line 1199: $router = $this->getRouter(); - line 1201: $router->group(['namespace' => 'App\Http\Controllers'], function ($router) { - line 1207: $routes = $router->getRoutes(); - line 1208: $routes = $routes->getRoutes(); - line 1212: $routes[0]->getAction()['uses'] Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1216: public function testCurrentRouteUses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 1216: public function testCurrentRouteUses() - line 1218: $router = $this->getRouter(); - line 1221: $this->assertNull($router->currentRouteAction()); - line 1224: $this->assertTrue($router->uses('*RouteTestControllerStub*')); - line 1225: $this->assertTrue($router->uses('*RouteTestControllerStub@index')); - line 1226: $this->assertTrue($router->uses(['*RouteTestControllerStub*', '*FooController*'])); - line 1227: $this->assertTrue($router->uses(['*BarController*', '*FooController*', '*RouteTestControllerStub@index'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1235: public function testRouteGroupingFromFile() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1235: public function testRouteGroupingFromFile() - line 1237: $router = $this->getRouter(); - line 1238: $router->group(['prefix' => 'api'], __DIR__.'/fixtures/routes.php'); - line 1240: $route = last($router->getRoutes()->get()); - line 1243: $this->assertTrue($route->matches($request)); - line 1244: $this->assertSame('all-users', $route->bind($request)->run($request)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1247: public function testRouteGroupingWithAs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1247: public function testRouteGroupingWithAs() - line 1249: $router = $this->getRouter(); - line 1250: $router->group(['prefix' => 'foo', 'as' => 'Foo::'], function () use ($router) { - line 1255: $routes = $router->getRoutes(); - line 1256: $route = $routes->getByName('Foo::bar'); - line 1257: $this->assertSame('foo/bar', $route->uri()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1260: public function testNestedRouteGroupingWithAs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 1260: public function testNestedRouteGroupingWithAs() - line 1263: $router = $this->getRouter(); - line 1264: $router->group(['prefix' => 'foo', 'as' => 'Foo::'], function () use ($router) { - line 1271: $routes = $router->getRoutes(); - line 1272: $route = $routes->getByName('Foo::Bar::baz'); - line 1273: $this->assertSame('foo/bar/baz', $route->uri()); - line 1276: $router = $this->getRouter(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1289: public function testNestedRouteGroupingPrefixing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1289: public function testNestedRouteGroupingPrefixing() - line 1292: $router = $this->getRouter(); - line 1293: $router->group(['prefix' => 'foo', 'as' => 'Foo::'], function () use ($router) { - line 1298: $routes = $router->getRoutes(); - line 1299: $route = $routes->getByName('Foo::baz'); - line 1300: $this->assertSame('bar/foo', $route->getAction('prefix')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1303: public function testRouteMiddlewareMergeWithMiddlewareAttributesAsStrings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1303: public function testRouteMiddlewareMergeWithMiddlewareAttributesAsStrings() - line 1305: $router = $this->getRouter(); - line 1306: $router->group(['prefix' => 'foo', 'middleware' => 'boo:foo'], function () use ($router) { - line 1311: $routes = $router->getRoutes()->getRoutes(); - line 1315: $route->middleware() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1319: public function testRoutePrefixing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 20. Evidence: - line 1319: public function testRoutePrefixing() - line 1322: $router = $this->getRouter(); - line 1326: $routes = $router->getRoutes(); - line 1327: $routes = $routes->getRoutes(); - line 1328: $routes[0]->prefix('prefix'); - line 1329: $this->assertSame('prefix/foo/bar', $routes[0]->uri()); - line 1332: $router = $this->getRouter(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1362: public function testRoutePreservingOriginalParametersState() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1362: public function testRoutePreservingOriginalParametersState() - line 1364: $router = $this->getRouter(); - line 1365: $router->bind('bar', function ($value) { - line 1371: $route = $router->getCurrentRoute(); - line 1379: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1384: public function testMergingControllerUses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 1384: public function testMergingControllerUses() - line 1386: $router = $this->getRouter(); - line 1387: $router->group(['namespace' => 'Namespace'], function () use ($router) { - line 1390: $routes = $router->getRoutes()->getRoutes(); - line 1391: $action = $routes[0]->getAction(); - line 1395: $router = $this->getRouter(); - line 1396: $router->group(['namespace' => 'Namespace'], function () use ($router) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1384: public function testMergingControllerUses() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1418: public function testInvalidActionException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1418: public function testInvalidActionException() - line 1420: $this->expectException(UnexpectedValueException::class); - line 1421: $this->expectExceptionMessage('Invalid route action: [Illuminate\Tests\Routing\RouteTestControllerStub].'); - line 1423: $router = $this->getRouter(); - line 1424: $router->get('/', ['uses' => RouteTestControllerStub::class]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1418: public function testInvalidActionException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1429: public function testShallowResourceRouting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 26. Evidence: - line 1429: public function testShallowResourceRouting() - line 1431: $router = $this->getRouter(); - line 1432: $router->resource('foo.bar', 'FooController', ['shallow' => true]); - line 1433: $routes = $router->getRoutes(); - line 1434: $routes = $routes->getRoutes(); - line 1436: $this->assertSame('foo/{foo}/bar', $routes[0]->uri()); - line 1437: $this->assertSame('foo/{foo}/bar/create', $routes[1]->uri()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1464: public function testResourceRouting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 33. Evidence: - line 1464: public function testResourceRouting() - line 1466: $router = $this->getRouter(); - line 1467: $router->resource('foo', 'FooController'); - line 1468: $routes = $router->getRoutes(); - line 1471: $router = $this->getRouter(); - line 1472: $router->resource('foo', 'FooController', ['only' => ['update']]); - line 1473: $routes = $router->getRoutes(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1523: public function testResourceRoutingParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 30. Evidence: - line 1523: public function testResourceRoutingParameters() - line 1525: ResourceRegistrar::singularParameters(); - line 1527: $router = $this->getRouter(); - line 1528: $router->resource('foos', 'FooController'); - line 1529: $router->resource('foos.bars', 'FooController'); - line 1530: $routes = $router->getRoutes(); - line 1531: $routes = $routes->getRoutes(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1572: public function testResourceRouteNaming() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 40. Evidence: - line 1572: public function testResourceRouteNaming() - line 1574: $router = $this->getRouter(); - line 1575: $router->resource('foo', 'FooController'); - line 1577: $this->assertTrue($router->getRoutes()->hasNamedRoute('foo.index')); - line 1578: $this->assertTrue($router->getRoutes()->hasNamedRoute('foo.show')); - line 1579: $this->assertTrue($router->getRoutes()->hasNamedRoute('foo.create')); - line 1580: $this->assertTrue($router->getRoutes()->hasNamedRoute('foo.store')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1628: public function testRouterFiresRoutedEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1628: public function testRouterFiresRoutedEvent() - line 1632: $container->instance(Registrar::class, $router); - line 1636: $container->bind(CallableDispatcherContract::class, fn ($app) => new CallableDispatcher($app)); - line 1646: $router->matched(function ($event) { - line 1651: $router->dispatchToRoute($request); - line 1658: $this->assertEquals($_SERVER['__router.route']->uri(), $route->uri()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 1643: $_SERVER['__router.request'] = null; - line 1644: $_SERVER['__router.route'] = null; - line 1647: $_SERVER['__router.request'] = $event->request; - line 1648: $_SERVER['__router.route'] = $event->route; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 1655: unset($_SERVER['__router.request']); - line 1659: unset($_SERVER['__router.route']); - Test @ line 1662: public function testRouterFiresRouteMatchingEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1662: public function testRouterFiresRouteMatchingEvent() - line 1666: $container->instance(Registrar::class, $router); - line 1667: $container->bind(CallableDispatcherContract::class, fn ($app) => new CallableDispatcher($app)); - line 1676: $events->listen(Routing::class, function ($event) { - line 1680: $router->dispatchToRoute($request); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 1674: $_SERVER['__router.request'] = null; - line 1677: $_SERVER['__router.request'] = $event->request; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 1684: unset($_SERVER['__router.request']); - Test @ line 1687: public function testRouterPatternSetting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1687: public function testRouterPatternSetting() - line 1689: $router = $this->getRouter(); - line 1690: $router->pattern('test', 'pattern'); - line 1691: $this->assertEquals(['test' => 'pattern'], $router->getPatterns()); - line 1693: $router = $this->getRouter(); - line 1694: $router->patterns(['test' => 'pattern', 'test2' => 'pattern2']); - line 1695: $this->assertEquals(['test' => 'pattern', 'test2' => 'pattern2'], $router->getPatterns()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1698: public function testControllerRouting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1698: public function testControllerRouting() - line 1706: $router = $this->getRouter(); - line 1708: $router->get('foo/bar', RouteTestControllerStub::class.'@index'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 1700: unset( - Test @ line 1718: public function testControllerRoutingArrayCallable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1718: public function testControllerRoutingArrayCallable() - line 1726: $router = $this->getRouter(); - line 1728: $router->get('foo/bar', [RouteTestControllerStub::class, 'index']); - line 1736: $action = $router->getRoutes()->getRoutes()[0]->getAction()['controller']; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 1720: unset( - Test @ line 1740: public function testCallableControllerRouting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1740: public function testCallableControllerRouting() - line 1742: $router = $this->getRouter(); - line 1745: $router->get('foo/baz', RouteTestControllerCallableStub::class.'@baz'); - line 1747: $this->assertSame('bar', $router->dispatch(Request::create('foo/bar', 'GET'))->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1751: public function testControllerMiddlewareGroups() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1751: public function testControllerMiddlewareGroups() - line 1758: $router = $this->getRouter(); - line 1760: $router->middlewareGroup('web', [ - line 1765: $router->get('foo/bar', RouteTestControllerMiddlewareGroupStub::class.'@index'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 1753: unset( - Test @ line 1772: public function testImplicitBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1772: public function testImplicitBindings() - line 1774: $router = $this->getRouter(); - line 1783: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1788: public function testImplicitBindingsWithClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1788: public function testImplicitBindingsWithClosure() - line 1790: $router = $this->getRouter(); - line 1792: $router->substituteImplicitBindingsUsing(function ($container, $route, $default) { - line 1804: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1809: public function testImplicitBindingsWhereScopedBindingsArePrevented() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1809: public function testImplicitBindingsWhereScopedBindingsArePrevented() - line 1811: $router = $this->getRouter(); - line 1821: ])->withoutScopedBindings(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1826: public function testParentChildImplicitBindings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1826: public function testParentChildImplicitBindings() - line 1828: $router = $this->getRouter(); - line 1838: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1843: public function testParentChildImplicitBindingsWhereOnlySomeParametersAreScoped() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1843: public function testParentChildImplicitBindingsWhereOnlySomeParametersAreScoped() - line 1845: $router = $this->getRouter(); - line 1857: ]); - line 1863: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1867: public function testApiResourceScopingWhenChildDoesNotBelongToParent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1867: public function testApiResourceScopingWhenChildDoesNotBelongToParent() - line 1869: ResourceRegistrar::singularParameters(); - line 1870: $router = $this->getRouter(); - line 1871: $router->apiResource( - line 1879: $this->expectException(ModelNotFoundException::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1867: public function testApiResourceScopingWhenChildDoesNotBelongToParent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1884: public function testParentChildImplicitBindingsProperlyCamelCased() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1884: public function testParentChildImplicitBindingsProperlyCamelCased() - line 1886: $router = $this->getRouter(); - line 1896: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1901: public function testImplicitBindingsWithOptionalParameterWithExistingKeyInUri() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1901: public function testImplicitBindingsWithOptionalParameterWithExistingKeyInUri() - line 1903: $router = $this->getRouter(); - line 1911: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1915: public function testOptionalBackedEnumsReturnNullWhenMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1915: public function testOptionalBackedEnumsReturnNullWhenMissing() - line 1917: $router = $this->getRouter(); - line 1925: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1915: public function testOptionalBackedEnumsReturnNullWhenMissing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1930: public function testImplicitBindingsWithMissingModelHandledByMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1930: public function testImplicitBindingsWithMissingModelHandledByMissing() - line 1932: $router = $this->getRouter(); - line 1938: return $bar->first(); - line 1944: $request = Request::create('foo/taylor', 'GET'); - line 1947: $this->assertTrue($response->isRedirect('/')); - line 1948: $this->assertEquals(302, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1951: public function testImplicitBindingsWithMissingModelHandledByMissingOnGroupLevel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1951: public function testImplicitBindingsWithMissingModelHandledByMissingOnGroupLevel() - line 1953: $router = $this->getRouter(); - line 1954: $router->as('foo.') - line 1967: $request = Request::create('foo/taylor', 'GET'); - line 1970: $this->assertTrue($response->isRedirect('/')); - line 1971: $this->assertEquals(302, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1974: public function testImplicitBindingsWithOptionalParameterWithNoKeyInUri() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1974: public function testImplicitBindingsWithOptionalParameterWithNoKeyInUri() - line 1976: $router = $this->getRouter(); - line 1982: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1974: public function testImplicitBindingsWithOptionalParameterWithNoKeyInUri() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1986: public function testImplicitBindingsWithOptionalParameterUsingEnumIsAlwaysCastedToEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1986: public function testImplicitBindingsWithOptionalParameterUsingEnumIsAlwaysCastedToEnum() - line 1990: $router = $this->getRouter(); - line 1996: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1986: public function testImplicitBindingsWithOptionalParameterUsingEnumIsAlwaysCastedToEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2000: public function testImplicitBindingsWithOptionalParameterWithNonExistingKeyInUri() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2000: public function testImplicitBindingsWithOptionalParameterWithNonExistingKeyInUri() - line 2002: $this->expectException(ModelNotFoundException::class); - line 2004: $router = $this->getRouter(); - line 2008: $this->fail('ModelNotFoundException was expected.'); - line 2010: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2000: public function testImplicitBindingsWithOptionalParameterWithNonExistingKeyInUri() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2014: public function testImplicitBindingThroughIOC() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2014: public function testImplicitBindingThroughIOC() - line 2018: $container->instance(Registrar::class, $router); - line 2019: $container->bind(CallableDispatcherContract::class, fn ($app) => new CallableDispatcher($app)); - line 2021: $container->bind(RoutingTestUserModel::class, RoutingTestExtendedUserModel::class); - line 2027: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2014: public function testImplicitBindingThroughIOC() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2031: public function testDispatchingCallableActionClasses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2031: public function testDispatchingCallableActionClasses() - line 2033: $router = $this->getRouter(); - line 2034: $router->get('foo/bar', ActionStub::class); - line 2040: ]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2045: public function testResponseIsReturned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2045: public function testResponseIsReturned() - line 2047: $router = $this->getRouter(); - line 2050: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2045: public function testResponseIsReturned() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2057: public function testJsonResponseIsReturned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2057: public function testJsonResponseIsReturned() - line 2059: $router = $this->getRouter(); - line 2062: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2057: public function testJsonResponseIsReturned() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2069: public function testRouteFlushController() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2069: public function testRouteFlushController() - line 2072: $router = $this->getRouter(); - line 2075: $request = Request::create('count', 'GET'); - line 2079: $this->assertSame(1, $response->original['middlewareInvokedCount']); - line 2085: $request->route()->flushController(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2069: public function testRouteFlushController() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2091: public function testRouteRedirect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 2091: public function testRouteRedirect() - line 2095: $container->instance(Registrar::class, $router); - line 2097: $container->instance(Request::class, $request); - line 2099: $container->instance(UrlGenerator::class, $urlGenerator); - line 2103: $router->redirect('contact_us', 'contact'); - line 2106: $this->assertTrue($response->isRedirect('contact')); - line 2107: $this->assertEquals(302, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2110: public function testRouteRedirectRetainsExistingStartingForwardSlash() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 2110: public function testRouteRedirectRetainsExistingStartingForwardSlash() - line 2114: $container->instance(Registrar::class, $router); - line 2116: $container->instance(Request::class, $request); - line 2118: $container->instance(UrlGenerator::class, $urlGenerator); - line 2122: $router->redirect('contact_us', '/contact'); - line 2125: $this->assertTrue($response->isRedirect('/contact')); - line 2126: $this->assertEquals(302, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2129: public function testRouteRedirectStripsMissingStartingForwardSlash() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 2129: public function testRouteRedirectStripsMissingStartingForwardSlash() - line 2133: $container->instance(Registrar::class, $router); - line 2135: $container->instance(Request::class, $request); - line 2137: $container->instance(UrlGenerator::class, $urlGenerator); - line 2141: $router->redirect('contact_us', 'contact'); - line 2144: $this->assertTrue($response->isRedirect('contact')); - line 2145: $this->assertEquals(302, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2148: public function testRouteRedirectExceptionWhenMissingExpectedParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 2148: public function testRouteRedirectExceptionWhenMissingExpectedParameters() - line 2150: $this->expectException(UrlGenerationException::class); - line 2151: $this->expectExceptionMessage('Missing required parameter for [Route: laravel_route_redirect_destination] [URI: users/{user}] [Missing parameter: user].'); - line 2155: $container->instance(Registrar::class, $router); - line 2157: $container->instance(Request::class, $request); - line 2159: $container->instance(UrlGenerator::class, $urlGenerator); - line 2163: $router->redirect('users', 'users/{user}'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2148: public function testRouteRedirectExceptionWhenMissingExpectedParameters() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2168: public function testRouteRedirectWithCustomStatus() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 2168: public function testRouteRedirectWithCustomStatus() - line 2172: $container->instance(Registrar::class, $router); - line 2174: $container->instance(Request::class, $request); - line 2176: $container->instance(UrlGenerator::class, $urlGenerator); - line 2180: $router->redirect('contact_us', 'contact', 301); - line 2183: $this->assertTrue($response->isRedirect('contact')); - line 2184: $this->assertEquals(301, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2187: public function testRoutePermanentRedirect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 2187: public function testRoutePermanentRedirect() - line 2191: $container->instance(Registrar::class, $router); - line 2193: $container->instance(Request::class, $request); - line 2195: $container->instance(UrlGenerator::class, $urlGenerator); - line 2199: $router->permanentRedirect('contact_us', 'contact'); - line 2202: $this->assertTrue($response->isRedirect('contact')); - line 2203: $this->assertEquals(301, $response->getStatusCode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2206: public function testRouteCanMiddlewareCanBeAssigned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 2206: public function testRouteCanMiddlewareCanBeAssigned() - line 2209: $route->middleware(['foo'])->can('create', Route::class); - line 2214: ], $route->middleware()); - line 2217: $route->can('create'); - line 2221: ], $route->middleware()); - line 2224: $route->can('create'); - line 2225: $route->can('update'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2233: public function testItDispatchesEventsWhilePreparingRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2233: public function testItDispatchesEventsWhilePreparingRequest() - line 2238: $events->listen(PreparingResponse::class, function ($event) use (&$preparing) { - line 2241: $events->listen(ResponsePrepared::class, function ($event) use (&$prepared) { - line 2245: $container->instance(Dispatcher::class, $events); - line 2246: $router = $this->getRouter($container); - line 2250: $request = Request::create('foo/bar', 'GET'); - line 2254: $this->assertSame('hello', $response->getContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2536: public function testTeams() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 2536: public function testTeams() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2536: public function testTeams() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Routing/RoutingSortedMiddlewareTest.php - Test @ line 10: public function testMiddlewareCanBeSortedByPriority() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 10: public function testMiddlewareCanBeSortedByPriority() - line 42: $this->assertEquals($expected, (new SortedMiddleware($priority, $middleware))->all()); - line 44: $this->assertEquals([], (new SortedMiddleware(['First'], []))->all()); - line 45: $this->assertEquals(['First'], (new SortedMiddleware(['First'], ['First']))->all()); - line 46: $this->assertEquals(['First', 'Second'], (new SortedMiddleware(['First', 'Second'], ['Second', 'First']))->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 49: public function testItDoesNotMoveNonStringValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 49: public function testItDoesNotMoveNonStringValues() - line 59: $this->assertEquals([2, 1], (new SortedMiddleware([1, 2], [2, 1]))->all()); - line 60: $this->assertEquals(['Second', $closure], (new SortedMiddleware(['First', 'Second'], ['Second', $closure]))->all()); - line 61: $this->assertEquals(['a', 'b', $closure], (new SortedMiddleware(['a', 'b'], ['b', $closure, 'a']))->all()); - line 62: $this->assertEquals([$closure2, 'a', 'b', $closure, 'foo'], (new SortedMiddleware(['a', 'b'], [$closure2, 'b', $closure, 'a', 'foo']))->all()); - line 63: $this->assertEquals([$closure, 'a', 'b', $closure2, 'foo'], (new SortedMiddleware(['a', 'b'], [$closure, 'b', $closure2, 'foo', 'a']))->all()); - line 64: $this->assertEquals(['a', $closure, 'b', $closure2, 'foo'], (new SortedMiddleware(['a', 'b'], ['a', $closure, 'b', $closure2, 'foo']))->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Routing/RoutingUrlGeneratorTest.php - Test @ line 22: public function testBasicGeneration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 22: public function testBasicGeneration() - line 26: Request::create('http://www.foo.com/') - line 29: $this->assertSame('http://www.foo.com/foo/bar', $url->to('foo/bar')); - line 30: $this->assertSame('https://www.foo.com/foo/bar', $url->to('foo/bar', [], true)); - line 31: $this->assertSame('https://www.foo.com/foo/bar/baz/boom', $url->to('foo/bar', ['baz', 'boom'], true)); - line 32: $this->assertSame('https://www.foo.com/foo/bar/baz?foo=bar', $url->to('foo/bar?foo=bar', ['baz'], true)); - line 40: $this->assertSame('https://www.foo.com/foo/bar', $url->to('foo/bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 43: public function testQueryGeneration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 43: public function testQueryGeneration() - line 47: Request::create('http://www.foo.com/') - line 50: $this->assertSame('http://www.foo.com/foo/bar', $url->query('foo/bar')); - line 51: $this->assertSame('http://www.foo.com/foo/bar?0=foo', $url->query('foo/bar', ['foo'])); - line 52: $this->assertSame('http://www.foo.com/foo/bar?baz=boom', $url->query('foo/bar', ['baz' => 'boom'])); - line 53: $this->assertSame('http://www.foo.com/foo/bar?baz=zee&zal=bee', $url->query('foo/bar?baz=boom&zal=bee', ['baz' => 'zee'])); - line 54: $this->assertSame('http://www.foo.com/foo/bar?zal=bee', $url->query('foo/bar?baz=boom&zal=bee', ['baz' => null])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 61: public function testAssetGeneration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 61: public function testAssetGeneration() - line 65: Request::create('http://www.foo.com/index.php/') - line 68: $this->assertSame('http://www.foo.com/foo/bar', $url->asset('foo/bar')); - line 69: $this->assertSame('https://www.foo.com/foo/bar', $url->asset('foo/bar', true)); - line 77: $this->assertSame('/foo/bar', $url->asset('foo/bar')); - line 78: $this->assertSame('/foo/bar', $url->asset('foo/bar', true)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 81: public function testBasicGenerationWithHostFormatting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 81: public function testBasicGenerationWithHostFormatting() - line 85: Request::create('http://www.foo.com/') - line 89: $routes->add($route); - line 91: $url->formatHostUsing(function ($host) { - line 95: $this->assertSame('http://www.foo.org/foo/bar', $url->to('foo/bar')); - line 96: $this->assertSame('/named-route', $url->route('plain', [], false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 99: public function testBasicGenerationWithRequestBaseUrlWithSubfolder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 99: public function testBasicGenerationWithRequestBaseUrlWithSubfolder() - line 101: $request = Request::create('http://www.foo.com/subfolder/foo/bar/subfolder/'); - line 112: $routes->add($route); - line 114: $this->assertSame('/subfolder', $request->getBaseUrl()); - line 115: $this->assertSame('/foo/bar/subfolder', $url->route('foobar', [], false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 118: public function testBasicGenerationWithRequestBaseUrlWithSubfolderAndFileSuffix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 118: public function testBasicGenerationWithRequestBaseUrlWithSubfolderAndFileSuffix() - line 120: $request = Request::create('http://www.foo.com/subfolder/index.php'); - line 131: $routes->add($route); - line 133: $this->assertSame('/subfolder', $request->getBasePath()); - line 134: $this->assertSame('/subfolder/index.php', $request->getBaseUrl()); - line 135: $this->assertSame('/foo/bar/subfolder', $url->route('foobar', [], false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 138: public function testBasicGenerationWithRequestBaseUrlWithFileSuffix() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 138: public function testBasicGenerationWithRequestBaseUrlWithFileSuffix() - line 140: $request = Request::create('http://www.foo.com/other.php'); - line 151: $routes->add($route); - line 153: $this->assertSame('', $request->getBasePath()); - line 154: $this->assertSame('/other.php', $request->getBaseUrl()); - line 155: $this->assertSame('/foo/bar/subfolder', $url->route('foobar', [], false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 158: public function testBasicGenerationWithPathFormatting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 158: public function testBasicGenerationWithPathFormatting() - line 162: Request::create('http://www.foo.com/') - line 166: $routes->add($route); - line 168: $url->formatPathUsing(function ($path) { - line 172: $this->assertSame('http://www.foo.com/something/foo/bar', $url->to('foo/bar')); - line 173: $this->assertSame('/something/named-route', $url->route('plain', [], false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 176: public function testUrlFormattersShouldReceiveTargetRoute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 176: public function testUrlFormattersShouldReceiveTargetRoute() - line 180: Request::create('http://abc.com/') - line 184: $routes->add($namedRoute); - line 186: $url->formatHostUsing(function ($root, $route) { - line 190: $url->formatPathUsing(function ($path, $route) { - line 194: $this->assertSame('http://abc.com/foo/bar', $url->to('foo/bar')); - line 195: $this->assertSame('http://bar.com/foo', $url->route('plain')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 198: public function testBasicRouteGeneration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 48. Evidence: - line 198: public function testBasicRouteGeneration() - line 202: Request::create('http://www.foo.com/') - line 207: $routes->add($route); - line 211: $routes->add($route); - line 215: $routes->add($route); - line 219: $routes->add($route); - line 223: $routes->add($route); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 291: public function testFluentRouteNameDefinitions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 291: public function testFluentRouteNameDefinitions() - line 295: Request::create('http://www.foo.com/') - line 300: $route->name('foo'); - line 301: $routes->add($route); - line 302: $routes->refreshNameLookups(); - line 304: $this->assertSame('http://www.foo.com/foo/bar', $url->route('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 307: public function testControllerRoutesWithADefaultNamespace() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 307: public function testControllerRoutesWithADefaultNamespace() - line 311: Request::create('http://www.foo.com/') - line 314: $url->setRootControllerNamespace('namespace'); - line 318: $routes->add($route); - line 321: $routes->add($route); - line 324: $routes->add($route); - line 326: $this->assertSame('http://www.foo.com/foo/bar', $url->action('foo@bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 331: public function testControllerRoutesOutsideOfDefaultNamespace() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 331: public function testControllerRoutesOutsideOfDefaultNamespace() - line 335: Request::create('http://www.foo.com/') - line 338: $url->setRootControllerNamespace('namespace'); - line 341: $routes->add($route); - line 344: $routes->add($route); - line 346: $this->assertSame('http://www.foo.com/root/namespace', $url->action('\root\namespace@foo')); - line 347: $this->assertSame('http://www.foo.com/invokable/namespace', $url->action('\root\namespace\InvokableActionStub')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 350: public function testRoutableInterfaceRouting() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 350: public function testRoutableInterfaceRouting() - line 354: Request::create('http://www.foo.com/') - line 358: $routes->add($route); - line 363: $this->assertSame('/foo/routable', $url->route('routable', [$model], false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 366: public function testRoutableInterfaceRoutingWithCustomBindingField() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 366: public function testRoutableInterfaceRoutingWithCustomBindingField() - line 370: Request::create('http://www.foo.com/') - line 374: $routes->add($route); - line 379: $this->assertSame('/foo/test-slug', $url->route('routable', ['bar' => $model], false)); - line 380: $this->assertSame('/foo/test-slug', $url->route('routable', [$model], false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 383: public function testRoutableInterfaceRoutingAsQueryString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 383: public function testRoutableInterfaceRoutingAsQueryString() - line 387: Request::create('http://www.foo.com/') - line 391: $routes->add($route); - line 396: $this->assertSame('/foo?routable', $url->route('query-string', $model, false)); - line 397: $this->assertSame('/foo?routable', $url->route('query-string', [$model], false)); - line 398: $this->assertSame('/foo?foo=routable', $url->route('query-string', ['foo' => $model], false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 401: public function testRoutableInterfaceRoutingWithSeparateBindingFieldOnlyForSecondParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 401: public function testRoutableInterfaceRoutingWithSeparateBindingFieldOnlyForSecondParameter() - line 405: Request::create('http://www.foo.com/') - line 409: $routes->add($route); - line 417: $this->assertSame('/foo/routable-1/test-slug', $url->route('routable', ['bar' => $model1, 'baz' => $model2], false)); - line 418: $this->assertSame('/foo/routable-1/test-slug', $url->route('routable', [$model1, $model2], false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 421: public function testRoutableInterfaceRoutingWithSingleParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 421: public function testRoutableInterfaceRoutingWithSingleParameter() - line 425: Request::create('http://www.foo.com/') - line 429: $routes->add($route); - line 434: $this->assertSame('/foo/routable', $url->route('routable', $model, false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 437: public function testRoutesMaintainRequestScheme() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 437: public function testRoutesMaintainRequestScheme() - line 441: Request::create('https://www.foo.com/') - line 446: $routes->add($route); - line 448: $this->assertSame('https://www.foo.com/foo/bar', $url->route('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 451: public function testHttpOnlyRoutes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 451: public function testHttpOnlyRoutes() - line 455: Request::create('https://www.foo.com/') - line 460: $routes->add($route); - line 462: $this->assertSame('http://www.foo.com/foo/bar', $url->route('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 465: public function testRoutesWithDomains() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 465: public function testRoutesWithDomains() - line 469: Request::create('http://www.foo.com/') - line 473: $routes->add($route); - line 477: $routes->add($route); - line 479: $this->assertSame('http://sub.foo.com/foo/bar', $url->route('foo')); - line 480: $this->assertSame('http://sub.taylor.com/foo/bar/otwell', $url->route('bar', ['taylor', 'otwell'])); - line 481: $this->assertSame('/foo/bar/otwell', $url->route('bar', ['taylor', 'otwell'], false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 484: public function testRoutesWithDomainsAndPorts() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 484: public function testRoutesWithDomainsAndPorts() - line 488: Request::create('http://www.foo.com:8080/') - line 492: $routes->add($route); - line 496: $routes->add($route); - line 498: $this->assertSame('http://sub.foo.com:8080/foo/bar', $url->route('foo')); - line 499: $this->assertSame('http://sub.taylor.com:8080/foo/bar/otwell', $url->route('bar', ['taylor', 'otwell'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 502: public function testRoutesWithDomainsStripsProtocols() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 502: public function testRoutesWithDomainsStripsProtocols() - line 507: Request::create('http://www.foo.com/') - line 511: $routes->add($route); - line 513: $this->assertSame('http://sub.foo.com/foo/bar', $url->route('foo')); - line 522: $routes->add($route); - line 524: $this->assertSame('https://sub.foo.com/foo/bar', $url->route('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 527: public function testHttpsRoutesWithDomains() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 527: public function testHttpsRoutesWithDomains() - line 531: Request::create('https://foo.com/') - line 536: $routes->add($route); - line 538: $this->assertSame('https://sub.foo.com/foo/bar', $url->route('baz')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 541: public function testRoutesWithDomainsThroughProxy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 541: public function testRoutesWithDomainsThroughProxy() - line 543: Request::setTrustedProxies(['10.0.0.1'], SymfonyRequest::HEADER_X_FORWARDED_FOR | SymfonyRequest::HEADER_X_FORWARDED_HOST | SymfonyRequest::HEADER_X_FORWARDED_PORT | SymfonyRequest::HEADER_X_FORWARDED_PROTO); - line 551: $routes->add($route); - line 553: $this->assertSame('http://sub.foo.com/foo/bar', $url->route('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 566: public function testUrlGenerationForControllersRequiresPassingOfRequiredParameters($parameters) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 566: public function testUrlGenerationForControllersRequiresPassingOfRequiredParameters($parameters) - line 568: $this->expectException(UrlGenerationException::class); - line 578: $routes->add($route); - line 580: $this->assertSame('http://www.foo.com:8080/foo?test=123', $url->route('foo', $parameters)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 618: public function testUrlGenerationThrowsExceptionForMissingParametersWithMeaningfulMessage($parameters, $expectedMeaningfulExceptionMessage) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 618: public function testUrlGenerationThrowsExceptionForMissingParametersWithMeaningfulMessage($parameters, $expectedMeaningfulExceptionMessage) - line 620: $this->expectException(UrlGenerationException::class); - line 621: $this->expectExceptionMessage($expectedMeaningfulExceptionMessage); - line 631: $routes->add($route); - line 633: $url->route('foo', $parameters); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 618: public function testUrlGenerationThrowsExceptionForMissingParametersWithMeaningfulMessage($parameters, $expectedMeaningfulExceptionMessage) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 636: public function testSetAssetUrl() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 636: public function testSetAssetUrl() - line 640: Request::create('http://www.foo.com/') - line 643: $url->useOrigin('https://www.bar.com'); - line 644: $this->assertSame('http://www.bar.com/foo/bar', $url->to('foo/bar')); - line 645: $this->assertSame('http://www.bar.com/foo/bar', $url->asset('foo/bar')); - line 647: $url->useAssetOrigin('https://www.foo.com'); - line 648: $this->assertNotSame('https://www.foo.com/foo/bar', $url->to('foo/bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 654: public function testUseRootUrl() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 654: public function testUseRootUrl() - line 658: Request::create('http://www.foo.com/') - line 661: $url->useOrigin('https://www.bar.com'); - line 662: $this->assertSame('http://www.bar.com/foo/bar', $url->to('foo/bar')); - line 665: $url->useOrigin('http://www.foo.com/'); - line 666: $this->assertSame('http://www.foo.com/bar', $url->to('/bar')); - line 674: $url->forceScheme('https'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 684: public function testForceHttps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 684: public function testForceHttps() - line 688: Request::create('http://www.foo.com/') - line 691: $url->forceHttps(); - line 693: $routes->add($route); - line 695: $this->assertSame('https://www.foo.com/foo', $url->route('plain')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 698: public function testPrevious() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 698: public function testPrevious() - line 702: Request::create('http://www.foo.com/') - line 705: $url->getRequest()->headers->set('referer', 'http://www.bar.com/'); - line 706: $this->assertSame('http://www.bar.com/', $url->previous()); - line 708: $url->getRequest()->headers->remove('referer'); - line 709: $this->assertEquals($url->to('/'), $url->previous()); - line 711: $this->assertEquals($url->to('/foo'), $url->previous('/foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 714: public function testPreviousPath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 714: public function testPreviousPath() - line 718: Request::create('http://www.foo.com/') - line 721: $url->getRequest()->headers->set('referer', 'http://www.foo.com?baz=bah'); - line 722: $this->assertSame('/', $url->previousPath()); - line 724: $url->getRequest()->headers->set('referer', 'http://www.foo.com/?baz=bah'); - line 725: $this->assertSame('/', $url->previousPath()); - line 727: $url->getRequest()->headers->set('referer', 'http://www.foo.com/bar?baz=bah'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 736: public function testRouteNotDefinedException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 736: public function testRouteNotDefinedException() - line 738: $this->expectException(RouteNotFoundException::class); - line 739: $this->expectExceptionMessage('Route [not_exists_route] not defined.'); - line 746: $url->route('not_exists_route'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 736: public function testRouteNotDefinedException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 749: public function testSignedUrl() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 749: public function testSignedUrl() - line 753: $request = Request::create('http://www.foo.com/') - line 755: $url->setKeyResolver(function () { - line 762: $routes->add($route); - line 764: $request = Request::create($url->signedRoute('foo')); - line 766: $this->assertTrue($url->hasValidSignature($request)); - line 768: $request = Request::create($url->signedRoute('foo').'?tampered=true'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 779: public function testSignedUrlImplicitModelBinding() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 779: public function testSignedUrlImplicitModelBinding() - line 783: $request = Request::create('http://www.foo.com/') - line 785: $url->setKeyResolver(function () { - line 792: $routes->add($route); - line 796: $request = Request::create($url->signedRoute('foo', $user)); - line 798: $this->assertTrue($url->hasValidSignature($request)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 801: public function testSignedRelativeUrl() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 801: public function testSignedRelativeUrl() - line 805: $request = Request::create('http://www.foo.com/') - line 807: $url->setKeyResolver(function () { - line 814: $routes->add($route); - line 816: $result = $url->signedRoute('foo', [], null, false); - line 820: $this->assertTrue($url->hasValidSignature($request, false)); - line 822: $request = Request::create($url->signedRoute('foo', [], null, false).'?tampered=true'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 827: public function testSignedUrlParameterCannotBeNamedSignature() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 827: public function testSignedUrlParameterCannotBeNamedSignature() - line 831: $request = Request::create('http://www.foo.com/') - line 833: $url->setKeyResolver(function () { - line 840: $routes->add($route); - line 842: $this->expectException(InvalidArgumentException::class); - line 843: $this->expectExceptionMessage('reserved'); - line 845: Request::create($url->signedRoute('foo', ['signature' => 'bar'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 827: public function testSignedUrlParameterCannotBeNamedSignature() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 848: public function testSignedUrlParameterCannotBeNamedExpires() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 848: public function testSignedUrlParameterCannotBeNamedExpires() - line 852: $request = Request::create('http://www.foo.com/') - line 854: $url->setKeyResolver(function () { - line 861: $routes->add($route); - line 863: $this->expectException(InvalidArgumentException::class); - line 864: $this->expectExceptionMessage('reserved'); - line 866: Request::create($url->signedRoute('foo', ['expires' => 253402300799])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 848: public function testSignedUrlParameterCannotBeNamedExpires() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 869: public function testRouteGenerationWithBackedEnums() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 869: public function testRouteGenerationWithBackedEnums() - line 873: Request::create('http://www.foo.com/') - line 877: $routes->add($namedRoute); - line 879: $this->assertSame('http://www.foo.com/foo/fruits', $url->route('foo.bar', CategoryBackedEnum::Fruits)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 882: public function testRouteGenerationWithNestedBackedEnums() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 882: public function testRouteGenerationWithNestedBackedEnums() - line 886: Request::create('http://www.foo.com/') - line 890: $routes->add($namedRoute); - line 894: $url->route('foo', ['filter' => [CategoryBackedEnum::People, CategoryBackedEnum::Fruits]]), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 898: public function testSignedUrlWithKeyResolver() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 898: public function testSignedUrlWithKeyResolver() - line 902: $request = Request::create('http://www.foo.com/') - line 904: $url->setKeyResolver(function () { - line 911: $routes->add($route); - line 913: $firstRequest = Request::create($url->signedRoute('foo')); - line 915: $this->assertTrue($url->hasValidSignature($firstRequest)); - line 917: $request = Request::create($url->signedRoute('foo').'?tampered=true'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 941: public function testMissingNamedRouteResolution() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 941: public function testMissingNamedRouteResolution() - line 945: Request::create('http://www.foo.com/') - line 948: $url->resolveMissingNamedRoutesUsing(fn ($name, $parameters, $absolute) => 'test-url'); - line 950: $this->assertSame('test-url', $url->route('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 953: public function testPassedParametersHavePrecedenceOverDefaults() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 953: public function testPassedParametersHavePrecedenceOverDefaults() - line 957: Request::create('https://www.foo.com/') - line 960: $url->defaults([ - line 965: $routes->add($route); - line 970: $url->route('bar', [ - line 979: $url->route('bar', [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 986: public function testComplexRouteGenerationWithDefaultsAndBindingFields() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 101. Evidence: - line 986: public function testComplexRouteGenerationWithDefaultsAndBindingFields() - line 990: Request::create('https://www.foo.com/') - line 993: $url->defaults([ - line 1011: $routes->add($route); - line 1016: $url->route('tenantPost', [$keyParam('concreteTenant'), $keyParam('concretePost')]), - line 1022: $url->route('tenantPost', ['tenant' => $keyParam('concreteTenant'), 'post' => $keyParam('concretePost')]), - line 1028: $url->route('tenantPost', [$keyParam('concretePost')]), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1644: public function testComplexRouteGenerationWithDefaultsAndMixedParameterSyntax() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 1644: public function testComplexRouteGenerationWithDefaultsAndMixedParameterSyntax() - line 1648: Request::create('https://www.foo.com/') - line 1651: $url->defaults([ - line 1660: $routes->add($route); - line 1666: $url->route('tenantPostUser', ['post' => 'concretePost', 'concreteUser']), - line 1673: $routes->add($route); - line 1678: $url->route('tenantPostCommentUser', ['post' => 'concretePost', 'concreteComment']), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1730: public function testDefaultsCanBeCombinedWithExtraQueryParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 17. Evidence: - line 1730: public function testDefaultsCanBeCombinedWithExtraQueryParameters() - line 1734: Request::create('https://www.foo.com/') - line 1737: $url->defaults([ - line 1749: $routes->add($route); - line 1754: $url->route('tenantPost', ['concreteTenant', 'concretePost', 'extraQuery']), - line 1760: $url->route('tenantPost', ['concreteTenant', 'concretePost', 'extraQuery', 'extra' => 'query']), - line 1766: $url->route('tenantPost', ['concretePost', 'extra' => 'query']), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Session/ArraySessionHandlerTest.php - Test @ line 19: public function test_it_implements_the_session_handler_interface() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 19: public function test_it_implements_the_session_handler_interface() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 19: public function test_it_implements_the_session_handler_interface() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 38: public function test_it_reads_data_from_the_session() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 38: public function test_it_reads_data_from_the_session() - line 42: $handler->write('foo', 'bar'); - line 44: $this->assertSame('bar', $handler->read('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 47: public function test_it_reads_data_from_an_almost_expired_session() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 47: public function test_it_reads_data_from_an_almost_expired_session() - line 52: $handler->write('foo', 'bar'); - line 54: Carbon::setTestNow(Carbon::now()->addMinutes(10)); - line 55: $this->assertSame('bar', $handler->read('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 58: public function test_it_reads_data_from_an_expired_session() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 58: public function test_it_reads_data_from_an_expired_session() - line 63: $handler->write('foo', 'bar'); - line 65: Carbon::setTestNow(Carbon::now()->addMinutes(10)->addSecond()); - line 66: $this->assertSame('', $handler->read('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 76: public function test_it_writes_session_data() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 76: public function test_it_writes_session_data() - line 80: $this->assertTrue($handler->write('foo', 'bar')); - line 81: $this->assertSame('bar', $handler->read('foo')); - line 83: $this->assertTrue($handler->write('foo', 'baz')); - line 84: $this->assertSame('baz', $handler->read('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 87: public function test_it_destroys_a_session() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 87: public function test_it_destroys_a_session() - line 91: $this->assertTrue($handler->destroy('foo')); - line 93: $handler->write('foo', 'bar'); - line 95: $this->assertTrue($handler->destroy('foo')); - line 96: $this->assertSame('', $handler->read('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 99: public function test_it_cleans_up_old_sessions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 99: public function test_it_cleans_up_old_sessions() - line 103: $this->assertSame(0, $handler->gc(300)); - line 106: $handler->write('foo', 'bar'); - line 107: $this->assertSame(0, $handler->gc(300)); - line 108: $this->assertSame('bar', $handler->read('foo')); - line 110: Carbon::setTestNow(Carbon::now()->addSecond()); - line 112: $handler->write('baz', 'qux'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Session/EncryptedSessionStoreTest.php - Test @ line 19: public function testSessionIsProperlyEncrypted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 19: public function testSessionIsProperlyEncrypted() - line 21: $session = $this->getSession(); - line 22: $session->getEncrypter()->shouldReceive('decrypt')->once()->with(serialize([]))->andReturn(serialize([])); - line 23: $session->getHandler()->shouldReceive('read')->once()->andReturn(serialize([])); - line 24: $session->start(); - line 25: $session->put('foo', 'bar'); - line 26: $session->flash('baz', 'boom'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Session/FileSessionHandlerTest.php - Test @ line 43: public function test_read_returns_data_when_file_exists_and_is_valid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 43: public function test_read_returns_data_when_file_exists_and_is_valid() - line 51: $minutesAgo30 = Carbon::parse('2025-02-02 01:00:00')->getTimestamp(); - line 55: $result = $this->sessionHandler->read($sessionId); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 43: public function test_read_returns_data_when_file_exists_and_is_valid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 60: public function test_read_returns_data_when_file_exists_but_expired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 60: public function test_read_returns_data_when_file_exists_but_expired() - line 68: $minutesAgo30 = Carbon::parse('2025-02-02 01:00:00')->getTimestamp(); - line 70: $this->files->shouldReceive('sharedGet')->never(); - line 72: $result = $this->sessionHandler->read($sessionId); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 60: public function test_read_returns_data_when_file_exists_but_expired() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 115: public function test_gc_deletes_old_session_files() Violations: - [FORBIDDEN_UNGUARDED_UNLINK] Evidence: - line 132: unlink(__DIR__.'/tmp/a1'); - line 133: unlink(__DIR__.'/tmp/a2'); - line 134: unlink(__DIR__.'/tmp/a3'); ❌ tests/Session/Middleware/AuthenticateSessionTest.php - Test @ line 21: public function test_handle_without_session() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 21: public function test_handle_without_session() - line 27: $authFactory->shouldReceive('viaRemember')->never(); - line 29: $middleware = new AuthenticateSession($authFactory); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 26: $authFactory = Mockery::mock(AuthFactory::class); - Test @ line 34: public function test_handle_with_session_without_request_user() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 34: public function test_handle_with_session_without_request_user() - line 39: $request->setLaravelSession(new Store('name', new ArraySessionHandler(1))); - line 42: $authFactory->shouldReceive('viaRemember')->never(); - line 45: $middleware = new AuthenticateSession($authFactory); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 41: $authFactory = Mockery::mock(AuthFactory::class); - Test @ line 50: public function test_handle_with_session_without_auth_password() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 50: public function test_handle_with_session_without_auth_password() - line 63: $request->setLaravelSession(new Store('name', new ArraySessionHandler(1))); - line 65: $request->setUserResolver(fn () => $user); - line 68: $authFactory->shouldReceive('viaRemember')->never(); - line 71: $middleware = new AuthenticateSession($authFactory); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 67: $authFactory = Mockery::mock(AuthFactory::class); - Test @ line 77: public function test_handle_with_session_with_user_auth_password_on_request_via_remember_false() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 77: public function test_handle_with_session_with_user_auth_password_on_request_via_remember_false() - line 88: $request->setUserResolver(fn () => $user); - line 91: $request->setLaravelSession($session); - line 98: $middleware = new AuthenticateSession($authFactory); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 93: $authFactory = Mockery::mock(AuthFactory::class); - Test @ line 105: public function test_handle_with_invalid_password_hash() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 105: public function test_handle_with_invalid_password_hash() - line 116: $request->setUserResolver(fn () => $user); - line 119: $session->put('a', '1'); - line 120: $session->put('b', '2'); - line 122: $request->setLaravelSession($session); - line 138: $message = ''; - line 142: $message = $e->getMessage(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 124: $authFactory = Mockery::mock(AuthFactory::class); - Test @ line 152: public function test_handle_with_invalid_incookie_password_hash_via_remember_true() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 152: public function test_handle_with_invalid_incookie_password_hash_via_remember_true() - line 163: $request->setUserResolver(fn () => $user); - line 166: $session->put('a', '1'); - line 167: $session->put('b', '2'); - line 169: $request->setLaravelSession($session); - line 181: $message = ''; - line 184: $message = $e->getMessage(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 171: $authFactory = Mockery::mock(AuthFactory::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 152: public function test_handle_with_invalid_incookie_password_hash_via_remember_true() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 194: public function test_handle_with_valid_incookie_invalid_insession_hash_via_remember_true() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 194: public function test_handle_with_valid_incookie_invalid_insession_hash_via_remember_true() - line 205: $request->setUserResolver(fn () => $user); - line 208: $session->put('a', '1'); - line 209: $session->put('b', '2'); - line 210: $session->put('password_hash_web', 'invalid-password'); - line 212: $request->setLaravelSession($session); - line 224: $message = ''; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 214: $authFactory = Mockery::mock(AuthFactory::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 194: public function test_handle_with_valid_incookie_invalid_insession_hash_via_remember_true() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 237: public function test_handle_with_valid_password_in_session_cookie_is_empty_guard_has_user() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 237: public function test_handle_with_valid_password_in_session_cookie_is_empty_guard_has_user() - line 248: $request->setUserResolver(fn () => $user); - line 251: $session->put('a', '1'); - line 252: $session->put('b', '2'); - line 253: $session->put('password_hash_web', 'my-pass-(*&^%$#!@'); - line 255: $request->setLaravelSession($session); - line 259: $authFactory->shouldReceive('getRecallerName')->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 257: $authFactory = Mockery::mock(AuthFactory::class); ❌ tests/Session/SessionStoreTest.php - Test @ line 24: public function testSessionIsLoadedFromHandler() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 24: public function testSessionIsLoadedFromHandler() - line 26: $session = $this->getSession(); - line 27: $session->getHandler()->shouldReceive('read')->once()->with($this->getSessionId())->andReturn(serialize(['foo' => 'bar', 'bagged' => ['name' => 'taylor'], '123' => 'bax'])); - line 28: $session->start(); - line 33: $this->assertTrue($session->has('foo')); - line 34: $this->assertTrue($session->has('123')); - line 35: $this->assertFalse($session->has('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 42: public function testSessionMigration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 42: public function testSessionMigration() - line 44: $session = $this->getSession(); - line 45: $oldId = $session->getId(); - line 46: $session->getHandler()->shouldReceive('destroy')->never(); - line 47: $this->assertTrue($session->migrate()); - line 48: $this->assertNotEquals($oldId, $session->getId()); - line 50: $session = $this->getSession(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 57: public function testSessionRegeneration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 57: public function testSessionRegeneration() - line 59: $session = $this->getSession(); - line 60: $oldId = $session->getId(); - line 61: $session->getHandler()->shouldReceive('destroy')->never(); - line 62: $this->assertTrue($session->regenerate()); - line 63: $this->assertNotEquals($oldId, $session->getId()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 66: public function testCantSetInvalidId() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 66: public function testCantSetInvalidId() - line 68: $session = $this->getSession(); - line 69: $this->assertTrue($session->isValidId($session->getId())); - line 71: $session->setId(null); - line 72: $this->assertNotNull($session->getId()); - line 73: $this->assertTrue($session->isValidId($session->getId())); - line 75: $session->setId(['a']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 82: public function testSessionInvalidate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 82: public function testSessionInvalidate() - line 84: $session = $this->getSession(); - line 85: $oldId = $session->getId(); - line 87: $session->put('foo', 'bar'); - line 88: $this->assertGreaterThan(0, count($session->all())); - line 90: $session->flash('name', 'Taylor'); - line 91: $this->assertTrue($session->has('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 101: public function testBrandNewSessionIsProperlySaved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 101: public function testBrandNewSessionIsProperlySaved() - line 103: $session = $this->getSession(); - line 104: $session->getHandler()->shouldReceive('read')->once()->andReturn(serialize([])); - line 105: $session->start(); - line 106: $session->put('foo', 'bar'); - line 107: $session->flash('baz', 'boom'); - line 108: $session->now('qux', 'norf'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 126: public function testSessionIsProperlyUpdated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 126: public function testSessionIsProperlyUpdated() - line 128: $session = $this->getSession(); - line 129: $session->getHandler()->shouldReceive('read')->once()->andReturn(serialize([ - line 138: $session->start(); - line 140: $session->getHandler()->shouldReceive('write')->once()->with( - line 152: $session->save(); - line 154: $this->assertFalse($session->isStarted()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 157: public function testSessionIsReSavedWhenNothingHasChanged() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 157: public function testSessionIsReSavedWhenNothingHasChanged() - line 159: $session = $this->getSession(); - line 160: $session->getHandler()->shouldReceive('read')->once()->andReturn(serialize([ - line 169: $session->start(); - line 171: $session->getHandler()->shouldReceive('write')->once()->with( - line 184: $session->save(); - line 186: $this->assertFalse($session->isStarted()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 189: public function testSessionIsReSavedWhenNothingHasChangedExceptSessionId() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 189: public function testSessionIsReSavedWhenNothingHasChangedExceptSessionId() - line 191: $session = $this->getSession(); - line 192: $oldId = $session->getId(); - line 194: $session->getHandler()->shouldReceive('read')->once()->with($oldId)->andReturn(serialize([ - line 203: $session->start(); - line 205: $oldId = $session->getId(); - line 206: $session->migrate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 229: public function testOldInputFlashing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 229: public function testOldInputFlashing() - line 231: $session = $this->getSession(); - line 232: $session->put('boom', 'baz'); - line 233: $session->flashInput(['foo' => 'bar', 'bar' => 0, 'name' => null]); - line 235: $this->assertTrue($session->hasOldInput('foo')); - line 236: $this->assertSame('bar', $session->getOldInput('foo')); - line 237: $this->assertEquals(0, $session->getOldInput('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 251: public function testDataFlashing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 251: public function testDataFlashing() - line 253: $session = $this->getSession(); - line 254: $session->flash('foo', 'bar'); - line 255: $session->flash('bar', 0); - line 256: $session->flash('baz'); - line 258: $this->assertTrue($session->has('foo')); - line 263: $session->ageFlashData(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 275: public function testDataFlashingNow() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 275: public function testDataFlashingNow() - line 277: $session = $this->getSession(); - line 278: $session->now('foo', 'bar'); - line 279: $session->now('bar', 0); - line 281: $this->assertTrue($session->has('foo')); - line 285: $session->ageFlashData(); - line 287: $this->assertFalse($session->has('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 291: public function testDataMergeNewFlashes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 291: public function testDataMergeNewFlashes() - line 293: $session = $this->getSession(); - line 294: $session->flash('foo', 'bar'); - line 295: $session->put('fu', 'baz'); - line 296: $session->put('_flash.old', ['qu']); - line 299: $session->keep(['fu', 'qu']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 306: public function testReflash() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 306: public function testReflash() - line 308: $session = $this->getSession(); - line 309: $session->flash('foo', 'bar'); - line 310: $session->put('_flash.old', ['foo']); - line 311: $session->reflash(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 316: public function testReflashWithNow() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 316: public function testReflashWithNow() - line 318: $session = $this->getSession(); - line 319: $session->now('foo', 'bar'); - line 320: $session->reflash(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 325: public function testOnly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 325: public function testOnly() - line 327: $session = $this->getSession(); - line 328: $session->put('foo', 'bar'); - line 329: $session->put('qu', 'ux'); - line 330: $this->assertEquals(['foo' => 'bar', 'qu' => 'ux'], $session->all()); - line 331: $this->assertEquals(['qu' => 'ux'], $session->only(['qu'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 334: public function testExcept() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 334: public function testExcept() - line 336: $session = $this->getSession(); - line 337: $session->put('foo', 'bar'); - line 338: $session->put('bar', 'baz'); - line 339: $session->put('qu', 'ux'); - line 341: $this->assertEquals(['foo' => 'bar', 'qu' => 'ux', 'bar' => 'baz'], $session->all()); - line 342: $this->assertEquals(['bar' => 'baz', 'qu' => 'ux'], $session->except(['foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 345: public function testReplace() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 345: public function testReplace() - line 347: $session = $this->getSession(); - line 348: $session->put('foo', 'bar'); - line 349: $session->put('qu', 'ux'); - line 350: $session->replace(['foo' => 'baz']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 355: public function testRemove() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 355: public function testRemove() - line 357: $session = $this->getSession(); - line 358: $session->put('foo', 'bar'); - line 359: $pulled = $session->remove('foo'); - line 360: $this->assertFalse($session->has('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 364: public function testClear() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 364: public function testClear() - line 366: $session = $this->getSession(); - line 367: $session->put('foo', 'bar'); - line 369: $session->flush(); - line 370: $this->assertFalse($session->has('foo')); - line 372: $session->put('foo', 'bar'); - line 374: $session->flush(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 378: public function testIncrement() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 378: public function testIncrement() - line 380: $session = $this->getSession(); - line 382: $session->put('foo', 5); - line 383: $foo = $session->increment('foo'); - line 387: $foo = $session->increment('foo', 4); - line 391: $session->increment('bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 395: public function testDecrement() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 395: public function testDecrement() - line 397: $session = $this->getSession(); - line 399: $session->put('foo', 5); - line 400: $foo = $session->decrement('foo'); - line 404: $foo = $session->decrement('foo', 4); - line 408: $session->decrement('bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 412: public function testHasOldInputWithoutKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 412: public function testHasOldInputWithoutKey() - line 414: $session = $this->getSession(); - line 415: $session->flash('boom', 'baz'); - line 416: $this->assertFalse($session->hasOldInput()); - line 418: $session->flashInput(['foo' => 'bar']); - line 419: $this->assertTrue($session->hasOldInput()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 422: public function testHandlerNeedsRequest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 422: public function testHandlerNeedsRequest() - line 424: $session = $this->getSession(); - line 425: $this->assertFalse($session->handlerNeedsRequest()); - line 426: $session->getHandler()->shouldReceive('setRequest')->never(); - line 429: $this->assertTrue($session->handlerNeedsRequest()); - line 430: $session->getHandler()->shouldReceive('setRequest')->once(); - line 432: $session->setRequestOnHandler($request); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 435: public function testToken() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 435: public function testToken() - line 437: $session = $this->getSession(); - line 438: $this->assertEquals($session->token(), $session->token()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 441: public function testRegenerateToken() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 441: public function testRegenerateToken() - line 443: $session = $this->getSession(); - line 444: $token = $session->token(); - line 445: $session->regenerateToken(); - line 446: $this->assertNotEquals($token, $session->token()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 449: public function testName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 449: public function testName() - line 451: $session = $this->getSession(); - line 452: $this->assertEquals($session->getName(), $this->getSessionName()); - line 453: $session->setName('foo'); - line 454: $this->assertSame('foo', $session->getName()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 457: public function testForget() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 457: public function testForget() - line 459: $session = $this->getSession(); - line 460: $session->put('foo', 'bar'); - line 461: $this->assertTrue($session->has('foo')); - line 462: $session->forget('foo'); - line 463: $this->assertFalse($session->has('foo')); - line 465: $session->put('foo', 'bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 472: public function testSetPreviousUrl() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 472: public function testSetPreviousUrl() - line 474: $session = $this->getSession(); - line 475: $session->setPreviousUrl('https://example.com/foo/bar'); - line 477: $this->assertTrue($session->has('_previous.url')); - line 480: $url = $session->previousUrl(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 484: public function testPasswordConfirmed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 484: public function testPasswordConfirmed() - line 486: $session = $this->getSession(); - line 487: $this->assertFalse($session->has('auth.password_confirmed_at')); - line 488: $session->passwordConfirmed(); - line 489: $this->assertTrue($session->has('auth.password_confirmed_at')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 492: public function testKeyPush() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 492: public function testKeyPush() - line 494: $session = $this->getSession(); - line 495: $session->put('language', ['PHP' => ['Laravel']]); - line 496: $session->push('language.PHP', 'Symfony'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 501: public function testKeyPull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 501: public function testKeyPull() - line 503: $session = $this->getSession(); - line 504: $session->put('name', 'Taylor'); - line 506: $this->assertSame('Taylor', $session->pull('name')); - line 507: $this->assertSame('Taylor Otwell', $session->pull('name', 'Taylor Otwell')); - line 508: $this->assertNull($session->pull('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 511: public function testKeyHas() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 511: public function testKeyHas() - line 513: $session = $this->getSession(); - line 514: $session->put('first_name', 'Mehdi'); - line 515: $session->put('last_name', 'Rajabi'); - line 517: $this->assertTrue($session->has('first_name')); - line 518: $this->assertTrue($session->has('last_name')); - line 519: $this->assertTrue($session->has('first_name', 'last_name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 526: public function testKeyHasAny() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 526: public function testKeyHasAny() - line 528: $session = $this->getSession(); - line 529: $session->put('first_name', 'Mahmoud'); - line 530: $session->put('last_name', 'Ramadan'); - line 532: $this->assertTrue($session->hasAny('first_name')); - line 533: $this->assertTrue($session->hasAny('first_name', 'last_name')); - line 534: $this->assertTrue($session->hasAny(['first_name', 'last_name'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 542: public function testKeyExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 542: public function testKeyExists() - line 544: $session = $this->getSession(); - line 545: $session->put('foo', 'bar'); - line 546: $this->assertTrue($session->exists('foo')); - line 547: $session->put('baz', null); - line 548: $session->put('hulk', ['one' => true]); - line 549: $this->assertFalse($session->has('baz')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 558: public function testKeyMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 558: public function testKeyMissing() - line 560: $session = $this->getSession(); - line 561: $session->put('foo', 'bar'); - line 562: $this->assertFalse($session->missing('foo')); - line 563: $session->put('baz', null); - line 564: $session->put('hulk', ['one' => true]); - line 565: $this->assertFalse($session->has('baz')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 574: public function testRememberMethodCallsPutAndReturnsDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 574: public function testRememberMethodCallsPutAndReturnsDefault() - line 576: $session = $this->getSession(); - line 577: $session->getHandler()->shouldReceive('get')->andReturn(null); - line 578: $result = $session->remember('foo', function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 585: public function testRememberMethodReturnsPreviousValueIfItAlreadySets() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 585: public function testRememberMethodReturnsPreviousValueIfItAlreadySets() - line 587: $session = $this->getSession(); - line 588: $session->put('key', 'foo'); - line 589: $result = $session->remember('key', function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 596: public function testValidationErrorsCanBeSerializedAsJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 596: public function testValidationErrorsCanBeSerializedAsJson() - line 598: $session = $this->getSession('json'); - line 599: $session->getHandler()->shouldReceive('read')->once()->andReturn(serialize([])); - line 600: $session->start(); - line 601: $session->put('errors', $errorBag = new ViewErrorBag); - line 608: $messageBag->setFormat('

:message

'); - line 609: $errorBag->put('default', $messageBag); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 637: public function testValidationErrorsCanBeReadAsJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 637: public function testValidationErrorsCanBeReadAsJson() - line 639: $session = $this->getSession('json'); - line 640: $session->getHandler()->shouldReceive('read')->once()->with($this->getSessionId())->andReturn(json_encode([ - line 653: $session->start(); - line 658: $this->assertInstanceOf(MessageBag::class, $errors->getBags()['default']); - line 659: $this->assertEquals('

:message

', $errors->getBags()['default']->getFormat()); - line 663: ]], $errors->getBags()['default']->getMessages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 666: public function testItIsMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 666: public function testItIsMacroable() - line 668: $this->getSession()->macro('foo', function () { - line 672: $this->assertSame('macroable', $this->getSession()->foo()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/ConfigurationUrlParserTest.php - Test @ line 17: public function testDriversAliases() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 17: public function testDriversAliases() - line 27: ], ConfigurationUrlParser::getDriverAliases()); - line 44: ], (new ConfigurationUrlParser)->parseConfiguration('some-particular-alias://null')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/DateFacadeTest.php - Test @ line 34: public function testUseClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 34: public function testUseClosure() - line 36: $start = Carbon::now()->getTimestamp(); - line 38: $this->assertBetweenStartAndNow($start, Date::now()->getTimestamp()); - line 40: return new DateTime($date->format('Y-m-d H:i:s.u'), $date->getTimezone()); - line 42: $start = Carbon::now()->getTimestamp(); - line 44: $this->assertBetweenStartAndNow($start, Date::now()->getTimestamp()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 47: public function testUseClassName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 47: public function testUseClassName() - line 49: $start = Carbon::now()->getTimestamp(); - line 51: $this->assertBetweenStartAndNow($start, Date::now()->getTimestamp()); - line 53: $start = Carbon::now()->getTimestamp(); - line 55: $this->assertBetweenStartAndNow($start, Date::now()->getTimestamp()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 58: public function testCarbonImmutable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 58: public function testCarbonImmutable() - line 60: DateFactory::use(CarbonImmutable::class); - line 65: return $date->toImmutable(); - line 81: $this->assertInstanceOf(Carbon::class, Date::now()->getOriginal()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 85: public function testUseInvalidHandler() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 85: public function testUseInvalidHandler() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/ForwardsCallsTest.php - Test @ line 26: public function testMissingForwardedCallThrowsCorrectError() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 26: public function testMissingForwardedCallThrowsCorrectError() - line 28: $this->expectException(BadMethodCallException::class); - line 29: $this->expectExceptionMessage('Call to undefined method Illuminate\Tests\Support\ForwardsCallsOne::missingMethod()'); - line 31: (new ForwardsCallsOne)->missingMethod('foo', 'bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 26: public function testMissingForwardedCallThrowsCorrectError() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 34: public function testMissingAlphanumericForwardedCallThrowsCorrectError() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 34: public function testMissingAlphanumericForwardedCallThrowsCorrectError() - line 36: $this->expectException(BadMethodCallException::class); - line 37: $this->expectExceptionMessage('Call to undefined method Illuminate\Tests\Support\ForwardsCallsOne::this1_shouldWork_too()'); - line 39: (new ForwardsCallsOne)->this1_shouldWork_too('foo', 'bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function testMissingAlphanumericForwardedCallThrowsCorrectError() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 42: public function testNonForwardedErrorIsNotTamperedWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 42: public function testNonForwardedErrorIsNotTamperedWith() - line 44: $this->expectException(Error::class); - line 45: $this->expectExceptionMessage('Call to undefined method Illuminate\Tests\Support\ForwardsCallsBase::missingMethod()'); - line 47: (new ForwardsCallsOne)->baseError('foo', 'bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 42: public function testNonForwardedErrorIsNotTamperedWith() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 50: public function testThrowBadMethodCallException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 50: public function testThrowBadMethodCallException() - line 52: $this->expectException(BadMethodCallException::class); - line 53: $this->expectExceptionMessage('Call to undefined method Illuminate\Tests\Support\ForwardsCallsOne::test()'); - line 55: (new ForwardsCallsOne)->throwTestException('test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 50: public function testThrowBadMethodCallException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/HigherOrderProxyTest.php - Test @ line 26: public function test_call_proxies_method_call_to_items() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 26: public function test_call_proxies_method_call_to_items() - line 47: $result = $proxy->shout('hey'); - line 49: $this->assertEquals(['HEY', 'HEY!'], $result->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/LotteryTest.php - Test @ line 18: public function testItCanWin() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 18: public function testItCanWin() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 30: public function testItCanLose() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 30: public function testItCanLose() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 46: public function testItCanReturnValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 46: public function testItCanReturnValues() - line 48: $win = Lottery::odds(1, 1)->winner(fn () => 'win')->choose(); - line 51: $lose = Lottery::odds(0, 1)->loser(fn () => 'lose')->choose(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 55: public function testItCanChooseSeveralTimes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 55: public function testItCanChooseSeveralTimes() - line 57: $results = Lottery::odds(1, 1)->winner(fn () => 'win')->choose(2); - line 60: $results = Lottery::odds(0, 1)->loser(fn () => 'lose')->choose(2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 77: public function testWithoutSpecifiedClosuresBooleansAreReturned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 77: public function testWithoutSpecifiedClosuresBooleansAreReturned() - line 79: $win = Lottery::odds(1, 1)->choose(); - line 82: $lose = Lottery::odds(0, 1)->choose(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 112: public function testItCanForceTheResultViaSequence() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 112: public function testItCanForceTheResultViaSequence() - line 115: Lottery::forceResultWithSequence([ - line 120: $result = Lottery::odds(1, 100)->winner(fn () => 'winner')->loser(fn () => 'loser')->choose(10); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 128: public function testItCanHandleMissingSequenceItems() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 128: public function testItCanHandleMissingSequenceItems() - line 131: Lottery::forceResultWithSequence([ - line 138: $result = Lottery::odds(1, 10000)->winner(fn () => 'winner')->loser(fn () => 'loser')->choose(); - line 141: $result = Lottery::odds(1, 10000)->winner(fn () => 'winner')->loser(fn () => 'loser')->choose(); - line 144: $this->expectException(RuntimeException::class); - line 145: $this->expectExceptionMessage('Missing key in sequence.'); - line 146: Lottery::odds(1, 10000)->winner(fn () => 'winner')->loser(fn () => 'loser')->choose(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 149: public function testItThrowsForFloatsOverOne() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 149: public function testItThrowsForFloatsOverOne() - line 151: $this->expectException(RuntimeException::class); - line 152: $this->expectExceptionMessage('Float must not be greater than 1.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 149: public function testItThrowsForFloatsOverOne() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 157: public function testItThrowsForOutOfLessThanOne() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 157: public function testItThrowsForOutOfLessThanOne() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 164: public function testItCanWinWithFloat() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 164: public function testItCanWinWithFloat() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 176: public function testItCanLoseWithFloat() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 176: public function testItCanLoseWithFloat() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/OnceTest.php - Test @ line 18: public function testResultMemoization() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 18: public function testResultMemoization() - line 28: $first = $instance->rand(); - line 29: $second = $instance->rand(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 34: public function testCallableIsCalledOnce() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 34: public function testCallableIsCalledOnce() - line 46: $first = $instance->increment(); - line 47: $second = $instance->increment(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 54: public function testFlush() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 54: public function testFlush() - line 58: $first = $instance->rand(); - line 62: $second = $instance->rand(); - line 69: $first = $instance->rand(); - line 70: $second = $instance->rand(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 54: public function testFlush() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 75: public function testNotMemoizedWhenObjectIsGarbageCollected() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 75: public function testNotMemoizedWhenObjectIsGarbageCollected() - line 79: $first = $instance->rand(); - line 83: $second = $instance->rand(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 75: public function testNotMemoizedWhenObjectIsGarbageCollected() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 88: public function testIsNotMemoizedWhenCallableUsesChanges() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 88: public function testIsNotMemoizedWhenCallableUsesChanges() - line 100: $first = $instance->rand('a'); - line 101: $second = $instance->rand('b'); - line 105: $first = $instance->rand('a'); - line 106: $second = $instance->rand('a'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 123: public function testUsageOfThis() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 123: public function testUsageOfThis() - line 127: $first = $instance->callRand(); - line 128: $second = $instance->callRand(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 133: public function testInvokables() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 133: public function testInvokables() - line 157: $first = $instance->call(); - line 158: $second = $instance->call(); - line 159: $third = $instance->call(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 166: public function testFirstClassCallableSyntax() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 166: public function testFirstClassCallableSyntax() - line 172: return once(MyClass::staticRand(...)); - line 176: $first = $instance->rand(); - line 177: $second = $instance->rand(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 166: public function testFirstClassCallableSyntax() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 182: public function testFirstClassCallableSyntaxWithArraySyntax() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 182: public function testFirstClassCallableSyntaxWithArraySyntax() - line 192: $first = $instance->rand(); - line 193: $second = $instance->rand(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 206: public function testMemoizationWhenOnceIsWithinClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 206: public function testMemoizationWhenOnceIsWithinClosure() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 206: public function testMemoizationWhenOnceIsWithinClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 216: public function testMemoizationOnGlobalFunctions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 216: public function testMemoizationOnGlobalFunctions() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 216: public function testMemoizationOnGlobalFunctions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 224: public function testDisable() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 224: public function testDisable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 234: public function testTemporaryDisable() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 234: public function testTemporaryDisable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 252: public function testMemoizationWithinEvals() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 252: public function testMemoizationWithinEvals() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 252: public function testMemoizationWithinEvals() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 272: public function testMemoizationOnSameLine() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 272: public function testMemoizationOnSameLine() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 281: public function testResultIsDifferentWhenCalledFromDifferentClosures() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 281: public function testResultIsDifferentWhenCalledFromDifferentClosures() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 281: public function testResultIsDifferentWhenCalledFromDifferentClosures() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 292: public function testResultIsMemoizedWhenCalledFromMethodsWithSameName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 292: public function testResultIsMemoizedWhenCalledFromMethodsWithSameName() - line 310: $first = $instanceA->rand(); - line 311: $second = $instanceB->rand(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 292: public function testResultIsMemoizedWhenCalledFromMethodsWithSameName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 316: public function testRecursiveOnceCalls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 316: public function testRecursiveOnceCalls() - line 326: $first = $instance->rand(); - line 327: $second = $instance->rand(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 332: public function testGlobalClosures() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 332: public function testGlobalClosures() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 332: public function testGlobalClosures() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 367: public function testExtendedStaticClassOnceCalls() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 367: public function testExtendedStaticClassOnceCalls() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/SleepTest.php - Test @ line 26: public function testItSleepsForSeconds() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 26: public function testItSleepsForSeconds() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 40: public function testSleepRespectsWhile() Violations: - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 42: $_SERVER['__sleep.while'] = 0; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 54: unset($_SERVER['__sleep.while']); - Test @ line 57: public function testItSleepsForSecondsWithMilliseconds() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 57: public function testItSleepsForSecondsWithMilliseconds() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 66: public function testItCanFakeSleeping() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 66: public function testItCanFakeSleeping() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 77: public function testItCanSpecifyMinutes() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 77: public function testItCanSpecifyMinutes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 86: public function testItCanSpecifyMinute() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 86: public function testItCanSpecifyMinute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 95: public function testItCanSpecifySeconds() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 95: public function testItCanSpecifySeconds() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 104: public function testItCanSpecifySecond() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 104: public function testItCanSpecifySecond() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 113: public function testItCanSpecifyMilliseconds() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 113: public function testItCanSpecifyMilliseconds() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 122: public function testItCanSpecifyMillisecond() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 122: public function testItCanSpecifyMillisecond() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 131: public function testItCanSpecifyMicroseconds() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 131: public function testItCanSpecifyMicroseconds() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 141: public function testItCanSpecifyMicrosecond() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 141: public function testItCanSpecifyMicrosecond() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 150: public function testItCanChainDurations() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 150: public function testItCanChainDurations() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 160: public function testItCanUseDateInterval() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 160: public function testItCanUseDateInterval() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 169: public function testItThrowsForUnknownTimeUnit() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 169: public function testItThrowsForUnknownTimeUnit() - line 172: Sleep::for(5); - line 173: $this->fail(); - line 175: $this->assertSame('Unknown duration unit.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 179: public function testItCanAssertSequence() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 179: public function testItCanAssertSequence() - line 183: Sleep::for(5)->seconds(); - line 184: Sleep::for(1)->seconds()->and(5)->microsecond(); - line 187: Sleep::for(5)->seconds(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 179: public function testItCanAssertSequence() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 192: public function testItFailsSequenceAssertion() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 192: public function testItFailsSequenceAssertion() - line 196: Sleep::for(5)->seconds(); - line 197: Sleep::for(1)->seconds()->and(5)->microseconds(); - line 201: Sleep::for(5)->seconds(), - line 204: $this->fail(); - line 206: $this->assertSame("Expected sleep duration of [9 seconds 8 milliseconds] but actually slept for [1 second 5 microseconds].\nFailed asserting that false is true.", $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 210: public function testItCanUseSleep() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 210: public function testItCanUseSleep() - line 214: Sleep::sleep(3); - line 217: Sleep::for(3)->seconds(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 210: public function testItCanUseSleep() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 221: public function testItCanUseUSleep() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 221: public function testItCanUseUSleep() - line 225: Sleep::usleep(3); - line 228: Sleep::for(3)->microseconds(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 221: public function testItCanUseUSleep() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 232: public function testItCanSleepTillGivenTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 232: public function testItCanSleepTillGivenTime() - line 235: Carbon::setTestNow(now()->startOfDay()); - line 237: Sleep::until(now()->addMinute()); - line 240: Sleep::for(60)->seconds(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 232: public function testItCanSleepTillGivenTime() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 244: public function testItCanSleepTillGivenTimestamp() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 244: public function testItCanSleepTillGivenTimestamp() - line 247: Carbon::setTestNow(now()->startOfDay()); - line 249: Sleep::until(now()->addMinute()->timestamp); - line 252: Sleep::for(60)->seconds(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 244: public function testItCanSleepTillGivenTimestamp() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 256: public function testItCanSleepTillGivenTimestampAsString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 256: public function testItCanSleepTillGivenTimestampAsString() - line 259: Carbon::setTestNow(now()->startOfDay()); - line 261: Sleep::until((string) now()->addMinute()->timestamp); - line 264: Sleep::for(60)->seconds(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 256: public function testItCanSleepTillGivenTimestampAsString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 268: public function testItCanSleepTillGivenTimestampAsStringWithMilliseconds() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 268: public function testItCanSleepTillGivenTimestampAsStringWithMilliseconds() - line 273: Sleep::until('946684899.123'); - line 276: Sleep::for(1)->minute() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 268: public function testItCanSleepTillGivenTimestampAsStringWithMilliseconds() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 282: public function testItSleepsForZeroTimeWithNegativeDateTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 282: public function testItSleepsForZeroTimeWithNegativeDateTime() - line 285: Carbon::setTestNow(now()->startOfDay()); - line 287: Sleep::until(now()->subMinutes(100)); - line 290: Sleep::for(0)->seconds(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 282: public function testItSleepsForZeroTimeWithNegativeDateTime() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 294: public function testSleepingForZeroTime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 294: public function testSleepingForZeroTime() - line 298: Sleep::for(0)->seconds(); - line 302: Sleep::for(1)->seconds(), - line 304: $this->fail(); - line 306: $this->assertSame("Expected sleep duration of [1 second] but actually slept for [0 microseconds].\nFailed asserting that false is true.", $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 310: public function testItFailsWhenSequenceContainsTooManySleeps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 310: public function testItFailsWhenSequenceContainsTooManySleeps() - line 314: Sleep::for(1)->seconds(); - line 318: Sleep::for(1)->seconds(), - line 321: $this->fail(); - line 323: $this->assertSame("Expected [2] sleeps but found [1].\nFailed asserting that 1 is identical to 2.", $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 327: public function testSilentlySetsDurationToZeroForNegativeValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 327: public function testSilentlySetsDurationToZeroForNegativeValues() - line 331: Sleep::for(-1)->seconds(); - line 334: Sleep::for(0)->seconds(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 327: public function testSilentlySetsDurationToZeroForNegativeValues() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 338: public function testItDoesntCaptureAssertionInstances() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 338: public function testItDoesntCaptureAssertionInstances() - line 342: Sleep::for(1)->second(); - line 345: Sleep::for(1)->second(), - line 350: Sleep::for(1)->second(), - line 353: $this->fail(); - line 355: $this->assertSame("Expected [2] sleeps but found [1].\nFailed asserting that 1 is identical to 2.", $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 359: public function testAssertNeverSlept() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 359: public function testAssertNeverSlept() - line 365: Sleep::for(1)->seconds(); - line 369: $this->fail(); - line 371: $this->assertSame("Expected [0] sleeps but found [1].\nFailed asserting that 1 is identical to 0.", $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 375: public function testAssertNeverAgainstZeroSecondSleep() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 375: public function testAssertNeverAgainstZeroSecondSleep() - line 381: Sleep::for(0)->seconds(); - line 385: $this->fail(); - line 387: $this->assertSame("Expected [0] sleeps but found [1].\nFailed asserting that 1 is identical to 0.", $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 391: public function testItCanAssertNoSleepingOccurred() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 391: public function testItCanAssertNoSleepingOccurred() - line 397: Sleep::for(0)->second(); - line 402: Sleep::for(1)->second(); - line 406: $this->fail(); - line 408: $this->assertSame("Unexpected sleep duration of [1 second] found.\nFailed asserting that 1000000 is identical to 0.", $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 412: public function testItCanAssertSleepCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 412: public function testItCanAssertSleepCount() - line 418: Sleep::for(1)->second(); - line 424: $this->fail(); - line 426: $this->assertSame("Expected [0] sleeps but found [1].\nFailed asserting that 1 is identical to 0.", $e->getMessage()); - line 431: $this->fail(); - line 433: $this->assertSame("Expected [2] sleeps but found [1].\nFailed asserting that 1 is identical to 2.", $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 437: public function testAssertSlept() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 437: public function testAssertSlept() - line 445: $this->fail(); - line 447: $this->assertSame("The expected sleep was found [0] times instead of [1].\nFailed asserting that 0 is identical to 1.", $e->getMessage()); - line 450: Sleep::for(5)->seconds(); - line 456: $this->fail(); - line 458: $this->assertSame("The expected sleep was found [1] times instead of [2].\nFailed asserting that 1 is identical to 2.", $e->getMessage()); - line 463: $this->fail(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 469: public function testItCanCreateMacrosViaMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 469: public function testItCanCreateMacrosViaMacroable() - line 474: return Sleep::for(3)->seconds(); - line 479: return $this->duration(1.234)->seconds(); - line 484: return $this->and(567)->microseconds(); - line 492: $sleep = $sleep->useSomeOtherAmountOfTime(); - line 496: $sleep = $sleep->andSomeMoreGranularControl(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 469: public function testItCanCreateMacrosViaMacroable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 500: public function testItCanReplacePreviouslyDefinedDurations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 500: public function testItCanReplacePreviouslyDefinedDurations() - line 505: return $this->duration($duration); - line 508: $sleep = Sleep::for(1)->second(); - line 511: $sleep->setDuration(2)->second(); - line 514: $sleep->setDuration(500)->milliseconds(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 500: public function testItCanReplacePreviouslyDefinedDurations() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 518: public function testItCanSleepConditionallyWhen() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 518: public function testItCanSleepConditionallyWhen() - line 524: Sleep::for(1)->second(); - line 533: Sleep::for(1)->second()->when(false); - line 534: Sleep::for(1)->second()->when(fn () => false); - line 537: Sleep::for(1)->second()->unless(true); - line 538: Sleep::for(1)->second()->unless(fn () => true); - line 544: Sleep::for(1)->second()->when(true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 518: public function testItCanSleepConditionallyWhen() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 556: public function testItCanRegisterCallbacksToRunInTests() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 556: public function testItCanRegisterCallbacksToRunInTests() - line 561: Sleep::whenFakingSleep(function ($duration) use (&$countA) { - line 568: Sleep::for(1)->millisecond(); - line 569: Sleep::for(2)->millisecond(); - line 572: Sleep::for(1)->millisecond(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 556: public function testItCanRegisterCallbacksToRunInTests() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 580: public function testItDoesntRunCallbacksWhenNotFaking() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 580: public function testItDoesntRunCallbacksWhenNotFaking() - line 582: Sleep::whenFakingSleep(function () { - line 586: Sleep::for(1)->millisecond(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 580: public function testItDoesntRunCallbacksWhenNotFaking() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 591: public function testItDoesNotSyncCarbon() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 591: public function testItDoesNotSyncCarbon() - line 596: Sleep::for(5)->minutes() - line 600: Sleep::for(303)->seconds(), - line 602: $this->assertSame('2000-01-01 00:00:00', Date::now()->toDateTimeString()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 605: public function testItCanSyncCarbon() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 605: public function testItCanSyncCarbon() - line 609: Sleep::syncWithCarbon(); - line 611: Sleep::for(5)->minutes() - line 615: Sleep::for(303)->seconds(), - line 617: $this->assertSame('2000-01-01 00:05:03', Date::now()->toDateTimeString()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 628: public function testFakeCanSetSyncWithCarbon(bool $syncWithCarbon, string $datetime) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 628: public function testFakeCanSetSyncWithCarbon(bool $syncWithCarbon, string $datetime) - line 633: Sleep::for(5)->minutes() - line 637: Sleep::for(303)->seconds(), - line 639: $this->assertSame($datetime, Date::now()->toDateTimeString()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 642: public function testFakeDoesNotNeedToSyncWithCarbon() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 642: public function testFakeDoesNotNeedToSyncWithCarbon() - line 647: Sleep::for(5)->minutes() - line 651: Sleep::for(303)->seconds(), - line 653: $this->assertSame('2000-01-01 00:00:00', Date::now()->toDateTimeString()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/StorageFacadeTest.php - Test @ line 12: public function testFake_whenDiskNotConfigured_doesNotThrowExceptionOnError() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 12: public function testFake_whenDiskNotConfigured_doesNotThrowExceptionOnError() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 12: public function testFake_whenDiskNotConfigured_doesNotThrowExceptionOnError() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 19: public function testFake_whenThrowSetToDisk_throwsExceptionOnError() Violations: - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 21: Config::set('filesystems.disks.test', ['throw' => true]); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 19: public function testFake_whenThrowSetToDisk_throwsExceptionOnError() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 27: public function testFake_whenThrowOverwritten_usesOverwrite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 27: public function testFake_whenThrowOverwritten_usesOverwrite() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 29: Config::set('filesystems.disks.test', ['throw' => true]); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 27: public function testFake_whenThrowOverwritten_usesOverwrite() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 35: public function testPersistentFake_whenDiskNotConfigured_doesNotThrowExceptionOnError() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 35: public function testPersistentFake_whenDiskNotConfigured_doesNotThrowExceptionOnError() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 42: public function testPersistentFake_whenThrowSetToDisk_throwsExceptionOnError() Violations: - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 44: Config::set('filesystems.disks.test', ['throw' => true]); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 42: public function testPersistentFake_whenThrowSetToDisk_throwsExceptionOnError() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 50: public function testPersistentFake_whenThrowOverwritten_usesOverwrite() Violations: - [BOOTSTRAP_PURITY_CONFIG_SET] Note: Config::set mutates global config and is order-dependent unless restored. Evidence: - line 52: Config::set('filesystems.disks.test', ['throw' => true]); Approved remediation patterns: - Snapshot and restore configuration state in setUp()/tearDown() - Restore only the mutated config keys explicitly - Move test values to env-based configuration instead of runtime mutation - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 50: public function testPersistentFake_whenThrowOverwritten_usesOverwrite() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/SupportArrTest.php - Test @ line 74: public function testPush() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 74: public function testPush() - line 78: Arr::push($array, 'office.furniture', 'Desk'); - line 92: $this->expectException(InvalidArgumentException::class); - line 93: $this->expectExceptionMessage('Array value for key [foo.bar] must be an array, boolean found.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 74: public function testPush() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 495: public function testGet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 495: public function testGet() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 583: public function testItGetsAString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 583: public function testItGetsAString() - line 589: 'foo bar', Arr::string($test_array, 'string') - line 598: $this->expectException(InvalidArgumentException::class); - line 599: $this->expectExceptionMessageMatches('#^Array value for key \[integer\] must be a string, (.*) found.#'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 603: public function testItGetsAnInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 603: public function testItGetsAnInteger() - line 609: 1234, Arr::integer($test_array, 'integer') - line 618: $this->expectException(InvalidArgumentException::class); - line 619: $this->expectExceptionMessageMatches('#^Array value for key \[string\] must be an integer, (.*) found.#'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 623: public function testItGetsAFloat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 623: public function testItGetsAFloat() - line 629: 12.34, Arr::float($test_array, 'float') - line 638: $this->expectException(InvalidArgumentException::class); - line 639: $this->expectExceptionMessageMatches('#^Array value for key \[string\] must be a float, (.*) found.#'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 643: public function testItGetsABoolean() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 643: public function testItGetsABoolean() - line 649: true, Arr::boolean($test_array, 'boolean') - line 658: $this->expectException(InvalidArgumentException::class); - line 659: $this->expectExceptionMessageMatches('#^Array value for key \[string\] must be a boolean, (.*) found.#'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 663: public function testItGetsAnArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 663: public function testItGetsAnArray() - line 669: ['foo', 'bar'], Arr::array($test_array, 'array') - line 678: $this->expectException(InvalidArgumentException::class); - line 679: $this->expectExceptionMessageMatches('#^Array value for key \[string\] must be an array, (.*) found.#'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1193: public function testRandomThrowsAnErrorWhenRequestingMoreItemsThanAreAvailable() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1193: public function testRandomThrowsAnErrorWhenRequestingMoreItemsThanAreAvailable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1218: public function testSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1218: public function testSet() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1304: public function testSoleThrowsExceptionIfNoItemsExist() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1304: public function testSoleThrowsExceptionIfNoItemsExist() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1311: public function testSoleThrowsExceptionIfMoreThanOneItemExists() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1311: public function testSoleThrowsExceptionIfMoreThanOneItemExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1548: public function testForget() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1548: public function testForget() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1605: public function testFrom() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1605: public function testFrom() - line 1607: $this->assertSame(['foo' => 'bar'], Arr::from(['foo' => 'bar'])); - line 1626: $this->expectException(InvalidArgumentException::class); - line 1627: $this->expectExceptionMessage('Items cannot be represented by a scalar value.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/SupportCapsuleManagerTraitTest.php - Test @ line 21: public function testSetupContainerForCapsule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 21: public function testSetupContainerForCapsule() - line 26: $this->setupContainer($app); - line 27: $this->assertEquals($app, $this->getContainer()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 31: public function testSetupContainerForCapsuleWhenConfigIsBound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 31: public function testSetupContainerForCapsuleWhenConfigIsBound() - line 35: $app['config'] = m::mock(Repository::class); - line 37: $this->setupContainer($app); - line 38: $this->assertEquals($app, $this->getContainer()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 35: $app['config'] = m::mock(Repository::class); ❌ tests/Support/SupportCarbonTest.php - Test @ line 34: public function testInstance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 34: public function testInstance() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function testInstance() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 42: public function testCarbonIsMacroableWhenNotCalledStatically() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 42: public function testCarbonIsMacroableWhenNotCalledStatically() - line 45: return (int) ($this->diffInYears($dt, $abs) / 10); - line 48: $this->assertSame(2, $this->now->diffInDecades(Carbon::now()->addYears(25))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 51: public function testCarbonIsMacroableWhenCalledStatically() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 51: public function testCarbonIsMacroableWhenCalledStatically() - line 54: return Carbon::now()->subDays(2)->setTime(12, 0, 0); - line 57: $this->assertSame('2017-06-25 12:00:00', Carbon::twoDaysAgoAtNoon()->toDateTimeString()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 60: public function testCarbonRaisesExceptionWhenStaticMacroIsNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 60: public function testCarbonRaisesExceptionWhenStaticMacroIsNotFound() - line 62: $this->expectException(BadMethodCallException::class); - line 63: $this->expectExceptionMessage('nonExistingStaticMacro does not exist.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 60: public function testCarbonRaisesExceptionWhenStaticMacroIsNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 68: public function testCarbonRaisesExceptionWhenMacroIsNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 68: public function testCarbonRaisesExceptionWhenMacroIsNotFound() - line 70: $this->expectException(BadMethodCallException::class); - line 71: $this->expectExceptionMessage('nonExistingMacro does not exist.'); - line 73: Carbon::now()->nonExistingMacro(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 68: public function testCarbonRaisesExceptionWhenMacroIsNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 92: public function testSetStateReturnsCorrectType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 92: public function testSetStateReturnsCorrectType() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 92: public function testSetStateReturnsCorrectType() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 103: public function testDeserializationOccursCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 103: public function testDeserializationOccursCorrectly() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 103: public function testDeserializationOccursCorrectly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 112: public function testSetTestNowWillPersistBetweenImmutableAndMutableInstance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 112: public function testSetTestNowWillPersistBetweenImmutableAndMutableInstance() - line 116: $this->assertSame('2017-06-27 13:14:15', Carbon::now()->toDateTimeString()); - line 117: $this->assertSame('2017-06-27 13:14:15', BaseCarbon::now()->toDateTimeString()); - line 118: $this->assertSame('2017-06-27 13:14:15', BaseCarbonImmutable::now()->toDateTimeString()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 121: public function testCarbonIsConditionable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 121: public function testCarbonIsConditionable() - line 123: $this->assertTrue(Carbon::now()->when(null, fn (Carbon $carbon) => $carbon->addDays(1))->isToday()); - line 124: $this->assertTrue(Carbon::now()->when(true, fn (Carbon $carbon) => $carbon->addDays(1))->isTomorrow()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 127: public function testCreateFromUid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 127: public function testCreateFromUid() - line 130: $this->assertEquals('2020-01-01 19:30:00.000000', $ulid->toDateTimeString('microsecond')); - line 133: $this->assertEquals('2023-05-12 03:02:34.147346', $uuidv1->toDateTimeString('microsecond')); - line 136: $this->assertEquals('2023-05-12 03:06:33.529139', $uuidv2->toDateTimeString('microsecond')); - line 139: $this->assertEquals('2023-05-12 03:23:43.347428', $uuidv6->toDateTimeString('microsecond')); - line 142: $this->assertEquals('2023-05-12 03:21:18.117000', $uuidv7->toDateTimeString('microsecond')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/SupportCollectionTest.php - Test @ line 64: public function testFirstWithDefaultAndWithoutCallback($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 64: public function testFirstWithDefaultAndWithoutCallback($collection) - line 67: $result = $data->first(null, 'default'); - line 71: $result = $data->first(null, 'default'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 76: public function testSoleReturnsFirstItemInCollectionIfOnlyOneExists($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 76: public function testSoleReturnsFirstItemInCollectionIfOnlyOneExists($collection) - line 83: $this->assertSame(['name' => 'foo'], $collection->where('name', 'foo')->sole()); - line 84: $this->assertSame(['name' => 'foo'], $collection->sole('name', '=', 'foo')); - line 85: $this->assertSame(['name' => 'foo'], $collection->sole('name', 'foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 89: public function testSoleThrowsExceptionIfNoItemsExist($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 89: public function testSoleThrowsExceptionIfNoItemsExist($collection) - line 91: $this->expectException(ItemNotFoundException::class); - line 98: $collection->where('name', 'INVALID')->sole(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 89: public function testSoleThrowsExceptionIfNoItemsExist($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 102: public function testSoleThrowsExceptionIfMoreThanOneItemExists($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 102: public function testSoleThrowsExceptionIfMoreThanOneItemExists($collection) - line 104: $this->expectExceptionObject(new MultipleItemsFoundException(2)); - line 112: $collection->where('name', 'foo')->sole(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 102: public function testSoleThrowsExceptionIfMoreThanOneItemExists($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 126: public function testSoleThrowsExceptionIfNoItemsExistWithCallback($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 126: public function testSoleThrowsExceptionIfNoItemsExistWithCallback($collection) - line 128: $this->expectException(ItemNotFoundException::class); - line 132: $data->sole(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 126: public function testSoleThrowsExceptionIfNoItemsExistWithCallback($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 138: public function testSoleThrowsExceptionIfMoreThanOneItemExistsWithCallback($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 138: public function testSoleThrowsExceptionIfMoreThanOneItemExistsWithCallback($collection) - line 140: $this->expectExceptionObject(new MultipleItemsFoundException(2)); - line 144: $data->sole(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 138: public function testSoleThrowsExceptionIfMoreThanOneItemExistsWithCallback($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 150: public function testFirstOrFailReturnsFirstItemInCollection($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 150: public function testFirstOrFailReturnsFirstItemInCollection($collection) - line 157: $this->assertSame(['name' => 'foo'], $collection->where('name', 'foo')->firstOrFail()); - line 158: $this->assertSame(['name' => 'foo'], $collection->firstOrFail('name', '=', 'foo')); - line 159: $this->assertSame(['name' => 'foo'], $collection->firstOrFail('name', 'foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 163: public function testFirstOrFailThrowsExceptionIfNoItemsExist($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 163: public function testFirstOrFailThrowsExceptionIfNoItemsExist($collection) - line 165: $this->expectException(ItemNotFoundException::class); - line 172: $collection->where('name', 'INVALID')->firstOrFail(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 163: public function testFirstOrFailThrowsExceptionIfNoItemsExist($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 198: public function testFirstOrFailThrowsExceptionIfNoItemsExistWithCallback($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 198: public function testFirstOrFailThrowsExceptionIfNoItemsExistWithCallback($collection) - line 200: $this->expectException(ItemNotFoundException::class); - line 204: $data->firstOrFail(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 198: public function testFirstOrFailThrowsExceptionIfNoItemsExistWithCallback($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 223: public function testFirstOrFailStopsIteratingAtFirstMatch($collection) Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 223: public function testFirstOrFailStopsIteratingAtFirstMatch($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 243: public function testFirstWhere($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 243: public function testFirstWhere($collection) - line 250: $this->assertSame('book', $data->firstWhere('material', 'paper')['type']); - line 251: $this->assertSame('gasket', $data->firstWhere('material', 'rubber')['type']); - line 252: $this->assertNull($data->firstWhere('material', 'nonexistent')); - line 253: $this->assertNull($data->firstWhere('nonexistent', 'key')); - line 255: $this->assertSame('book', $data->firstWhere(fn ($value) => $value['material'] === 'paper')['type']); - line 256: $this->assertSame('gasket', $data->firstWhere(fn ($value) => $value['material'] === 'rubber')['type']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 262: public function testFirstWhereUsingEnum($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 262: public function testFirstWhereUsingEnum($collection) - line 270: $this->assertSame(1, $data->firstWhere('name', 'Taylor')['id']); - line 271: $this->assertSame(2, $data->firstWhere('name', StaffEnum::Joe)['id']); - line 272: $this->assertSame(3, $data->firstWhere('name', StaffEnum::James)['id']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 276: public function testLastReturnsLastItemInCollection($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 276: public function testLastReturnsLastItemInCollection($collection) - line 279: $this->assertSame('bar', $c->last()); - line 282: $this->assertNull($c->last()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 286: public function testLastWithCallback($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 286: public function testLastWithCallback($collection) - line 289: $result = $data->last(function ($value) { - line 294: $result = $data->last(function ($value, $key) { - line 299: $result = $data->last(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 306: public function testLastWithCallbackAndDefault($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 306: public function testLastWithCallbackAndDefault($collection) - line 309: $result = $data->last(function ($value) { - line 315: $result = $data->last(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 329: public function testPopReturnsAndRemovesLastItemInCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 329: public function testPopReturnsAndRemovesLastItemInCollection() - line 333: $this->assertSame('bar', $c->pop()); - line 334: $this->assertSame('foo', $c->first()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 337: public function testPopReturnsAndRemovesLastXItemsInCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 337: public function testPopReturnsAndRemovesLastXItemsInCollection() - line 341: $this->assertEquals(new Collection(['baz', 'bar']), $c->pop(2)); - line 342: $this->assertSame('foo', $c->first()); - line 344: $this->assertEquals(new Collection(['baz', 'bar', 'foo']), (new Collection(['foo', 'bar', 'baz']))->pop(6)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 347: public function testShiftReturnsAndRemovesFirstItemInCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 347: public function testShiftReturnsAndRemovesFirstItemInCollection() - line 351: $this->assertSame('Taylor', $data->shift()); - line 352: $this->assertSame('Otwell', $data->first()); - line 353: $this->assertSame('Otwell', $data->shift()); - line 354: $this->assertNull($data->first()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 357: public function testShiftReturnsAndRemovesFirstXItemsInCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 357: public function testShiftReturnsAndRemovesFirstXItemsInCollection() - line 361: $this->assertEquals(new Collection(['foo', 'bar']), $data->shift(2)); - line 362: $this->assertSame('baz', $data->first()); - line 364: $this->assertEquals(new Collection(['foo', 'bar', 'baz']), (new Collection(['foo', 'bar', 'baz']))->shift(6)); - line 368: $this->assertEquals(new Collection([]), $data->shift(0)); - line 371: $this->expectException('InvalidArgumentException'); - line 372: (new Collection(['foo', 'bar', 'baz']))->shift(-1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 378: public function testShiftReturnsNullOnEmptyCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 378: public function testShiftReturnsNullOnEmptyCollection() - line 387: $foo = $items->shift(); - line 388: $bar = $items->shift(); - line 392: $this->assertNull($items->shift()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 396: public function testSliding($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 34. Evidence: - line 396: public function testSliding($collection) - line 399: $this->assertSame([], $collection::times(0)->sliding()->toArray()); - line 400: $this->assertSame([], $collection::times(1)->sliding()->toArray()); - line 401: $this->assertSame([[1, 2]], $collection::times(2)->sliding()->toArray()); - line 404: $collection::times(3)->sliding()->map->values()->toArray() - line 408: $this->assertSame([], $collection::times(1)->sliding(2, 3)->toArray()); - line 409: $this->assertSame([[1, 2]], $collection::times(2)->sliding(2, 3)->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 493: public function testEmptyCollectionIsNotEmpty($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 493: public function testEmptyCollectionIsNotEmpty($collection) - line 497: $this->assertFalse($c->isEmpty()); - line 498: $this->assertTrue($c->isNotEmpty()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 502: public function testCollectionIsConstructed($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 502: public function testCollectionIsConstructed($collection) - line 505: $this->assertSame(['foo'], $data->all()); - line 508: $this->assertSame([2], $data->all()); - line 511: $this->assertSame([false], $data->all()); - line 514: $this->assertEmpty($data->all()); - line 517: $this->assertEmpty($data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 521: public function testSkipMethod($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 521: public function testSkipMethod($collection) - line 526: $this->assertSame([5, 6], $data->skip(4)->values()->all()); - line 529: $this->assertSame([], $data->skip(10)->values()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 533: public function testSkipUntil($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 533: public function testSkipUntil($collection) - line 538: $this->assertSame([1, 1, 2, 2, 3, 3, 4, 4], $data->skipUntil(1)->values()->all()); - line 541: $this->assertSame([3, 3, 4, 4], $data->skipUntil(3)->values()->all()); - line 544: $this->assertSame([], $data->skipUntil(5)->values()->all()); - line 547: $data = $data->skipUntil(function ($value, $key) { - line 551: $this->assertSame([1, 1, 2, 2, 3, 3, 4, 4], $data->all()); - line 554: $data = $data->skipUntil(function ($value, $key) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 569: public function testSkipWhile($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 569: public function testSkipWhile($collection) - line 574: $this->assertSame([2, 2, 3, 3, 4, 4], $data->skipWhile(1)->values()->all()); - line 577: $this->assertSame([1, 1, 2, 2, 3, 3, 4, 4], $data->skipWhile(5)->values()->all()); - line 580: $this->assertSame([1, 1, 2, 2, 3, 3, 4, 4], $data->skipWhile(2)->values()->all()); - line 583: $data = $data->skipWhile(function ($value, $key) { - line 587: $this->assertSame([1, 1, 2, 2, 3, 3, 4, 4], $data->all()); - line 590: $data = $data->skipWhile(function ($value, $key) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 605: public function testGetArrayableItems($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 605: public function testGetArrayableItems($collection) - line 610: $method = $class->getMethod('getArrayableItems'); - line 613: $array = $method->invokeArgs($data, [$items]); - line 617: $array = $method->invokeArgs($data, [$items]); - line 621: $array = $method->invokeArgs($data, [$items]); - line 625: $array = $method->invokeArgs($data, [$items]); - line 630: $array = $method->invokeArgs($data, [$items]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 605: public function testGetArrayableItems($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 643: public function testToArrayCallsToArrayOnEachItemInCollection($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 643: public function testToArrayCallsToArrayOnEachItemInCollection($collection) - line 645: $item1 = m::mock(Arrayable::class); - line 650: $results = $c->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 645: $item1 = m::mock(Arrayable::class); - line 647: $item2 = m::mock(Arrayable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 643: public function testToArrayCallsToArrayOnEachItemInCollection($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 655: public function testLazyReturnsLazyCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 655: public function testLazyReturnsLazyCollection() - line 659: $lazy = $data->lazy(); - line 661: $data->add(6); - line 664: $this->assertSame([1, 2, 3, 4, 5], $lazy->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 668: public function testJsonSerializeCallsToArrayOrJsonSerializeOnEachItemInCollection($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 668: public function testJsonSerializeCallsToArrayOrJsonSerializeOnEachItemInCollection($collection) - line 670: $item1 = m::mock(JsonSerializable::class); - line 675: $results = $c->jsonSerialize(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 670: $item1 = m::mock(JsonSerializable::class); - line 672: $item2 = m::mock(Arrayable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 668: public function testJsonSerializeCallsToArrayOrJsonSerializeOnEachItemInCollection($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 681: public function testToJsonEncodesTheJsonSerializeResult($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 681: public function testToJsonEncodesTheJsonSerializeResult($collection) - line 683: $c = $this->getMockBuilder($collection)->onlyMethods(['jsonSerialize'])->getMock(); - line 684: $c->expects($this->once())->method('jsonSerialize')->willReturn(['foo']); - line 685: $results = $c->toJson(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 681: public function testToJsonEncodesTheJsonSerializeResult($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 690: public function testToPrettyJsonEncodesTheJsonSerializeResult($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 690: public function testToPrettyJsonEncodesTheJsonSerializeResult($collection) - line 692: $c = $this->getMockBuilder($collection)->onlyMethods(['jsonSerialize'])->getMock(); - line 693: $c->expects($this->once())->method('jsonSerialize')->willReturn(['foo' => 'bar', 'baz' => 'qux']); - line 694: $results = $c->toPrettyJson(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 690: public function testToPrettyJsonEncodesTheJsonSerializeResult($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 703: public function testCastingToStringJsonEncodesTheToArrayResult($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 703: public function testCastingToStringJsonEncodesTheToArrayResult($collection) - line 705: $c = $this->getMockBuilder($collection)->onlyMethods(['jsonSerialize'])->getMock(); - line 706: $c->expects($this->once())->method('jsonSerialize')->willReturn(['foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 703: public function testCastingToStringJsonEncodesTheToArrayResult($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 711: public function testOffsetAccess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 711: public function testOffsetAccess() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 711: public function testOffsetAccess() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 724: public function testArrayAccessOffsetExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 724: public function testArrayAccessOffsetExists() - line 727: $this->assertTrue($c->offsetExists(0)); - line 728: $this->assertTrue($c->offsetExists(1)); - line 729: $this->assertFalse($c->offsetExists(2)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 732: public function testBehavesLikeAnArrayWithArrayAccess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 732: public function testBehavesLikeAnArrayWithArrayAccess() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 732: public function testBehavesLikeAnArrayWithArrayAccess() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 753: public function testArrayAccessOffsetGet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 753: public function testArrayAccessOffsetGet() - line 756: $this->assertSame('foo', $c->offsetGet(0)); - line 757: $this->assertSame('bar', $c->offsetGet(1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 760: public function testArrayAccessOffsetSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 760: public function testArrayAccessOffsetSet() - line 764: $c->offsetSet(1, 'bar'); - line 767: $c->offsetSet(null, 'qux'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 760: public function testArrayAccessOffsetSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 771: public function testArrayAccessOffsetUnset() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 771: public function testArrayAccessOffsetUnset() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 779: public function testForgetSingleKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 779: public function testForgetSingleKey() - line 782: $c = $c->forget(0)->all(); - line 788: $c = $c->forget('foo')->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 793: public function testForgetArrayOfKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 793: public function testForgetArrayOfKeys() - line 796: $c = $c->forget([0, 2])->all(); - line 802: $c = $c->forget(['foo', 'baz'])->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 808: public function testForgetCollectionOfKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 808: public function testForgetCollectionOfKeys() - line 811: $c = $c->forget(collect([0, 2]))->all(); - line 817: $c = $c->forget(collect(['foo', 'baz']))->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 824: public function testCountable($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 824: public function testCountable($collection) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 824: public function testCountable($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 831: public function testCountByStandalone($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 831: public function testCountByStandalone($collection) - line 834: $this->assertEquals(['foo' => 3, 'bar' => 2, 'foobar' => 1], $c->countBy()->all()); - line 837: $this->assertEquals([true => 2, false => 3], $c->countBy()->all()); - line 840: $this->assertEquals([1 => 3, 5 => 3], $c->countBy()->all()); - line 843: $this->assertEquals(['James' => 1, 'Joe' => 1, 'Taylor' => 1], $c->countBy()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 847: public function testCountByWithKey($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 847: public function testCountByWithKey($collection) - line 853: $this->assertEquals(['a' => 4, 'b' => 3], $c->countBy('key')->all()); - line 859: $this->assertEquals([1 => 1, 2 => 2], $c->countBy('key')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 863: public function testCountableByWithCallback($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 863: public function testCountableByWithCallback($collection) - line 866: $this->assertEquals(['a' => 2, 'b' => 1, 'c' => 1], $c->countBy(function ($name) { - line 871: $this->assertEquals([true => 2, false => 3], $c->countBy(function ($i) { - line 876: $this->assertEquals(['A' => 3, 'B' => 1], $c->countBy(static fn ($i) => TestStringBackedEnum::from($i))->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 879: public function testAdd() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 879: public function testAdd() - line 882: $this->assertEquals([1], $c->add(1)->values()->all()); - line 883: $this->assertEquals([1, 2], $c->add(2)->values()->all()); - line 884: $this->assertEquals([1, 2, ''], $c->add('')->values()->all()); - line 885: $this->assertEquals([1, 2, '', null], $c->add(null)->values()->all()); - line 886: $this->assertEquals([1, 2, '', null, false], $c->add(false)->values()->all()); - line 887: $this->assertEquals([1, 2, '', null, false, []], $c->add([])->values()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 892: public function testContainsOneItem($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 892: public function testContainsOneItem($collection) - line 894: $this->assertFalse((new $collection([]))->containsOneItem()); - line 895: $this->assertTrue((new $collection([1]))->containsOneItem()); - line 896: $this->assertFalse((new $collection([1, 2]))->containsOneItem()); - line 898: $this->assertFalse(collect([1, 2, 2])->containsOneItem(fn ($number) => $number === 2)); - line 899: $this->assertTrue(collect(['ant', 'bear', 'cat'])->containsOneItem(fn ($word) => strlen($word) === 4)); - line 900: $this->assertFalse(collect(['ant', 'bear', 'cat'])->containsOneItem(fn ($word) => strlen($word) > 4)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 903: public function testIterable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 903: public function testIterable() - line 906: $this->assertInstanceOf(ArrayIterator::class, $c->getIterator()); - line 907: $this->assertEquals(['foo'], $c->getIterator()->getArrayCopy()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 911: public function testCachingIterator($collection) Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 911: public function testCachingIterator($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 918: public function testFilter($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 918: public function testFilter($collection) - line 921: $this->assertEquals([1 => ['id' => 2, 'name' => 'World']], $c->filter(function ($item) { - line 926: $this->assertEquals(['Hello', 'World'], $c->filter()->values()->toArray()); - line 929: $this->assertEquals(['first' => 'Hello', 'second' => 'World'], $c->filter(function ($item, $key) { - line 934: $this->assertEquals([1, 2, 3], $c->filter()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 949: public function testHigherOrderUnique($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 949: public function testHigherOrderUnique($collection) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 949: public function testHigherOrderUnique($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 987: public function testWhere($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 29. Evidence: - line 987: public function testWhere($collection) - line 993: $c->where('v', 3)->values()->all() - line 997: $c->where('v', '=', 3)->values()->all() - line 1001: $c->where('v', '==', 3)->values()->all() - line 1005: $c->where('v', 'garbage', 3)->values()->all() - line 1009: $c->where('v', '===', 3)->values()->all() - line 1014: $c->where('v', '<>', 3)->values()->all() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1136: public function testWhereInstanceOf($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1136: public function testWhereInstanceOf($collection) - line 1139: $this->assertCount(3, $c->whereInstanceOf(stdClass::class)); - line 1141: $this->assertCount(4, $c->whereInstanceOf([stdClass::class, Str::class])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1145: public function testWhereIn($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1145: public function testWhereIn($collection) - line 1148: $this->assertEquals([['v' => 1], ['v' => 3], ['v' => '3']], $c->whereIn('v', [1, 3])->values()->all()); - line 1149: $this->assertEquals([], $c->whereIn('v', [2])->whereIn('v', [1, 3])->values()->all()); - line 1150: $this->assertEquals([['v' => 1]], $c->whereIn('v', [1])->whereIn('v', [1, 3])->values()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1161: public function testWhereNotIn($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1161: public function testWhereNotIn($collection) - line 1164: $this->assertEquals([['v' => 2], ['v' => 4]], $c->whereNotIn('v', [1, 3])->values()->all()); - line 1165: $this->assertEquals([['v' => 4]], $c->whereNotIn('v', [2])->whereNotIn('v', [1, 3])->values()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1192: public function testValue($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1192: public function testValue($collection) - line 1196: $this->assertEquals('Hello', $c->value('name')); - line 1197: $this->assertEquals('World', $c->where('id', 2)->value('name')); - line 1204: $this->assertEquals(['value' => 'foo'], $c->value('pivot')); - line 1205: $this->assertEquals('foo', $c->value('pivot.value')); - line 1206: $this->assertEquals('bar', $c->where('id', 2)->value('pivot.value')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1210: public function testValueUsingEnum($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1210: public function testValueUsingEnum($collection) - line 1214: $this->assertSame(StaffEnum::Taylor, $c->value('name')); - line 1215: $this->assertEquals(StaffEnum::Joe, $c->where('id', 2)->value('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1219: public function testValueWithNegativeValue($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1219: public function testValueWithNegativeValue($collection) - line 1223: $this->assertEquals(0, $c->value('balance')); - line 1227: $this->assertEquals('', $c->value('balance')); - line 1231: $this->assertEquals(null, $c->value('balance')); - line 1235: $this->assertEquals(200, $c->value('balance')); - line 1239: $this->assertEquals(0, $c->value('balance')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1243: public function testValueWithObjects($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1243: public function testValueWithObjects($collection) - line 1251: $this->assertEquals('', $c->value('balance')); - line 1259: $this->assertEquals(0, $c->value('balance.value')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1263: public function testBetween($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1263: public function testBetween($collection) - line 1268: $c->whereBetween('v', [2, 4])->values()->all()); - line 1269: $this->assertEquals([['v' => 1]], $c->whereBetween('v', [-1, 1])->all()); - line 1270: $this->assertEquals([['v' => 3], ['v' => '3']], $c->whereBetween('v', [3, 3])->values()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1274: public function testWhereNotBetween($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1274: public function testWhereNotBetween($collection) - line 1278: $this->assertEquals([['v' => 1]], $c->whereNotBetween('v', [2, 4])->values()->all()); - line 1279: $this->assertEquals([['v' => 2], ['v' => 3], ['v' => 3], ['v' => 4]], $c->whereNotBetween('v', [-1, 1])->values()->all()); - line 1280: $this->assertEquals([['v' => 1], ['v' => '2'], ['v' => '4']], $c->whereNotBetween('v', [3, 3])->values()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1284: public function testFlatten($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1284: public function testFlatten($collection) - line 1288: $this->assertEquals(['#foo', '#bar', '#baz'], $c->flatten()->all()); - line 1292: $this->assertEquals(['#foo', '#bar', '#baz'], $c->flatten()->all()); - line 1296: $this->assertEquals(['#foo', '#bar', '#baz'], $c->flatten()->all()); - line 1300: $this->assertEquals(['#foo', '#bar', '#baz'], $c->flatten()->all()); - line 1304: $this->assertEquals(['#foo', '#bar', '#baz'], $c->flatten()->all()); - line 1308: $this->assertEquals(['#foo', '#bar', '#baz'], $c->flatten()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1320: public function testFlattenWithDepth($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1320: public function testFlattenWithDepth($collection) - line 1324: $this->assertEquals(['#foo', '#bar', '#baz', '#zap'], $c->flatten()->all()); - line 1328: $this->assertEquals(['#foo', ['#bar', ['#baz']], '#zap'], $c->flatten(1)->all()); - line 1331: $this->assertEquals(['#foo', '#bar', ['#baz'], '#zap'], $c->flatten(2)->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1335: public function testFlattenIgnoresKeys($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1335: public function testFlattenIgnoresKeys($collection) - line 1339: $this->assertEquals(['#foo', '#bar', '#baz', '#zap'], $c->flatten()->all()); - line 1343: $this->assertEquals(['#foo', '#bar', '#baz', '#zap'], $c->flatten(1)->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1392: public function testMultiplyCollection($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1392: public function testMultiplyCollection($collection) - line 1396: $this->assertEquals([], $c->multiply(-1)->all()); - line 1397: $this->assertEquals([], $c->multiply(0)->all()); - line 1401: $c->multiply(1)->all() - line 1406: $c->multiply(3)->all() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1418: public function testReplaceArray($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1418: public function testReplaceArray($collection) - line 1421: $this->assertEquals(['a', 'd', 'e'], $c->replace([1 => 'd', 2 => 'e'])->all()); - line 1424: $this->assertEquals(['a', 'd', 'e', 'f', 'g'], $c->replace([1 => 'd', 2 => 'e', 3 => 'f', 4 => 'g'])->all()); - line 1427: $this->assertEquals(['name' => 'taylor', 'family' => 'otwell', 'age' => 26], $c->replace(['name' => 'taylor', 'age' => 26])->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1431: public function testReplaceCollection($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1431: public function testReplaceCollection($collection) - line 1436: $c->replace(new $collection([1 => 'd', 2 => 'e']))->all() - line 1442: $c->replace(new $collection([1 => 'd', 2 => 'e', 3 => 'f', 4 => 'g']))->all() - line 1448: $c->replace(new $collection(['name' => 'taylor', 'age' => 26]))->all() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1460: public function testReplaceRecursiveArray($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1460: public function testReplaceRecursiveArray($collection) - line 1463: $this->assertEquals(['z', 'b', ['c', 'e']], $c->replaceRecursive(['z', 2 => [1 => 'e']])->all()); - line 1466: $this->assertEquals(['z', 'b', ['c', 'e'], 'f'], $c->replaceRecursive(['z', 2 => [1 => 'e'], 'f'])->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1508: public function testDiffUsingWithCollection($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1508: public function testDiffUsingWithCollection($collection) - line 1512: $this->assertEquals(['en_GB', 'fr', 'HR'], $c->diff(new $collection(['en_gb', 'hr']))->values()->toArray()); - line 1514: $this->assertEquals(['fr'], $c->diffUsing(new $collection(['en_gb', 'hr']), 'strcasecmp')->values()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1540: public function testDiffKeysUsing($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1540: public function testDiffKeysUsing($collection) - line 1545: $this->assertEquals(['id' => 1, 'first_word' => 'Hello'], $c1->diffKeys($c2)->all()); - line 1547: $this->assertEquals(['first_word' => 'Hello'], $c1->diffKeysUsing($c2, 'strcasecmp')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1559: public function testDiffAssocUsing($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1559: public function testDiffAssocUsing($collection) - line 1564: $this->assertEquals(['a' => 'green', 'b' => 'brown', 'c' => 'blue', 'red'], $c1->diffAssoc($c2)->all()); - line 1566: $this->assertEquals(['b' => 'brown', 'c' => 'blue', 'red'], $c1->diffAssocUsing($c2, 'strcasecmp')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1570: public function testDuplicates($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1570: public function testDuplicates($collection) - line 1572: $duplicates = $collection::make([1, 2, 1, 'laravel', null, 'laravel', 'php', null])->duplicates()->all(); - line 1576: $duplicates = $collection::make([2, '2', [], null])->duplicates()->all(); - line 1580: $duplicates = $collection::make([1, '2', ['laravel'], ['laravel'], null, '2'])->duplicates()->all(); - line 1585: $duplicates = $collection::make([new Collection(['laravel']), $expected, $expected, [], '2', '2'])->duplicates()->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1590: public function testDuplicatesWithKey($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1590: public function testDuplicatesWithKey($collection) - line 1593: $duplicates = $collection::make($items)->duplicates('framework')->all(); - line 1598: $duplicates = $collection::make($items)->duplicates('Framework', true)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1613: public function testDuplicatesWithStrict($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1613: public function testDuplicatesWithStrict($collection) - line 1615: $duplicates = $collection::make([1, 2, 1, 'laravel', null, 'laravel', 'php', null])->duplicatesStrict()->all(); - line 1619: $duplicates = $collection::make([2, '2', [], null])->duplicatesStrict()->all(); - line 1623: $duplicates = $collection::make([1, '2', ['laravel'], ['laravel'], null, '2'])->duplicatesStrict()->all(); - line 1628: $duplicates = $collection::make([new $collection(['laravel']), $expected, $expected, [], '2', '2'])->duplicatesStrict()->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1633: public function testEach($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1633: public function testEach($collection) - line 1638: $c->each(function ($item, $key) use (&$result) { - line 1644: $c->each(function ($item, $key) use (&$result) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1654: public function testEachSpread($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1654: public function testEachSpread($collection) - line 1659: $c->eachSpread(function ($number, $character) use (&$result) { - line 1662: $this->assertEquals($c->all(), $result); - line 1665: $c->eachSpread(function ($number, $character) use (&$result) { - line 1673: $c->eachSpread(function ($number, $character, $key) use (&$result) { - line 1680: $c->eachSpread(function ($number, $character, $key) use (&$result) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1758: public function testIntersectByKeys($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1758: public function testIntersectByKeys($collection) - line 1761: $this->assertEquals(['name' => 'Mateus'], $c->intersectByKeys(new $collection(['name' => 'Mateus', 'surname' => 'Guimaraes']))->all()); - line 1764: $this->assertEquals(['name' => 'taylor', 'family' => 'otwell'], $c->intersectByKeys(new $collection(['height' => 180, 'name' => 'amir', 'family' => 'moharami']))->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1768: public function testUnique($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1768: public function testUnique($collection) - line 1771: $this->assertEquals(['Hello', 'World'], $c->unique()->all()); - line 1774: $this->assertEquals([[1, 2], [2, 3], [3, 4]], $c->unique()->values()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1778: public function testUniqueWithCallback($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1778: public function testUniqueWithCallback($collection) - line 1792: ], $c->unique('first')->all()); - line 1798: ], $c->unique(function ($item) { - line 1805: ], $c->unique(function ($item, $key) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1841: public function testCollapse($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1841: public function testCollapse($collection) - line 1845: $this->assertEquals([$object1, $object2], $data->collapse()->all()); - line 1849: $this->assertEquals([1, 2, 3, 'foo', 'bar', 'baz', 'boom'], $data->collapse()->all()); - line 1853: $this->assertEquals([], $data->collapse()->all()); - line 1857: $this->assertEquals([1, 2, 'foo', 'bar'], $data->collapse()->all()); - line 1862: $this->assertEquals([1, 2, 3, 'foo', 'bar', 'baz', 'boom'], $data->collapse()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1873: public function testCollapseWithKeys($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1873: public function testCollapseWithKeys($collection) - line 1876: $this->assertEquals([1 => 'a', 3 => 'c', 2 => 'b'], $data->collapseWithKeys()->all()); - line 1880: $this->assertEquals([], $data->collapseWithKeys()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1891: public function testJoin($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1891: public function testJoin($collection) - line 1893: $this->assertSame('a, b, c', (new $collection(['a', 'b', 'c']))->join(', ')); - line 1895: $this->assertSame('a, b and c', (new $collection(['a', 'b', 'c']))->join(', ', ' and ')); - line 1897: $this->assertSame('a and b', (new $collection(['a', 'b']))->join(', ', ' and ')); - line 1899: $this->assertSame('a', (new $collection(['a']))->join(', ', ' and ')); - line 1901: $this->assertSame('', (new $collection([]))->join(', ', ' and ')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1905: public function testCrossJoin($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1905: public function testCrossJoin($collection) - line 1910: (new $collection([1, 2]))->crossJoin(['a', 'b'])->all() - line 1916: (new $collection([1, 2]))->crossJoin(new $collection(['a', 'b']))->all() - line 1927: (new $collection([1, 2]))->crossJoin( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1935: public function testSort($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 1935: public function testSort($collection) - line 1937: $data = (new $collection([5, 3, 1, 2, 4]))->sort(); - line 1938: $this->assertEquals([1, 2, 3, 4, 5], $data->values()->all()); - line 1940: $data = (new $collection([-1, -3, -2, -4, -5, 0, 5, 3, 1, 2, 4]))->sort(); - line 1941: $this->assertEquals([-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5], $data->values()->all()); - line 1943: $data = (new $collection(['foo', 'bar-10', 'bar-1']))->sort(); - line 1944: $this->assertEquals(['bar-1', 'bar-10', 'foo'], $data->values()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1954: public function testSortDesc($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 1954: public function testSortDesc($collection) - line 1956: $data = (new $collection([5, 3, 1, 2, 4]))->sortDesc(); - line 1957: $this->assertEquals([5, 4, 3, 2, 1], $data->values()->all()); - line 1959: $data = (new $collection([-1, -3, -2, -4, -5, 0, 5, 3, 1, 2, 4]))->sortDesc(); - line 1960: $this->assertEquals([5, 4, 3, 2, 1, 0, -1, -2, -3, -4, -5], $data->values()->all()); - line 1962: $data = (new $collection(['bar-1', 'foo', 'bar-10']))->sortDesc(); - line 1963: $this->assertEquals(['foo', 'bar-10', 'bar-1'], $data->values()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1973: public function testSortWithCallback($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1973: public function testSortWithCallback($collection) - line 1975: $data = (new $collection([5, 3, 1, 2, 4]))->sort(function ($a, $b) { - line 1983: $this->assertEquals(range(1, 5), array_values($data->all())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1987: public function testSortBy($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1987: public function testSortBy($collection) - line 1990: $data = $data->sortBy(function ($x) { - line 1994: $this->assertEquals(['dayle', 'taylor'], array_values($data->all())); - line 1997: $data = $data->sortByDesc(function ($x) { - line 2001: $this->assertEquals(['taylor', 'dayle'], array_values($data->all())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2005: public function testSortByString($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2005: public function testSortByString($collection) - line 2008: $data = $data->sortBy('name', SORT_STRING); - line 2010: $this->assertEquals([['name' => 'dayle'], ['name' => 'taylor']], array_values($data->all())); - line 2013: $data = $data->sortBy('name', SORT_STRING, true); - line 2015: $this->assertEquals([['name' => 'taylor'], ['name' => 'dayle']], array_values($data->all())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2019: public function testSortByCallableString($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2019: public function testSortByCallableString($collection) - line 2022: $data = $data->sortBy([['sort', 'asc']]); - line 2024: $this->assertEquals([['sort' => 1], ['sort' => 2]], array_values($data->all())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2028: public function testSortByCallableStringDesc($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2028: public function testSortByCallableStringDesc($collection) - line 2031: $data = $data->sortByDesc(['id']); - line 2032: $this->assertEquals([['id' => 2, 'name' => 'bar'], ['id' => 1, 'name' => 'foo']], array_values($data->all())); - line 2035: $data = $data->sortByDesc(['id']); - line 2036: $this->assertEquals([['id' => 2, 'name' => 'bar'], ['id' => 2, 'name' => 'baz'], ['id' => 1, 'name' => 'foo']], array_values($data->all())); - line 2038: $data = $data->sortByDesc(['id', 'name']); - line 2039: $this->assertEquals([['id' => 2, 'name' => 'baz'], ['id' => 2, 'name' => 'bar'], ['id' => 1, 'name' => 'foo']], array_values($data->all())); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2043: public function testSortByAlwaysReturnsAssoc($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 2043: public function testSortByAlwaysReturnsAssoc($collection) - line 2046: $data = $data->sortBy(function ($x) { - line 2050: $this->assertEquals(['b' => 'dayle', 'a' => 'taylor'], $data->all()); - line 2053: $data = $data->sortBy(function ($x) { - line 2057: $this->assertEquals([1 => 'dayle', 0 => 'taylor'], $data->all()); - line 2060: $data = $data->sortBy([['sort', 'asc']]); - line 2062: $this->assertEquals(['b' => ['sort' => 1], 'a' => ['sort' => 2]], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2071: public function testSortByMany($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 36. Evidence: - line 2071: public function testSortByMany($collection) - line 2076: $expected = $data->pluck('item')->toArray(); - line 2079: $data = $data->sortBy(['item']); - line 2080: $this->assertEquals($data->pluck('item')->toArray(), $expected); - line 2083: $data = $data->sortBy([['item', 'desc']]); - line 2084: $this->assertEquals($data->pluck('item')->toArray(), $expected); - line 2087: $data = $data->sortBy(['item'], SORT_STRING); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2157: public function testNaturalSortByManyWithNull($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2157: public function testNaturalSortByManyWithNull($collection) - line 2167: $data = $data->sortBy([ - line 2172: $this->assertEquals($itemBar, $data->first()); - line 2173: $this->assertEquals($itemFoo, $data->skip(1)->first()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2201: public function testReverse($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2201: public function testReverse($collection) - line 2204: $reversed = $data->reverse(); - line 2206: $this->assertSame([1 => 'alan', 0 => 'zaeed'], $reversed->all()); - line 2209: $reversed = $data->reverse(); - line 2211: $this->assertSame(['framework' => 'laravel', 'name' => 'taylor'], $reversed->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2222: public function testChunk($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2222: public function testChunk($collection) - line 2225: $data = $data->chunk(3); - line 2228: $this->assertInstanceOf($collection, $data->first()); - line 2230: $this->assertEquals([1, 2, 3], $data->first()->toArray()); - line 2231: $this->assertEquals([9 => 10], $data->get(3)->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2257: public function testChunkPreservingKeys($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2257: public function testChunkPreservingKeys($collection) - line 2263: $data->chunk(2)->toArray() - line 2270: $data->chunk(2, false)->toArray() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2275: public function testSplitIn($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2275: public function testSplitIn($collection) - line 2278: $data = $data->splitIn(3); - line 2281: $this->assertInstanceOf($collection, $data->first()); - line 2283: $this->assertEquals([1, 2, 3, 4], $data->get(0)->values()->toArray()); - line 2284: $this->assertEquals([5, 6, 7, 8], $data->get(1)->values()->toArray()); - line 2285: $this->assertEquals([9, 10], $data->get(2)->values()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2289: public function testChunkWhileOnEqualElements($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2289: public function testChunkWhileOnEqualElements($collection) - line 2292: ->chunkWhile(function ($current, $key, $chunk) { - line 2297: $this->assertInstanceOf($collection, $data->first()); - line 2298: $this->assertEquals([0 => 'A', 1 => 'A'], $data->first()->toArray()); - line 2299: $this->assertEquals([2 => 'B', 3 => 'B'], $data->get(1)->toArray()); - line 2300: $this->assertEquals([4 => 'C', 5 => 'C', 6 => 'C'], $data->last()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2304: public function testChunkWhileOnContiguouslyIncreasingIntegers($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 2304: public function testChunkWhileOnContiguouslyIncreasingIntegers($collection) - line 2307: ->chunkWhile(function ($current, $key, $chunk) { - line 2312: $this->assertInstanceOf($collection, $data->first()); - line 2313: $this->assertEquals([0 => 1], $data->first()->toArray()); - line 2314: $this->assertEquals([1 => 4], $data->get(1)->toArray()); - line 2315: $this->assertEquals([2 => 9, 3 => 10, 4 => 11, 5 => 12], $data->get(2)->toArray()); - line 2316: $this->assertEquals([6 => 15, 7 => 16], $data->get(3)->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2321: public function testChunkWhilePreservingStringKeys($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2321: public function testChunkWhilePreservingStringKeys($collection) - line 2324: ->chunkWhile(function ($current, $key, $chunk) { - line 2329: $this->assertInstanceOf($collection, $data->first()); - line 2330: $this->assertEquals(['a' => 1, 'b' => 1], $data->first()->toArray()); - line 2331: $this->assertEquals(['c' => 2, 'd' => 2], $data->get(1)->toArray()); - line 2332: $this->assertEquals(['e' => 3, 'f' => 3, 'g' => 3], $data->last()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2336: public function testEvery($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 2336: public function testEvery($collection) - line 2339: $this->assertTrue($c->every('key', 'value')); - line 2340: $this->assertTrue($c->every(function () { - line 2345: $this->assertFalse($c->every('age', 18)); - line 2346: $this->assertTrue($c->every('age', '>=', 18)); - line 2347: $this->assertTrue($c->every(function ($item) { - line 2350: $this->assertFalse($c->every(function ($item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2366: public function testExcept($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 2366: public function testExcept($collection) - line 2370: $this->assertEquals($data->all(), $data->except(null)->all()); - line 2371: $this->assertEquals(['first' => 'Taylor'], $data->except(['last', 'email', 'missing'])->all()); - line 2372: $this->assertEquals(['first' => 'Taylor'], $data->except('last', 'email', 'missing')->all()); - line 2373: $this->assertEquals(['first' => 'Taylor'], $data->except(collect(['last', 'email', 'missing']))->all()); - line 2375: $this->assertEquals(['first' => 'Taylor', 'email' => 'taylorotwell@gmail.com'], $data->except(['last'])->all()); - line 2376: $this->assertEquals(['first' => 'Taylor', 'email' => 'taylorotwell@gmail.com'], $data->except('last')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2388: public function testPluckWithArrayAndObjectValues($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2388: public function testPluckWithArrayAndObjectValues($collection) - line 2391: $this->assertEquals(['taylor' => 'foo', 'dayle' => 'bar'], $data->pluck('email', 'name')->all()); - line 2392: $this->assertEquals(['foo', 'bar'], $data->pluck('email')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2396: public function testPluckWithArrayAccessValues($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2396: public function testPluckWithArrayAccessValues($collection) - line 2403: $this->assertEquals(['taylor' => 'foo', 'dayle' => 'bar'], $data->pluck('email', 'name')->all()); - line 2404: $this->assertEquals(['foo', 'bar'], $data->pluck('email')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2429: public function testPluckWithClosure($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2429: public function testPluckWithClosure($collection) - line 2446: $this->assertEquals(['amir (verified)', 'taylor (verified)'], $data->pluck(fn (array $row) => "{$row['name']} (verified)")->all()); - line 2447: $this->assertEquals(['php/python' => 'amir', 'php/asp/java' => 'taylor'], $data->pluck('name', fn (array $row) => implode('/', $row['skill']['backend']))->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2464: public function testHas($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2464: public function testHas($collection) - line 2467: $this->assertTrue($data->has('first')); - line 2468: $this->assertFalse($data->has('third')); - line 2469: $this->assertTrue($data->has(['first', 'second'])); - line 2470: $this->assertFalse($data->has(['third', 'first'])); - line 2471: $this->assertTrue($data->has('first', 'second')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2475: public function testHasAny($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 2475: public function testHasAny($collection) - line 2479: $this->assertTrue($data->hasAny('first')); - line 2480: $this->assertFalse($data->hasAny('third')); - line 2481: $this->assertTrue($data->hasAny(['first', 'second'])); - line 2482: $this->assertTrue($data->hasAny(['first', 'fourth'])); - line 2483: $this->assertFalse($data->hasAny(['third', 'fourth'])); - line 2484: $this->assertFalse($data->hasAny('third', 'fourth')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2489: public function testImplode($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 2489: public function testImplode($collection) - line 2492: $this->assertSame('foobar', $data->implode('email')); - line 2493: $this->assertSame('foo,bar', $data->implode('email', ',')); - line 2496: $this->assertSame('taylordayle', $data->implode('')); - line 2497: $this->assertSame('taylor,dayle', $data->implode(',')); - line 2503: $this->assertSame('foobar', $data->implode('email')); - line 2504: $this->assertSame('foo,bar', $data->implode('email', ',')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2517: public function testImplodeModels($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2517: public function testImplodeModels($collection) - line 2521: $model->setAttribute('email', 'foo'); - line 2524: $modelTwo->setAttribute('email', 'bar'); - line 2527: $this->assertSame('foobar', $data->implode('email')); - line 2528: $this->assertSame('foo,bar', $data->implode('email', ',')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2532: public function testTake($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2532: public function testTake($collection) - line 2535: $data = $data->take(2); - line 2536: $this->assertEquals(['taylor', 'dayle'], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2539: public function testGetOrPut() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2539: public function testGetOrPut() - line 2543: $this->assertSame('taylor', $data->getOrPut('name', null)); - line 2544: $this->assertSame('foo', $data->getOrPut('email', null)); - line 2545: $this->assertSame('male', $data->getOrPut('gender', 'male')); - line 2553: $this->assertSame('taylor', $data->getOrPut('name', function () { - line 2557: $this->assertSame('foo', $data->getOrPut('email', function () { - line 2561: $this->assertSame('male', $data->getOrPut('gender', function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2570: public function testGetOrPutWithNoKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2570: public function testGetOrPutWithNoKey() - line 2573: $this->assertSame('dayle', $data->getOrPut(null, 'dayle')); - line 2574: $this->assertSame('john', $data->getOrPut(null, 'john')); - line 2575: $this->assertSame(['taylor', 'shawn', 'dayle', 'john'], $data->all()); - line 2578: $this->assertSame('shawn', $data->getOrPut(null, 'dayle')); - line 2579: $this->assertSame(['taylor', '' => 'shawn'], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2582: public function testPut() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2582: public function testPut() - line 2585: $data = $data->put('name', 'dayle'); - line 2586: $this->assertEquals(['name' => 'dayle', 'email' => 'foo'], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2589: public function testPutWithNoKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2589: public function testPutWithNoKey() - line 2592: $data = $data->put(null, 'dayle'); - line 2593: $this->assertEquals(['taylor', 'shawn', 'dayle'], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2597: public function testRandom($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 2597: public function testRandom($collection) - line 2601: $random = $data->random(); - line 2603: $this->assertContains($random, $data->all()); - line 2605: $random = $data->random(0); - line 2609: $random = $data->random(1); - line 2613: $random = $data->random(2); - line 2617: $random = $data->random('0'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2645: public function testRandomOnEmptyCollection($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2645: public function testRandomOnEmptyCollection($collection) - line 2649: $random = $data->random(0); - line 2653: $random = $data->random('0'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2659: public function testTakeLast($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2659: public function testTakeLast($collection) - line 2662: $data = $data->take(-2); - line 2663: $this->assertEquals([1 => 'dayle', 2 => 'shawn'], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2667: public function testTakeUntilUsingValue($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2667: public function testTakeUntilUsingValue($collection) - line 2671: $data = $data->takeUntil(3); - line 2673: $this->assertSame([1, 2], $data->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2677: public function testTakeUntilUsingCallback($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2677: public function testTakeUntilUsingCallback($collection) - line 2681: $data = $data->takeUntil(function ($item) { - line 2685: $this->assertSame([1, 2], $data->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2689: public function testTakeUntilReturnsAllItemsForUnmetValue($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2689: public function testTakeUntilReturnsAllItemsForUnmetValue($collection) - line 2693: $actual = $data->takeUntil(99); - line 2695: $this->assertSame($data->toArray(), $actual->toArray()); - line 2697: $actual = $data->takeUntil(function ($item) { - line 2701: $this->assertSame($data->toArray(), $actual->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2721: public function testTakeWhileUsingValue($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2721: public function testTakeWhileUsingValue($collection) - line 2725: $data = $data->takeWhile(1); - line 2727: $this->assertSame([1, 1], $data->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2731: public function testTakeWhileUsingCallback($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2731: public function testTakeWhileUsingCallback($collection) - line 2735: $data = $data->takeWhile(function ($item) { - line 2739: $this->assertSame([1, 2], $data->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2743: public function testTakeWhileReturnsNoItemsForUnmetValue($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2743: public function testTakeWhileReturnsNoItemsForUnmetValue($collection) - line 2747: $actual = $data->takeWhile(2); - line 2749: $this->assertSame([], $actual->toArray()); - line 2751: $actual = $data->takeWhile(function ($item) { - line 2755: $this->assertSame([], $actual->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2776: public function testMacroable($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2776: public function testMacroable($collection) - line 2780: return $this->filter(function ($item) { - line 2789: $this->assertSame(['a', 'aa', 'aaa'], $c->foo()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2793: public function testCanAddMethodsToProxy($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2793: public function testCanAddMethodsToProxy($collection) - line 2796: return $this->filter(function ($item) use ($callback) { - line 2805: $this->assertSame([['age' => 18], ['age' => 56]], $c->adults->age->values()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2809: public function testMakeMethod($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2809: public function testMakeMethod($collection) - line 2811: $data = $collection::make('foo'); - line 2812: $this->assertEquals(['foo'], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2816: public function testMakeMethodFromNull($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2816: public function testMakeMethodFromNull($collection) - line 2818: $data = $collection::make(null); - line 2819: $this->assertEquals([], $data->all()); - line 2822: $this->assertEquals([], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2826: public function testMakeMethodFromCollection($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2826: public function testMakeMethodFromCollection($collection) - line 2828: $firstCollection = $collection::make(['foo' => 'bar']); - line 2830: $this->assertEquals(['foo' => 'bar'], $secondCollection->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2834: public function testMakeMethodFromArray($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2834: public function testMakeMethodFromArray($collection) - line 2836: $data = $collection::make(['foo' => 'bar']); - line 2837: $this->assertEquals(['foo' => 'bar'], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2841: public function testWrapWithScalar($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2841: public function testWrapWithScalar($collection) - line 2843: $data = $collection::wrap('foo'); - line 2844: $this->assertEquals(['foo'], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2848: public function testWrapWithArray($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2848: public function testWrapWithArray($collection) - line 2850: $data = $collection::wrap(['foo']); - line 2851: $this->assertEquals(['foo'], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2855: public function testWrapWithArrayable($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2855: public function testWrapWithArrayable($collection) - line 2857: $data = $collection::wrap($o = new TestArrayableObject); - line 2858: $this->assertEquals([$o], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2862: public function testWrapWithJsonable($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2862: public function testWrapWithJsonable($collection) - line 2864: $data = $collection::wrap($o = new TestJsonableObject); - line 2865: $this->assertEquals([$o], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2869: public function testWrapWithJsonSerialize($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2869: public function testWrapWithJsonSerialize($collection) - line 2871: $data = $collection::wrap($o = new TestJsonSerializeObject); - line 2872: $this->assertEquals([$o], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2876: public function testWrapWithCollectionClass($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2876: public function testWrapWithCollectionClass($collection) - line 2878: $data = $collection::wrap($collection::make(['foo'])); - line 2879: $this->assertEquals(['foo'], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2883: public function testWrapWithCollectionSubclass($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2883: public function testWrapWithCollectionSubclass($collection) - line 2885: $data = TestCollectionSubclass::wrap($collection::make(['foo'])); - line 2886: $this->assertEquals(['foo'], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2910: public function testEmptyMethod($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2910: public function testEmptyMethod($collection) - line 2912: $collection = $collection::empty(); - line 2914: $this->assertCount(0, $collection->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2918: public function testTimesMethod($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 2918: public function testTimesMethod($collection) - line 2934: $this->assertEquals(['slug-1', 'slug-2'], $two->all()); - line 2935: $this->assertTrue($zero->isEmpty()); - line 2936: $this->assertTrue($negative->isEmpty()); - line 2937: $this->assertEquals(range(1, 5), $range->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2941: public function testRangeMethod($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2941: public function testRangeMethod($collection) - line 2945: $collection::range(1, 5)->all() - line 2950: $collection::range(-2, 2)->all() - line 2955: $collection::range(-4, -2)->all() - line 2960: $collection::range(5, 1)->all() - line 2965: $collection::range(2, -2)->all() - line 2970: $collection::range(-2, -4)->all() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2975: public function testFromJson($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2975: public function testFromJson($collection) - line 2979: $instance = $collection::fromJson($json); - line 2981: $this->assertSame($array, $instance->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2985: public function testFromJsonWithDepth($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2985: public function testFromJsonWithDepth($collection) - line 2989: $instance = $collection::fromJson($json, 1); - line 2991: $this->assertEmpty($instance->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2985: public function testFromJsonWithDepth($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2996: public function testFromJsonWithFlags($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2996: public function testFromJsonWithFlags($collection) - line 2998: $instance = $collection::fromJson('{"int":99999999999999999999999}', 512, JSON_BIGINT_AS_STRING); - line 3000: $this->assertSame(['int' => '99999999999999999999999'], $instance->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3004: public function testConstructMakeFromObject($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3004: public function testConstructMakeFromObject($collection) - line 3008: $data = $collection::make($object); - line 3009: $this->assertEquals(['foo' => 'bar'], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3020: public function testConstructMethodFromNull($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3020: public function testConstructMethodFromNull($collection) - line 3023: $this->assertEquals([], $data->all()); - line 3026: $this->assertEquals([], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3064: public function testSplice() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 3064: public function testSplice() - line 3067: $data->splice(1); - line 3068: $this->assertEquals(['foo'], $data->all()); - line 3071: $data->splice(1, 0, 'bar'); - line 3072: $this->assertEquals(['foo', 'bar', 'baz'], $data->all()); - line 3075: $data->splice(1, 1); - line 3076: $this->assertEquals(['foo'], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3103: public function testMap($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 3103: public function testMap($collection) - line 3106: $mapped = $data->map(function ($item, $key) { - line 3109: $this->assertEquals([2, 4, 6], $mapped->all()); - line 3110: $this->assertEquals([1, 2, 3], $data->all()); - line 3113: $data = $data->map(function ($item, $key) { - line 3116: $this->assertEquals(['first' => 'first-rolyat', 'last' => 'last-llewto'], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3120: public function testMapSpread($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 3120: public function testMapSpread($collection) - line 3124: $result = $c->mapSpread(function ($number, $character) { - line 3127: $this->assertEquals(['1-a', '2-b'], $result->all()); - line 3129: $result = $c->mapSpread(function ($number, $character, $key) { - line 3132: $this->assertEquals(['1-a-0', '2-b-1'], $result->all()); - line 3135: $result = $c->mapSpread(function ($number, $character, $key) { - line 3138: $this->assertEquals(['1-a-0', '2-b-1'], $result->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3142: public function testFlatMap($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3142: public function testFlatMap($collection) - line 3148: $data = $data->flatMap(function ($person) { - line 3151: $this->assertEquals(['programming', 'basketball', 'music', 'powerlifting'], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3155: public function testMapToDictionary($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3155: public function testMapToDictionary($collection) - line 3164: $groups = $data->mapToDictionary(function ($item, $key) { - line 3169: $this->assertEquals(['A' => [1], 'B' => [2, 4], 'C' => [3]], $groups->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3174: public function testMapToDictionaryWithNumericKeys($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3174: public function testMapToDictionaryWithNumericKeys($collection) - line 3178: $groups = $data->mapToDictionary(function ($item, $key) { - line 3182: $this->assertEquals([1 => [0, 4], 2 => [1, 3], 3 => [2]], $groups->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3186: public function testMapToGroups($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3186: public function testMapToGroups($collection) - line 3195: $groups = $data->mapToGroups(function ($item, $key) { - line 3200: $this->assertEquals(['A' => [1], 'B' => [2, 4], 'C' => [3]], $groups->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3205: public function testMapToGroupsWithNumericKeys($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 3205: public function testMapToGroupsWithNumericKeys($collection) - line 3209: $groups = $data->mapToGroups(function ($item, $key) { - line 3213: $this->assertEquals([1 => [0, 4], 2 => [1, 3], 3 => [2]], $groups->toArray()); - line 3214: $this->assertEquals([1, 2, 3, 2, 1], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3218: public function testMapWithKeys($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3218: public function testMapWithKeys($collection) - line 3225: $data = $data->mapWithKeys(function ($pokemon) { - line 3230: $data->all() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3235: public function testMapWithKeysIntegerKeys($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3235: public function testMapWithKeysIntegerKeys($collection) - line 3242: $data = $data->mapWithKeys(function ($item) { - line 3247: $data->keys()->all() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3252: public function testMapWithKeysMultipleRows($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3252: public function testMapWithKeysMultipleRows($collection) - line 3259: $data = $data->mapWithKeys(function ($item) { - line 3271: $data->all() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3276: public function testMapWithKeysCallbackKey($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3276: public function testMapWithKeysCallbackKey($collection) - line 3283: $data = $data->mapWithKeys(function ($item, $key) { - line 3288: $data->keys()->all() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3332: public function testNth($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 3332: public function testNth($collection) - line 3343: $this->assertEquals(['a', 'e'], $data->nth(4)->all()); - line 3344: $this->assertEquals(['b', 'f'], $data->nth(4, 1)->all()); - line 3345: $this->assertEquals(['c'], $data->nth(4, 2)->all()); - line 3346: $this->assertEquals(['d'], $data->nth(4, 3)->all()); - line 3347: $this->assertEquals(['c', 'e'], $data->nth(2, 2)->all()); - line 3348: $this->assertEquals(['c', 'd', 'e', 'f'], $data->nth(1, 2)->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3357: public function testMapWithKeysOverwritingKeys($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3357: public function testMapWithKeysOverwritingKeys($collection) - line 3364: $data = $data->mapWithKeys(function ($item) { - line 3372: $data->all() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3376: public function testTransform() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3376: public function testTransform() - line 3379: $data->transform(function ($item, $key) { - line 3382: $this->assertEquals(['first' => 'first-rolyat', 'last' => 'last-llewto'], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3386: public function testGroupByAttribute($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3386: public function testGroupByAttribute($collection) - line 3390: $result = $data->groupBy('rating'); - line 3391: $this->assertEquals([1 => [['rating' => 1, 'url' => '1'], ['rating' => 1, 'url' => '1']], 2 => [['rating' => 2, 'url' => '2']]], $result->toArray()); - line 3393: $result = $data->groupBy('url'); - line 3394: $this->assertEquals([1 => [['rating' => 1, 'url' => '1'], ['rating' => 1, 'url' => '1']], 2 => [['rating' => 2, 'url' => '2']]], $result->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3398: public function testGroupByAttributeWithStringableKey($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3398: public function testGroupByAttributeWithStringableKey($collection) - line 3412: $result = $data->groupBy('name'); - line 3413: $this->assertEquals(['Laravel' => [$payload[0], $payload[1]], 'Framework' => [$payload[2]]], $result->toArray()); - line 3415: $result = $data->groupBy('url'); - line 3416: $this->assertEquals(['1' => [$payload[0], $payload[1]], '2' => [$payload[2]]], $result->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3420: public function testGroupByAttributeWithEnumKey($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3420: public function testGroupByAttributeWithEnumKey($collection) - line 3428: $result = $data->groupBy('name'); - line 3429: $this->assertEquals(['A' => [$payload[0], $payload[2]], '1' => [$payload[1]]], $result->toArray()); - line 3431: $result = $data->groupBy('url'); - line 3432: $this->assertEquals(['1' => [$payload[0], $payload[1]], '2' => [$payload[2]]], $result->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3436: public function testGroupByCallable($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3436: public function testGroupByCallable($collection) - line 3440: $result = $data->groupBy([$this, 'sortByRating']); - line 3441: $this->assertEquals([1 => [['rating' => 1, 'url' => '1'], ['rating' => 1, 'url' => '1']], 2 => [['rating' => 2, 'url' => '2']]], $result->toArray()); - line 3443: $result = $data->groupBy([$this, 'sortByUrl']); - line 3444: $this->assertEquals([1 => [['rating' => 1, 'url' => '1'], ['rating' => 1, 'url' => '1']], 2 => [['rating' => 2, 'url' => '2']]], $result->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3458: public function testGroupByAttributeWithBackedEnumKey($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3458: public function testGroupByAttributeWithBackedEnumKey($collection) - line 3465: $result = $data->groupBy('rating'); - line 3466: $this->assertEquals([TestBackedEnum::A->value => [['rating' => TestBackedEnum::A, 'url' => '1']], TestBackedEnum::B->value => [['rating' => TestBackedEnum::B, 'url' => '1']]], $result->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3470: public function testGroupByAttributePreservingKeys($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3470: public function testGroupByAttributePreservingKeys($collection) - line 3474: $result = $data->groupBy('rating', true); - line 3481: $this->assertEquals($expected_result, $result->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3485: public function testGroupByClosureWhereItemsHaveSingleGroup($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3485: public function testGroupByClosureWhereItemsHaveSingleGroup($collection) - line 3489: $result = $data->groupBy(function ($item) { - line 3493: $this->assertEquals([1 => [['rating' => 1, 'url' => '1'], ['rating' => 1, 'url' => '1']], 2 => [['rating' => 2, 'url' => '2']]], $result->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3497: public function testGroupByClosureWhereItemsHaveSingleGroupPreservingKeys($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3497: public function testGroupByClosureWhereItemsHaveSingleGroupPreservingKeys($collection) - line 3501: $result = $data->groupBy(function ($item) { - line 3510: $this->assertEquals($expected_result, $result->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3514: public function testGroupByClosureWhereItemsHaveMultipleGroups($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3514: public function testGroupByClosureWhereItemsHaveMultipleGroups($collection) - line 3522: $result = $data->groupBy(function ($item) { - line 3540: $this->assertEquals($expected_result, $result->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3544: public function testGroupByClosureWhereItemsHaveMultipleGroupsPreservingKeys($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3544: public function testGroupByClosureWhereItemsHaveMultipleGroupsPreservingKeys($collection) - line 3552: $result = $data->groupBy(function ($item) { - line 3570: $this->assertEquals($expected_result, $result->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3574: public function testGroupByMultiLevelAndClosurePreservingKeys($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3574: public function testGroupByMultiLevelAndClosurePreservingKeys($collection) - line 3583: $result = $data->groupBy([ - line 3613: $this->assertEquals($expected_result, $result->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3617: public function testKeyByAttribute($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3617: public function testKeyByAttribute($collection) - line 3621: $result = $data->keyBy('rating'); - line 3622: $this->assertEquals([1 => ['rating' => 1, 'name' => '1'], 2 => ['rating' => 2, 'name' => '2'], 3 => ['rating' => 3, 'name' => '3']], $result->all()); - line 3624: $result = $data->keyBy(function ($item) { - line 3627: $this->assertEquals([2 => ['rating' => 1, 'name' => '1'], 4 => ['rating' => 2, 'name' => '2'], 6 => ['rating' => 3, 'name' => '3']], $result->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3631: public function testKeyByClosure($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3631: public function testKeyByClosure($collection) - line 3637: $result = $data->keyBy(function ($item, $key) { - line 3643: ], $result->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3647: public function testKeyByObject($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3647: public function testKeyByObject($collection) - line 3653: $result = $data->keyBy(function ($item, $key) use ($collection) { - line 3659: ], $result->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3663: public function testContains($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 23. Evidence: - line 3663: public function testContains($collection) - line 3667: $this->assertTrue($c->contains(1)); - line 3668: $this->assertTrue($c->contains('1')); - line 3669: $this->assertFalse($c->contains(2)); - line 3670: $this->assertFalse($c->contains('2')); - line 3673: $this->assertTrue($c->contains('1')); - line 3674: $this->assertTrue($c->contains(1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3722: public function testDoesntContain($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 23. Evidence: - line 3722: public function testDoesntContain($collection) - line 3726: $this->assertFalse($c->doesntContain(1)); - line 3727: $this->assertFalse($c->doesntContain('1')); - line 3728: $this->assertTrue($c->doesntContain(2)); - line 3729: $this->assertTrue($c->doesntContain('2')); - line 3732: $this->assertFalse($c->doesntContain('1')); - line 3733: $this->assertFalse($c->doesntContain(1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3781: public function testDoesntContainStrict($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 26. Evidence: - line 3781: public function testDoesntContainStrict($collection) - line 3785: $this->assertFalse($c->doesntContainStrict(1)); - line 3786: $this->assertTrue($c->doesntContainStrict('1')); - line 3787: $this->assertTrue($c->doesntContainStrict(2)); - line 3788: $this->assertFalse($c->doesntContainStrict('02')); - line 3789: $this->assertTrue($c->doesntContainStrict('2')); - line 3790: $this->assertTrue($c->doesntContainStrict(true)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3829: public function testSome($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 3829: public function testSome($collection) - line 3833: $this->assertTrue($c->some(1)); - line 3834: $this->assertFalse($c->some(2)); - line 3835: $this->assertTrue($c->some(function ($value) { - line 3838: $this->assertFalse($c->some(function ($value) { - line 3844: $this->assertTrue($c->some('v', 1)); - line 3845: $this->assertFalse($c->some('v', 2)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3868: public function testContainsStrict($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 24. Evidence: - line 3868: public function testContainsStrict($collection) - line 3872: $this->assertTrue($c->containsStrict(1)); - line 3873: $this->assertFalse($c->containsStrict('1')); - line 3874: $this->assertFalse($c->containsStrict(2)); - line 3875: $this->assertTrue($c->containsStrict('02')); - line 3876: $this->assertFalse($c->containsStrict(true)); - line 3877: $this->assertTrue($c->containsStrict(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3914: public function testContainsWithOperator($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3914: public function testContainsWithOperator($collection) - line 3918: $this->assertTrue($c->contains('v', '=', 4)); - line 3919: $this->assertTrue($c->contains('v', '==', 4)); - line 3920: $this->assertFalse($c->contains('v', '===', 4)); - line 3921: $this->assertTrue($c->contains('v', '>', 4)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3925: public function testGettingSumFromCollection($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3925: public function testGettingSumFromCollection($collection) - line 3928: $this->assertEquals(100, $c->sum('foo')); - line 3931: $this->assertEquals(100, $c->sum(function ($i) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3951: public function testValueRetrieverAcceptsDotNotation($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3951: public function testValueRetrieverAcceptsDotNotation($collection) - line 3957: $c = $c->sortBy('foo.bar'); - line 3958: $this->assertEquals([2, 1], $c->pluck('id')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3961: public function testPullRetrievesItemFromCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3961: public function testPullRetrievesItemFromCollection() - line 3965: $this->assertSame('foo', $c->pull(0)); - line 3966: $this->assertSame('bar', $c->pull(1)); - line 3970: $this->assertNull($c->pull(-1)); - line 3971: $this->assertNull($c->pull(2)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3974: public function testPullRemovesItemFromCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3974: public function testPullRemovesItemFromCollection() - line 3977: $c->pull(0); - line 3978: $this->assertEquals([1 => 'bar'], $c->all()); - line 3979: $c->pull(1); - line 3980: $this->assertEquals([], $c->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3983: public function testPullRemovesItemFromNestedCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 3983: public function testPullRemovesItemFromNestedCollection() - line 3996: $nestedCollection->pull('0.1.test'); - line 3998: $actualArray = $nestedCollection->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4018: public function testRejectRemovesElementsPassingTruthTest($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 4018: public function testRejectRemovesElementsPassingTruthTest($collection) - line 4021: $this->assertEquals(['foo'], $c->reject('bar')->values()->all()); - line 4024: $this->assertEquals(['foo'], $c->reject(function ($v) { - line 4029: $this->assertEquals(['foo'], $c->reject(null)->values()->all()); - line 4032: $this->assertEquals(['foo', 'bar'], $c->reject('baz')->values()->all()); - line 4035: $this->assertEquals(['foo', 'bar'], $c->reject(function ($v) { - line 4040: $this->assertEquals(['primary' => 'foo', 'secondary' => 'bar'], $c->reject(function ($item, $key) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4046: public function testRejectWithoutAnArgumentRemovesTruthyValues($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 4046: public function testRejectWithoutAnArgumentRemovesTruthyValues($collection) - line 4054: $this->assertSame([0 => false, 3 => 0], $data1->reject()->all()); - line 4062: $data2->reject()->isEmpty() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4067: public function testSearchReturnsIndexOfFirstFoundItem($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 4067: public function testSearchReturnsIndexOfFirstFoundItem($collection) - line 4071: $this->assertEquals(1, $c->search(2)); - line 4072: $this->assertEquals(1, $c->search('2')); - line 4073: $this->assertSame('foo', $c->search('bar')); - line 4074: $this->assertEquals(4, $c->search(function ($value) { - line 4077: $this->assertSame('foo', $c->search(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4083: public function testSearchInStrictMode($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 4083: public function testSearchInStrictMode($collection) - line 4086: $this->assertFalse($c->search('false', true)); - line 4087: $this->assertFalse($c->search('1', true)); - line 4088: $this->assertEquals(0, $c->search(false, true)); - line 4089: $this->assertEquals(1, $c->search(0, true)); - line 4090: $this->assertEquals(2, $c->search(1, true)); - line 4091: $this->assertEquals(3, $c->search([], true)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4096: public function testSearchReturnsFalseWhenItemIsNotFound($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4096: public function testSearchReturnsFalseWhenItemIsNotFound($collection) - line 4100: $this->assertFalse($c->search(6)); - line 4101: $this->assertFalse($c->search('foo')); - line 4102: $this->assertFalse($c->search(function ($value) { - line 4105: $this->assertFalse($c->search(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4111: public function testBeforeReturnsItemBeforeTheGivenItem($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 4111: public function testBeforeReturnsItemBeforeTheGivenItem($collection) - line 4115: $this->assertEquals(1, $c->before(2)); - line 4116: $this->assertEquals(1, $c->before('2')); - line 4117: $this->assertEquals(5, $c->before('taylor')); - line 4118: $this->assertSame('taylor', $c->before('laravel')); - line 4119: $this->assertEquals(4, $c->before(function ($value) { - line 4122: $this->assertEquals(5, $c->before(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4128: public function testBeforeInStrictMode($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 4128: public function testBeforeInStrictMode($collection) - line 4131: $this->assertNull($c->before('false', true)); - line 4132: $this->assertNull($c->before('1', true)); - line 4133: $this->assertNull($c->before(false, true)); - line 4134: $this->assertEquals(false, $c->before(0, true)); - line 4135: $this->assertEquals(0, $c->before(1, true)); - line 4136: $this->assertEquals(1, $c->before([], true)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4141: public function testBeforeReturnsNullWhenItemIsNotFound($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4141: public function testBeforeReturnsNullWhenItemIsNotFound($collection) - line 4145: $this->assertNull($c->before(6)); - line 4146: $this->assertNull($c->before('foo')); - line 4147: $this->assertNull($c->before(function ($value) { - line 4150: $this->assertNull($c->before(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4141: public function testBeforeReturnsNullWhenItemIsNotFound($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4156: public function testBeforeReturnsNullWhenItemOnTheFirstitem($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4156: public function testBeforeReturnsNullWhenItemOnTheFirstitem($collection) - line 4160: $this->assertNull($c->before(1)); - line 4161: $this->assertNull($c->before(function ($value) { - line 4166: $this->assertNull($c->before('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4156: public function testBeforeReturnsNullWhenItemOnTheFirstitem($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4170: public function testAfterReturnsItemAfterTheGivenItem($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 4170: public function testAfterReturnsItemAfterTheGivenItem($collection) - line 4174: $this->assertEquals(2, $c->after(1)); - line 4175: $this->assertEquals(3, $c->after(2)); - line 4176: $this->assertEquals(4, $c->after(3)); - line 4177: $this->assertEquals(2, $c->after(4)); - line 4178: $this->assertEquals('taylor', $c->after(5)); - line 4179: $this->assertEquals('laravel', $c->after('taylor')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4190: public function testAfterInStrictMode($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 4190: public function testAfterInStrictMode($collection) - line 4194: $this->assertNull($c->after('false', true)); - line 4195: $this->assertNull($c->after('1', true)); - line 4196: $this->assertNull($c->after('', true)); - line 4197: $this->assertEquals(0, $c->after(false, true)); - line 4198: $this->assertEquals([], $c->after(1, true)); - line 4199: $this->assertEquals('', $c->after([], true)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4203: public function testAfterReturnsNullWhenItemIsNotFound($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4203: public function testAfterReturnsNullWhenItemIsNotFound($collection) - line 4207: $this->assertNull($c->after(6)); - line 4208: $this->assertNull($c->after('foo')); - line 4209: $this->assertNull($c->after(function ($value) { - line 4212: $this->assertNull($c->after(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4203: public function testAfterReturnsNullWhenItemIsNotFound($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4218: public function testAfterReturnsNullWhenItemOnTheLastItem($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4218: public function testAfterReturnsNullWhenItemOnTheLastItem($collection) - line 4222: $this->assertNull($c->after('bar')); - line 4223: $this->assertNull($c->after(function ($value) { - line 4228: $this->assertNull($c->after(5)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4218: public function testAfterReturnsNullWhenItemOnTheLastItem($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4232: public function testKeys($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 4232: public function testKeys($collection) - line 4235: $this->assertEquals(['name', 'framework'], $c->keys()->all()); - line 4238: $this->assertEquals([0, 1], $c->keys()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4242: public function testPaginate($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4242: public function testPaginate($collection) - line 4245: $this->assertEquals(['one', 'two'], $c->forPage(0, 2)->all()); - line 4246: $this->assertEquals(['one', 'two'], $c->forPage(1, 2)->all()); - line 4247: $this->assertEquals([2 => 'three', 3 => 'four'], $c->forPage(2, 2)->all()); - line 4248: $this->assertEquals([], $c->forPage(3, 2)->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4252: public function testPrepend() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4252: public function testPrepend() - line 4257: $c->prepend('zero')->all() - line 4263: $c->prepend(0, 'zero')->all() - line 4269: $c->prepend(0, null)->all() - line 4275: $c->prepend(0, '')->all() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4279: public function testPushWithOneItem() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4279: public function testPushWithOneItem() - line 4291: $data->push(['a', 'b', 'c']); - line 4292: $data->push(['who' => 'Jonny', 'preposition' => 'from', 'where' => 'Laroe']); - line 4293: $actual = $data->push('Jonny from Laroe')->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4298: public function testPushWithMultipleItems() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4298: public function testPushWithMultipleItems() - line 4316: $data->push('Jonny', 'from', 'Laroe'); - line 4317: $data->push(...[11 => 'Jonny', 12 => 'from', 13 => 'Laroe']); - line 4318: $data->push(...collect(['a', 'b', 'c'])); - line 4319: $actual = $data->push(...[])->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4324: public function testUnshiftWithOneItem() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4324: public function testUnshiftWithOneItem() - line 4336: $data->unshift(['a', 'b', 'c']); - line 4337: $data->unshift(['who' => 'Jonny', 'preposition' => 'from', 'where' => 'Laroe']); - line 4338: $actual = $data->unshift('Jonny from Laroe')->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4343: public function testUnshiftWithMultipleItems() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4343: public function testUnshiftWithMultipleItems() - line 4361: $data->unshift('Jonny', 'from', 'Laroe'); - line 4362: $data->unshift(...[11 => 'Jonny', 12 => 'from', 13 => 'Laroe']); - line 4363: $data->unshift(...collect(['a', 'b', 'c'])); - line 4364: $actual = $data->unshift(...[])->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4370: public function testZip($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 4370: public function testZip($collection) - line 4373: $c = $c->zip(new $collection([4, 5, 6])); - line 4379: $this->assertEquals([1, 4], $c->get(0)->all()); - line 4380: $this->assertEquals([2, 5], $c->get(1)->all()); - line 4381: $this->assertEquals([3, 6], $c->get(2)->all()); - line 4384: $c = $c->zip([4, 5, 6], [7, 8, 9]); - line 4386: $this->assertEquals([1, 4, 7], $c->get(0)->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4399: public function testPadPadsArrayWithValue($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 4399: public function testPadPadsArrayWithValue($collection) - line 4402: $c = $c->pad(4, 0); - line 4403: $this->assertEquals([1, 2, 3, 0], $c->all()); - line 4406: $c = $c->pad(4, 0); - line 4407: $this->assertEquals([1, 2, 3, 4, 5], $c->all()); - line 4410: $c = $c->pad(-4, 0); - line 4411: $this->assertEquals([0, 1, 2, 3], $c->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4419: public function testGettingMaxItemsFromCollection($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 4419: public function testGettingMaxItemsFromCollection($collection) - line 4422: $this->assertEquals(20, $c->max(function ($item) { - line 4425: $this->assertEquals(20, $c->max('foo')); - line 4429: $this->assertEquals(20, $c->max('foo')); - line 4433: $this->assertEquals(5, $c->max()); - line 4436: $this->assertNull($c->max()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4440: public function testGettingMinItemsFromCollection($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 4440: public function testGettingMinItemsFromCollection($collection) - line 4443: $this->assertEquals(10, $c->min(function ($item) { - line 4446: $this->assertEquals(10, $c->min('foo')); - line 4450: $this->assertEquals(10, $c->min('foo')); - line 4454: $this->assertEquals(10, $c->min('foo')); - line 4458: $this->assertEquals(1, $c->min()); - line 4461: $this->assertEquals(1, $c->min()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4471: public function testOnly($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 4471: public function testOnly($collection) - line 4475: $this->assertEquals($data->all(), $data->only(null)->all()); - line 4476: $this->assertEquals(['first' => 'Taylor'], $data->only(['first', 'missing'])->all()); - line 4477: $this->assertEquals(['first' => 'Taylor'], $data->only('first', 'missing')->all()); - line 4478: $this->assertEquals(['first' => 'Taylor'], $data->only(collect(['first', 'missing']))->all()); - line 4480: $this->assertEquals(['first' => 'Taylor', 'email' => 'taylorotwell@gmail.com'], $data->only(['first', 'email'])->all()); - line 4481: $this->assertEquals(['first' => 'Taylor', 'email' => 'taylorotwell@gmail.com'], $data->only('first', 'email')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4486: public function testSelectWithArrays($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 4486: public function testSelectWithArrays($collection) - line 4493: $this->assertEquals($data->all(), $data->select(null)->all()); - line 4494: $this->assertEquals([['first' => 'Taylor'], ['first' => 'Jess']], $data->select(['first', 'missing'])->all()); - line 4495: $this->assertEquals([['first' => 'Taylor'], ['first' => 'Jess']], $data->select('first', 'missing')->all()); - line 4496: $this->assertEquals([['first' => 'Taylor'], ['first' => 'Jess']], $data->select(collect(['first', 'missing']))->all()); - line 4501: ], $data->select(['first', 'email'])->all()); - line 4506: ], $data->select('first', 'email')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4515: public function testSelectWithArrayAccess($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 4515: public function testSelectWithArrayAccess($collection) - line 4522: $this->assertEquals($data->all(), $data->select(null)->all()); - line 4523: $this->assertEquals([['first' => 'Taylor'], ['first' => 'Jess']], $data->select(['first', 'missing'])->all()); - line 4524: $this->assertEquals([['first' => 'Taylor'], ['first' => 'Jess']], $data->select('first', 'missing')->all()); - line 4525: $this->assertEquals([['first' => 'Taylor'], ['first' => 'Jess']], $data->select(collect(['first', 'missing']))->all()); - line 4530: ], $data->select(['first', 'email'])->all()); - line 4535: ], $data->select('first', 'email')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4544: public function testSelectWithObjects($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 4544: public function testSelectWithObjects($collection) - line 4551: $this->assertEquals($data->all(), $data->select(null)->all()); - line 4552: $this->assertEquals([['first' => 'Taylor'], ['first' => 'Jess']], $data->select(['first', 'missing'])->all()); - line 4553: $this->assertEquals([['first' => 'Taylor'], ['first' => 'Jess']], $data->select('first', 'missing')->all()); - line 4554: $this->assertEquals([['first' => 'Taylor'], ['first' => 'Jess']], $data->select(collect(['first', 'missing']))->all()); - line 4559: ], $data->select(['first', 'email'])->all()); - line 4564: ], $data->select('first', 'email')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4573: public function testGettingAvgItemsFromCollection($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 4573: public function testGettingAvgItemsFromCollection($collection) - line 4576: $this->assertEquals(15, $c->avg(function ($item) { - line 4579: $this->assertEquals(15, $c->avg('foo')); - line 4583: $this->assertEquals(15, $c->avg(function ($item) { - line 4586: $this->assertEquals(15, $c->avg('foo')); - line 4590: $this->assertEquals(15, $c->avg('foo')); - line 4594: $this->assertEquals(3, $c->avg()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4638: public function testCombineWithArray($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4638: public function testCombineWithArray($collection) - line 4641: $actual = $c->combine([4, 5, 6])->toArray(); - line 4651: $actual = $c->combine([1 => 'taylor', 2 => 'otwell'])->toArray(); - line 4660: $actual = $c->combine(['taylor', 'otwell'])->toArray(); - line 4669: $actual = $c->combine([2 => 'taylor', 3 => 'otwell'])->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4695: public function testConcatWithArray($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4695: public function testConcatWithArray($collection) - line 4713: $data = $data->concat(['a', 'b', 'c']); - line 4714: $data = $data->concat(['who' => 'Jonny', 'preposition' => 'from', 'where' => 'Laroe']); - line 4715: $actual = $data->concat(['who' => 'Jonny', 'preposition' => 'from', 'where' => 'Laroe'])->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4695: public function testConcatWithArray($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4721: public function testConcatWithCollection($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4721: public function testConcatWithCollection($collection) - line 4741: $firstCollection = $firstCollection->concat($secondCollection); - line 4742: $firstCollection = $firstCollection->concat($thirdCollection); - line 4743: $actual = $firstCollection->concat($thirdCollection)->toArray(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4721: public function testConcatWithCollection($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4749: public function testDump($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4749: public function testDump($collection) - line 4754: $log->add($value); - line 4757: (new $collection([1, 2, 3]))->dump('one', 'two'); - line 4759: $this->assertSame([[1, 2, 3], 'one', 'two'], $log->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4765: public function testReduce($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 4765: public function testReduce($collection) - line 4768: $this->assertEquals(6, $data->reduce(function ($carry, $element) { - line 4776: $this->assertSame('foobarbazqux', $data->reduce(function ($carry, $element, $key) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4782: public function testReduceSpread($collection) Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4782: public function testReduceSpread($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4800: public function testReduceSpreadThrowsAnExceptionIfReducerDoesNotReturnAnArray($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 4800: public function testReduceSpreadThrowsAnExceptionIfReducerDoesNotReturnAnArray($collection) - line 4804: $this->expectException(UnexpectedValueException::class); - line 4806: $data->reduceSpread(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4800: public function testReduceSpreadThrowsAnExceptionIfReducerDoesNotReturnAnArray($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4812: public function testRandomThrowsAnExceptionUsingAmountBiggerThanCollectionSize($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 4812: public function testRandomThrowsAnExceptionUsingAmountBiggerThanCollectionSize($collection) - line 4814: $this->expectException(InvalidArgumentException::class); - line 4817: $data->random(4); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4812: public function testRandomThrowsAnExceptionUsingAmountBiggerThanCollectionSize($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4913: public function testMedianOnEmptyCollectionReturnsNull($collection) Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4913: public function testMedianOnEmptyCollectionReturnsNull($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4920: public function testModeOnNullCollection($collection) Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 4920: public function testModeOnNullCollection($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 4927: public function testMode($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 4927: public function testMode($collection) - line 4930: $this->assertIsArray($data->mode()); - line 4931: $this->assertEquals([4], $data->mode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4935: public function testModeValueByKey($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 4935: public function testModeValueByKey($collection) - line 4949: $this->assertEquals([1], $data->mode('foo')); - line 4950: $this->assertEquals($data2->mode('foo'), $data->mode('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5031: public function testSplitCollectionWithADivisibleCount($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 5031: public function testSplitCollectionWithADivisibleCount($collection) - line 5034: $split = $data->split(2); - line 5036: $this->assertSame(['a', 'b'], $split->get(0)->all()); - line 5037: $this->assertSame(['c', 'd'], $split->get(1)->all()); - line 5042: $data->split(2)->map(function (Collection $chunk) { - line 5048: $split = $data->split(2); - line 5050: $this->assertSame([1, 2, 3, 4, 5], $split->get(0)->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5062: public function testSplitCollectionWithAnUndivisableCount($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5062: public function testSplitCollectionWithAnUndivisableCount($collection) - line 5065: $split = $data->split(2); - line 5067: $this->assertSame(['a', 'b'], $split->get(0)->all()); - line 5068: $this->assertSame(['c'], $split->get(1)->all()); - line 5072: $data->split(2)->map(function (Collection $chunk) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5079: public function testSplitCollectionWithCountLessThenDivisor($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 5079: public function testSplitCollectionWithCountLessThenDivisor($collection) - line 5082: $split = $data->split(2); - line 5084: $this->assertSame(['a'], $split->get(0)->all()); - line 5089: $data->split(2)->map(function (Collection $chunk) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5096: public function testSplitCollectionIntoThreeWithCountOfFour($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 5096: public function testSplitCollectionIntoThreeWithCountOfFour($collection) - line 5099: $split = $data->split(3); - line 5101: $this->assertSame(['a', 'b'], $split->get(0)->all()); - line 5102: $this->assertSame(['c'], $split->get(1)->all()); - line 5103: $this->assertSame(['d'], $split->get(2)->all()); - line 5107: $data->split(3)->map(function (Collection $chunk) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5114: public function testSplitCollectionIntoThreeWithCountOfFive($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 5114: public function testSplitCollectionIntoThreeWithCountOfFive($collection) - line 5117: $split = $data->split(3); - line 5119: $this->assertSame(['a', 'b'], $split->get(0)->all()); - line 5120: $this->assertSame(['c', 'd'], $split->get(1)->all()); - line 5121: $this->assertSame(['e'], $split->get(2)->all()); - line 5125: $data->split(3)->map(function (Collection $chunk) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5132: public function testSplitCollectionIntoSixWithCountOfTen($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 5132: public function testSplitCollectionIntoSixWithCountOfTen($collection) - line 5135: $split = $data->split(6); - line 5137: $this->assertSame(['a', 'b'], $split->get(0)->all()); - line 5138: $this->assertSame(['c', 'd'], $split->get(1)->all()); - line 5139: $this->assertSame(['e', 'f'], $split->get(2)->all()); - line 5140: $this->assertSame(['g', 'h'], $split->get(3)->all()); - line 5141: $this->assertSame(['i'], $split->get(4)->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5153: public function testSplitEmptyCollection($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 5153: public function testSplitEmptyCollection($collection) - line 5156: $split = $data->split(2); - line 5163: $data->split(2)->map(function (Collection $chunk) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5170: public function testHigherOrderCollectionGroupBy($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 5170: public function testHigherOrderCollectionGroupBy($collection) - line 5182: ], $data->groupBy->name->toArray()); - line 5187: ], $data->groupBy->uppercase()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5191: public function testHigherOrderCollectionMap($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 5191: public function testHigherOrderCollectionMap($collection) - line 5198: $this->assertEquals(['Taylor', 'Yaz'], $data->map->name->toArray()); - line 5202: $this->assertEquals(['TAYLOR', 'TAYLOR'], $data->each->uppercase()->map->name->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5206: public function testHigherOrderCollectionMapFromArrays($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 5206: public function testHigherOrderCollectionMapFromArrays($collection) - line 5213: $this->assertEquals(['Taylor', 'Yaz'], $data->map->name->toArray()); - line 5217: $this->assertEquals(['TAYLOR', 'TAYLOR'], $data->each->uppercase()->map->name->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5221: public function testHigherOrderCollectionStaticCall($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 5221: public function testHigherOrderCollectionStaticCall($collection) - line 5228: $this->assertEquals(['TAYLOR', 't a y l o r'], $classes->map->transform('taylor')->toArray()); - line 5229: $this->assertEquals($class1, $classes->first->matches('Taylor')); - line 5230: $this->assertEquals($class2, $classes->first->matches('Otwell')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5234: public function testPartition($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 5234: public function testPartition($collection) - line 5238: [$firstPartition, $secondPartition] = $data->partition(function ($i) { - line 5242: $this->assertEquals([1, 2, 3, 4, 5], $firstPartition->values()->toArray()); - line 5243: $this->assertEquals([6, 7, 8, 9, 10], $secondPartition->values()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5247: public function testPartitionCallbackWithKey($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 5247: public function testPartitionCallbackWithKey($collection) - line 5251: [$even, $odd] = $data->partition(function ($item, $index) { - line 5255: $this->assertEquals(['zero', 'two'], $even->values()->toArray()); - line 5256: $this->assertEquals(['one', 'three'], $odd->values()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5260: public function testPartitionByKey($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 5260: public function testPartitionByKey($collection) - line 5266: [$free, $premium] = $courses->partition('free')->all(); - line 5268: $this->assertSame([['free' => true, 'title' => 'Basic']], $free->values()->toArray()); - line 5269: $this->assertSame([['free' => false, 'title' => 'Premium']], $premium->values()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5273: public function testPartitionWithOperators($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 5273: public function testPartitionWithOperators($collection) - line 5282: [$tims, $others] = $data->partition('name', 'Tim')->all(); - line 5287: ], $tims->values()->all()); - line 5292: ], $others->values()->all()); - line 5294: [$adults, $minors] = $data->partition('age', '>=', 18)->all(); - line 5300: ], $adults->values()->all()); - line 5304: ], $minors->values()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5308: public function testPartitionPreservesKeys($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 5308: public function testPartitionPreservesKeys($collection) - line 5314: [$free, $premium] = $courses->partition('free')->all(); - line 5316: $this->assertSame(['a' => ['free' => true], 'c' => ['free' => true]], $free->toArray()); - line 5317: $this->assertSame(['b' => ['free' => false]], $premium->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5331: public function testHigherOrderPartition($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 5331: public function testHigherOrderPartition($collection) - line 5337: [$free, $premium] = $courses->partition->free->all(); - line 5339: $this->assertSame(['a' => ['free' => true], 'c' => ['free' => true]], $free->toArray()); - line 5341: $this->assertSame(['b' => ['free' => false]], $premium->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5345: public function testTap($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 5345: public function testTap($collection) - line 5351: $data = $data->tap(function ($data) use (&$fromTap, &$tappedInstance) { - line 5358: $this->assertSame([1, 2, 3], $data->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5362: public function testWhen($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5362: public function testWhen($collection) - line 5366: $data = $data->when('adam', function ($data, $newName) { - line 5370: $this->assertSame(['michael', 'tom', 'adam'], $data->toArray()); - line 5374: $data = $data->when(false, function ($data) { - line 5378: $this->assertSame(['michael', 'tom'], $data->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5382: public function testWhenDefault($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 5382: public function testWhenDefault($collection) - line 5386: $data = $data->when(false, function ($data) { - line 5392: $this->assertSame(['michael', 'tom', 'taylor'], $data->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5396: public function testWhenEmpty($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5396: public function testWhenEmpty($collection) - line 5400: $data = $data->whenEmpty(function () { - line 5404: $this->assertSame(['michael', 'tom'], $data->toArray()); - line 5408: $data = $data->whenEmpty(function ($data) { - line 5412: $this->assertSame(['adam'], $data->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5416: public function testWhenEmptyDefault($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 5416: public function testWhenEmptyDefault($collection) - line 5420: $data = $data->whenEmpty(function ($data) { - line 5426: $this->assertSame(['michael', 'tom', 'taylor'], $data->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5430: public function testWhenNotEmpty($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5430: public function testWhenNotEmpty($collection) - line 5434: $data = $data->whenNotEmpty(function ($data) { - line 5438: $this->assertSame(['michael', 'tom', 'adam'], $data->toArray()); - line 5442: $data = $data->whenNotEmpty(function ($data) { - line 5446: $this->assertSame([], $data->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5450: public function testWhenNotEmptyDefault($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 5450: public function testWhenNotEmptyDefault($collection) - line 5454: $data = $data->whenNotEmpty(function ($data) { - line 5460: $this->assertSame(['michael', 'tom', 'adam'], $data->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5464: public function testHigherOrderWhenAndUnless($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 5464: public function testHigherOrderWhenAndUnless($collection) - line 5468: $data = $data->when(true)->concat(['chris']); - line 5470: $this->assertSame(['michael', 'tom', 'chris'], $data->toArray()); - line 5472: $data = $data->when(false)->concat(['adam']); - line 5474: $this->assertSame(['michael', 'tom', 'chris'], $data->toArray()); - line 5476: $data = $data->unless(false)->concat(['adam']); - line 5478: $this->assertSame(['michael', 'tom', 'chris', 'adam'], $data->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5486: public function testHigherOrderWhenAndUnlessWithProxy($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 5486: public function testHigherOrderWhenAndUnlessWithProxy($collection) - line 5490: $data = $data->when->contains('michael')->concat(['chris']); - line 5492: $this->assertSame(['michael', 'tom', 'chris'], $data->toArray()); - line 5494: $data = $data->when->contains('missing')->concat(['adam']); - line 5496: $this->assertSame(['michael', 'tom', 'chris'], $data->toArray()); - line 5498: $data = $data->unless->contains('missing')->concat(['adam']); - line 5500: $this->assertSame(['michael', 'tom', 'chris', 'adam'], $data->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5508: public function testUnless($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5508: public function testUnless($collection) - line 5512: $data = $data->unless(false, function ($data) { - line 5516: $this->assertSame(['michael', 'tom', 'caleb'], $data->toArray()); - line 5520: $data = $data->unless(true, function ($data) { - line 5524: $this->assertSame(['michael', 'tom'], $data->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5528: public function testUnlessDefault($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 5528: public function testUnlessDefault($collection) - line 5532: $data = $data->unless(true, function ($data) { - line 5538: $this->assertSame(['michael', 'tom', 'taylor'], $data->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5542: public function testUnlessEmpty($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5542: public function testUnlessEmpty($collection) - line 5546: $data = $data->unlessEmpty(function ($data) { - line 5550: $this->assertSame(['michael', 'tom', 'adam'], $data->toArray()); - line 5554: $data = $data->unlessEmpty(function ($data) { - line 5558: $this->assertSame([], $data->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5562: public function testUnlessEmptyDefault($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 5562: public function testUnlessEmptyDefault($collection) - line 5566: $data = $data->unlessEmpty(function ($data) { - line 5572: $this->assertSame(['michael', 'tom', 'adam'], $data->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5576: public function testUnlessNotEmpty($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5576: public function testUnlessNotEmpty($collection) - line 5580: $data = $data->unlessNotEmpty(function ($data) { - line 5584: $this->assertSame(['michael', 'tom'], $data->toArray()); - line 5588: $data = $data->unlessNotEmpty(function ($data) { - line 5592: $this->assertSame(['adam'], $data->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5596: public function testUnlessNotEmptyDefault($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 5596: public function testUnlessNotEmptyDefault($collection) - line 5600: $data = $data->unlessNotEmpty(function ($data) { - line 5606: $this->assertSame(['michael', 'tom', 'taylor'], $data->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5610: public function testHasReturnsValidResults($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5610: public function testHasReturnsValidResults($collection) - line 5613: $this->assertTrue($data->has('foo')); - line 5614: $this->assertTrue($data->has('foo', 'bar', 1)); - line 5615: $this->assertFalse($data->has('foo', 'bar', 1, 'baz')); - line 5616: $this->assertFalse($data->has('baz')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5619: public function testPutAddsItemToCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 5619: public function testPutAddsItemToCollection() - line 5622: $this->assertSame([], $data->toArray()); - line 5623: $data->put('foo', 1); - line 5624: $this->assertSame(['foo' => 1], $data->toArray()); - line 5625: $data->put('bar', ['nested' => 'two']); - line 5626: $this->assertSame(['foo' => 1, 'bar' => ['nested' => 'two']], $data->toArray()); - line 5627: $data->put('foo', 3); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5632: public function testItThrowsExceptionWhenTryingToAccessNoProxyProperty($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 5632: public function testItThrowsExceptionWhenTryingToAccessNoProxyProperty($collection) - line 5635: $this->expectException(Exception::class); - line 5636: $this->expectExceptionMessage('Property [foo] does not exist on this collection instance.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5632: public function testItThrowsExceptionWhenTryingToAccessNoProxyProperty($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5641: public function testGetWithNullReturnsNull($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 5641: public function testGetWithNullReturnsNull($collection) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5641: public function testGetWithNullReturnsNull($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5648: public function testGetWithDefaultValue($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 5648: public function testGetWithDefaultValue($collection) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5655: public function testGetWithCallbackAsDefaultValue($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 5655: public function testGetWithCallbackAsDefaultValue($collection) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5665: public function testWhereNull($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 5665: public function testWhereNull($collection) - line 5677: ], $data->whereNull('name')->all()); - line 5679: $this->assertSame([], $data->whereNull()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5692: public function testWhereNotNull($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 5692: public function testWhereNotNull($collection) - line 5707: ], $data->whereNotNull('name')->all()); - line 5709: $this->assertSame($originalData, $data->whereNotNull()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5727: public function testCollect($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 5727: public function testCollect($collection) - line 5733: ])->collect(); - line 5741: ], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5745: public function testUndot($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5745: public function testUndot($collection) - line 5752: ])->undot(); - line 5762: ], $data->all()); - line 5768: ])->undot(); - line 5775: ], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5779: public function testDot($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5779: public function testDot($collection) - line 5790: ])->dot(); - line 5796: ], $data->all()); - line 5804: ])->dot(); - line 5809: ], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5813: public function testEnsureForScalar($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 5813: public function testEnsureForScalar($collection) - line 5815: $data = $collection::make([1, 2, 3]); - line 5816: $data->ensure('int'); - line 5819: $this->expectException(UnexpectedValueException::class); - line 5820: $this->expectExceptionMessage("Collection should only include [int] items, but 'string' found at position 3."); - line 5821: $data->ensure('int'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5813: public function testEnsureForScalar($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5825: public function testEnsureForObjects($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 5825: public function testEnsureForObjects($collection) - line 5827: $data = $collection::make([new stdClass, new stdClass, new stdClass]); - line 5828: $data->ensure(stdClass::class); - line 5831: $this->expectException(UnexpectedValueException::class); - line 5832: $this->expectExceptionMessage(sprintf('Collection should only include [%s] items, but \'%s\' found at position %d.', class_basename(new stdClass()), gettype($collection), 3)); - line 5833: $data->ensure(stdClass::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5825: public function testEnsureForObjects($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5837: public function testEnsureForInheritance($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 5837: public function testEnsureForInheritance($collection) - line 5839: $data = $collection::make([new \Error, new \Error]); - line 5840: $data->ensure(\Throwable::class); - line 5844: $this->expectException(UnexpectedValueException::class); - line 5845: $this->expectExceptionMessage(sprintf("Collection should only include [%s] items, but '%s' found at position %d.", \Throwable::class, get_class($wrongType), 2)); - line 5846: $data->ensure(\Throwable::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5837: public function testEnsureForInheritance($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5850: public function testEnsureForMultipleTypes($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 5850: public function testEnsureForMultipleTypes($collection) - line 5852: $data = $collection::make([new \Error, 123]); - line 5853: $data->ensure([\Throwable::class, 'int']); - line 5857: $this->expectException(UnexpectedValueException::class); - line 5858: $this->expectExceptionMessage(sprintf('Collection should only include [%s] items, but \'%s\' found at position %d.', implode(', ', [\Throwable::class, 'int']), get_class($wrongType), 2)); - line 5859: $data->ensure([\Throwable::class, 'int']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5850: public function testEnsureForMultipleTypes($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5863: public function testPercentageWithFlatCollection($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5863: public function testPercentageWithFlatCollection($collection) - line 5867: $this->assertSame(33.33, $collection->percentage(fn ($value) => $value === 1)); - line 5868: $this->assertSame(50.00, $collection->percentage(fn ($value) => $value === 2)); - line 5869: $this->assertSame(16.67, $collection->percentage(fn ($value) => $value === 3)); - line 5870: $this->assertSame(0.0, $collection->percentage(fn ($value) => $value === 5)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5874: public function testPercentageWithNestedCollection($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5874: public function testPercentageWithNestedCollection($collection) - line 5883: $this->assertSame(25.00, $collection->percentage(fn ($value) => $value['foo'] === 'foo')); - line 5884: $this->assertSame(50.00, $collection->percentage(fn ($value) => $value['foo'] === 'bar')); - line 5885: $this->assertSame(25.00, $collection->percentage(fn ($value) => $value['foo'] === 'baz')); - line 5886: $this->assertSame(0.0, $collection->percentage(fn ($value) => $value['foo'] === 'test')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5890: public function testHighOrderPercentage($collection) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 5890: public function testHighOrderPercentage($collection) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5890: public function testHighOrderPercentage($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 5903: public function testPercentageReturnsNullForEmptyCollections($collection) Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 5903: public function testPercentageReturnsNullForEmptyCollections($collection) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/SupportComposerTest.php - Test @ line 20: public function testDumpAutoloadRunsTheCorrectCommand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 20: public function testDumpAutoloadRunsTheCorrectCommand() - line 22: $composer = $this->mockComposer(['composer', 'dump-autoload']); - line 24: $composer->dumpAutoloads(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 20: public function testDumpAutoloadRunsTheCorrectCommand() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 27: public function testDumpAutoloadRunsTheCorrectCommandWhenCustomComposerPharIsPresent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 27: public function testDumpAutoloadRunsTheCorrectCommandWhenCustomComposerPharIsPresent() - line 32: $composer = $this->mockComposer($expectedProcessArguments, $customComposerPhar); - line 34: $composer->dumpAutoloads(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 27: public function testDumpAutoloadRunsTheCorrectCommandWhenCustomComposerPharIsPresent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 37: public function testDumpAutoloadRunsTheCorrectCommandWithExtraArguments() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 37: public function testDumpAutoloadRunsTheCorrectCommandWithExtraArguments() - line 39: $composer = $this->mockComposer(['composer', 'dump-autoload', '--no-scripts']); - line 41: $composer->dumpAutoloads('--no-scripts'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 37: public function testDumpAutoloadRunsTheCorrectCommandWithExtraArguments() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 44: public function testDumpOptimizedTheCorrectCommand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 44: public function testDumpOptimizedTheCorrectCommand() - line 46: $composer = $this->mockComposer(['composer', 'dump-autoload', '--optimize']); - line 48: $composer->dumpOptimized(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 44: public function testDumpOptimizedTheCorrectCommand() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 51: public function testRequirePackagesRunsTheCorrectCommand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 51: public function testRequirePackagesRunsTheCorrectCommand() - line 53: $composer = $this->mockComposer(['composer', 'require', 'pestphp/pest:^2.0', 'pestphp/pest-plugin-laravel:^2.0', '--dev']); - line 55: $composer->requirePackages(['pestphp/pest:^2.0', 'pestphp/pest-plugin-laravel:^2.0'], true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 51: public function testRequirePackagesRunsTheCorrectCommand() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 58: public function testRemovePackagesRunsTheCorrectCommand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 58: public function testRemovePackagesRunsTheCorrectCommand() - line 60: $composer = $this->mockComposer(['composer', 'remove', 'phpunit/phpunit', '--dev']); - line 62: $composer->removePackages(['phpunit/phpunit'], true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 58: public function testRemovePackagesRunsTheCorrectCommand() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/SupportConditionableTest.php - Test @ line 10: public function testWhenConditionCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 10: public function testWhenConditionCallback() - line 14: ->when(2, function ($logger, $condition) { - line 23: $logger = (new ConditionableLogger())->log('init') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 35: public function testWhenDefaultCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 35: public function testWhenDefaultCallback() - line 39: ->when(null, function ($logger, $condition) { - line 49: ->when(function ($logger) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 60: public function testUnlessConditionCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 60: public function testUnlessConditionCallback() - line 64: ->unless(null, function ($logger, $condition) { - line 74: ->unless(function ($logger) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 85: public function testUnlessDefaultCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 85: public function testUnlessDefaultCallback() - line 89: ->unless(2, function ($logger, $condition) { - line 98: $logger = (new ConditionableLogger())->log('init') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 110: public function testWhenProxy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 110: public function testWhenProxy() - line 114: ->when(true)->log('one') - line 120: $logger = (new ConditionableLogger())->log('init') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 138: public function testUnlessProxy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 138: public function testUnlessProxy() - line 142: ->unless(true)->log('one') - line 148: $logger = (new ConditionableLogger())->log('init') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/SupportEnumValueFunctionTest.php - Test @ line 15: public function test_it_can_handle_enum_value($given, $expected) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 15: public function test_it_can_handle_enum_value($given, $expected) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 15: public function test_it_can_handle_enum_value($given, $expected) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 20: public function test_it_can_fallback_to_use_default_if_value_is_null() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 20: public function test_it_can_fallback_to_use_default_if_value_is_null() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 20: public function test_it_can_fallback_to_use_default_if_value_is_null() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/SupportFacadesEventTest.php - Test @ line 49: public function testFakeFor() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 49: public function testFakeFor() - line 50: { - line 57: $this->events->shouldReceive('dispatch')->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome requires facade fake setup (Event::fake()). Evidence: - line 49: public function testFakeFor() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 62: public function testFakeForSwapsDispatchers() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 62: public function testFakeForSwapsDispatchers() - line 69: $this->assertInstanceOf(EventFake::class, $arrayRepository->getEventDispatcher()); - line 74: $this->assertSame($this->events, $arrayRepository->getEventDispatcher()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 77: public function testFakeSwapsDispatchersInResolvedCacheRepositories() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 77: public function testFakeSwapsDispatchersInResolvedCacheRepositories() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/SupportFacadesQueueTest.php - Test @ line 39: public function testFakeFor() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 39: public function testFakeFor() - line 42: (new QueueForStub)->pushJob(); - line 49: (new QueueForStub)->pushJob(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome requires facade fake setup (Queue::fake()). Evidence: - line 39: public function testFakeFor() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 52: public function testFakeForSwapsQueueManager() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 52: public function testFakeForSwapsQueueManager() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 61: public function testFakeExcept() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 61: public function testFakeExcept() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 69: public function testFakeExceptFor() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 69: public function testFakeExceptFor() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 78: public function testFakeExceptForSwapsQueueManager() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 78: public function testFakeExceptForSwapsQueueManager() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 87: public function testFakeExceptForReturnValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 87: public function testFakeExceptForReturnValue() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 96: public function testFakeForReturnValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 96: public function testFakeForReturnValue() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/SupportFacadeTest.php - Test @ line 25: public function testFacadeCallsUnderlyingApplication() Violations: - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 28: $app->setAttributes(['foo' => $mock = m::mock(stdClass::class)]); - Test @ line 34: public function testShouldReceiveReturnsAMockeryMock() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 34: public function testShouldReceiveReturnsAMockeryMock() - line 37: $app->setAttributes(['foo' => new stdClass]); - line 40: $this->assertInstanceOf(MockInterface::class, $mock = FacadeStub::shouldReceive('foo')->once()->with('bar')->andReturn('baz')->getMock()); - line 41: $this->assertSame('baz', $app['foo']->foo('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 44: public function testSpyReturnsAMockerySpy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 44: public function testSpyReturnsAMockerySpy() - line 47: $app->setAttributes(['foo' => new stdClass]); - line 53: $spy->shouldHaveReceived('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 44: public function testSpyReturnsAMockerySpy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 56: public function testShouldReceiveCanBeCalledTwice() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 56: public function testShouldReceiveCanBeCalledTwice() - line 59: $app->setAttributes(['foo' => new stdClass]); - line 62: $this->assertInstanceOf(MockInterface::class, $mock = FacadeStub::shouldReceive('foo')->once()->with('bar')->andReturn('baz')->getMock()); - line 63: $this->assertInstanceOf(MockInterface::class, $mock = FacadeStub::shouldReceive('foo2')->once()->with('bar2')->andReturn('baz2')->getMock()); - line 64: $this->assertSame('baz', $app['foo']->foo('bar')); - line 65: $this->assertSame('baz2', $app['foo']->foo2('bar2')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 74: public function testExpectsReturnsAMockeryMockWithExpectationRequired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 74: public function testExpectsReturnsAMockeryMockWithExpectationRequired() - line 77: $app->setAttributes(['foo' => new stdClass]); - line 80: $this->assertInstanceOf(MockInterface::class, $mock = FacadeStub::expects('foo')->with('bar')->andReturn('baz')->getMock()); - line 81: $this->assertSame('baz', $app['foo']->foo('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 84: public function testFacadeResolvesAgainAfterClearingSpecific() Violations: - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 87: $app->setAttributes(['foo' => $mock = m::mock(stdClass::class)]); - Test @ line 103: public function testFacadeResolvesAgainAfterClearingAll() Violations: - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 106: $app->setAttributes(['foo' => $mock = m::mock(stdClass::class)]); ❌ tests/Support/SupportFluentTest.php - Test @ line 19: public function testAttributesAreSetByConstructor() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 19: public function testAttributesAreSetByConstructor() - line 25: $attributes = $refl->getProperty('attributes'); - line 27: $this->assertEquals($array, $attributes->getValue($fluent)); - line 28: $this->assertEquals($array, $fluent->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 31: public function testAttributesAreSetByConstructorGivenstdClass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 31: public function testAttributesAreSetByConstructorGivenstdClass() - line 37: $attributes = $refl->getProperty('attributes'); - line 39: $this->assertEquals($array, $attributes->getValue($fluent)); - line 40: $this->assertEquals($array, $fluent->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 43: public function testAttributesAreSetByConstructorGivenArrayIterator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 43: public function testAttributesAreSetByConstructorGivenArrayIterator() - line 49: $attributes = $refl->getProperty('attributes'); - line 51: $this->assertEquals($array, $attributes->getValue($fluent)); - line 52: $this->assertEquals($array, $fluent->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 55: public function testGetMethodReturnsAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 55: public function testGetMethodReturnsAttribute() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 65: public function testSetMethodSetsAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 65: public function testSetMethodSetsAttribute() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 65: public function testSetMethodSetsAttribute() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 80: public function testArrayAccessToAttributes() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 80: public function testArrayAccessToAttributes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 92: public function testMagicMethodsCanBeUsedToSetAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 92: public function testMagicMethodsCanBeUsedToSetAttributes() - line 97: $fluent->developer(); - line 98: $fluent->age(25); - line 103: $this->assertInstanceOf(Fluent::class, $fluent->programmer()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 92: public function testMagicMethodsCanBeUsedToSetAttributes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 106: public function testIssetMagicMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 106: public function testIssetMagicMethod() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 106: public function testIssetMagicMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 126: public function testToJsonEncodesTheToArrayResult() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 126: public function testToJsonEncodesTheToArrayResult() - line 128: $fluent = $this->getMockBuilder(Fluent::class)->onlyMethods(['toArray'])->getMock(); - line 129: $fluent->expects($this->once())->method('toArray')->willReturn(['foo']); - line 130: $results = $fluent->toJson(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 126: public function testToJsonEncodesTheToArrayResult() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 135: public function testToPrettyJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 135: public function testToPrettyJson() - line 137: $fluent = $this->getMockBuilder(Fluent::class)->onlyMethods(['toArray'])->getMock(); - line 138: $fluent->expects($this->exactly(2))->method('toArray')->willReturn(['foo' => 'bar', 'bar' => 'foo']); - line 139: $results = $fluent->toPrettyJson(); - line 140: $expected = $fluent->toJson(JSON_PRETTY_PRINT); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 135: public function testToPrettyJson() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 148: public function testScope() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 148: public function testScope() - line 151: $this->assertEquals(['taylor'], $fluent->scope('user.name')->toArray()); - line 152: $this->assertEquals(['dayle'], $fluent->scope('user.age', 'dayle')->toArray()); - line 155: $this->assertEquals(['forge', 'vapour', 'spark'], $fluent->scope('products')->toArray()); - line 156: $this->assertEquals(['foo', 'bar'], $fluent->scope('missing', ['foo', 'bar'])->toArray()); - line 159: $this->assertEquals(['forge', 'vapour', 'spark'], $fluent->scope('authors.taylor.products')->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 162: public function testToCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 162: public function testToCollection() - line 165: $this->assertEquals(['forge', 'vapour', 'spark'], $fluent->collect()->all()); - line 168: $this->assertEquals(['forge', 'vapour', 'spark'], $fluent->collect('authors.taylor.products')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 171: public function testStringMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 171: public function testStringMethod() - line 184: $this->assertTrue($fluent->string('int') instanceof Stringable); - line 185: $this->assertTrue($fluent->string('unknown_key') instanceof Stringable); - line 186: $this->assertSame('123', $fluent->string('int')->value()); - line 187: $this->assertSame('456', $fluent->string('int_str')->value()); - line 188: $this->assertSame('123.456', $fluent->string('float')->value()); - line 189: $this->assertSame('123.456', $fluent->string('float_str')->value()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 197: public function testBooleanMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 197: public function testBooleanMethod() - line 200: $this->assertTrue($fluent->boolean('checked')); - line 201: $this->assertTrue($fluent->boolean('download')); - line 202: $this->assertFalse($fluent->boolean('unchecked')); - line 203: $this->assertFalse($fluent->boolean('with_trashed')); - line 204: $this->assertFalse($fluent->boolean('some_undefined_key')); - line 205: $this->assertTrue($fluent->boolean('with_on')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 209: public function testIntegerMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 209: public function testIntegerMethod() - line 221: $this->assertSame(123, $fluent->integer('int')); - line 222: $this->assertSame(456, $fluent->integer('raw_int')); - line 223: $this->assertSame(78, $fluent->integer('zero_padded')); - line 224: $this->assertSame(901, $fluent->integer('space_padded')); - line 225: $this->assertSame(0, $fluent->integer('nan')); - line 226: $this->assertSame(1, $fluent->integer('mixed')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 233: public function testFloatMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 233: public function testFloatMethod() - line 246: $this->assertSame(1.23, $fluent->float('float')); - line 247: $this->assertSame(45.6, $fluent->float('raw_float')); - line 248: $this->assertSame(.6, $fluent->float('decimal_only')); - line 249: $this->assertSame(0.78, $fluent->float('zero_padded')); - line 250: $this->assertSame(90.1, $fluent->float('space_padded')); - line 251: $this->assertSame(0.0, $fluent->float('nan')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 259: public function testArrayMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 259: public function testArrayMethod() - line 263: $this->assertIsArray($fluent->array('users')); - line 264: $this->assertEquals([1, 2, 3], $fluent->array('users')); - line 265: $this->assertEquals(['users' => [1, 2, 3]], $fluent->array()); - line 268: $this->assertEquals(['text-payload'], $fluent->array()); - line 271: $this->assertEquals(['test@example.com'], $fluent->array('email')); - line 274: $this->assertIsArray($fluent->array()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 286: public function testCollectMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 286: public function testCollectMethod() - line 290: $this->assertInstanceOf(Collection::class, $fluent->collect('users')); - line 291: $this->assertTrue($fluent->collect('developers')->isEmpty()); - line 292: $this->assertEquals([1, 2, 3], $fluent->collect('users')->all()); - line 293: $this->assertEquals(['users' => [1, 2, 3]], $fluent->collect()->all()); - line 296: $this->assertEquals(['text-payload'], $fluent->collect()->all()); - line 299: $this->assertEquals(['test@example.com'], $fluent->collect('email')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 315: public function testDateMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 315: public function testDateMethod() - line 331: $this->assertNull($fluent->date('as_null')); - line 332: $this->assertNull($fluent->date('doesnt_exists')); - line 334: $this->assertEquals($current, $fluent->date('as_datetime')); - line 335: $this->assertEquals($current->format('Y-m-d H:i:s P'), $fluent->date('as_format', 'U')->format('Y-m-d H:i:s P')); - line 336: $this->assertEquals($current, $fluent->date('as_timezone', null, 'America/Santiago')); - line 338: $this->assertTrue($fluent->date('as_date')->isSameDay($current)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 342: public function testDateMethodExceptionWhenValueInvalid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 342: public function testDateMethodExceptionWhenValueInvalid() - line 344: $this->expectException(InvalidArgumentException::class); - line 350: $fluent->date('date'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 342: public function testDateMethodExceptionWhenValueInvalid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 353: public function testDateMethodExceptionWhenFormatInvalid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 353: public function testDateMethodExceptionWhenFormatInvalid() - line 355: $this->expectException(InvalidArgumentException::class); - line 361: $fluent->date('date', 'invalid_format'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 353: public function testDateMethodExceptionWhenFormatInvalid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 364: public function testEnumMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 364: public function testEnumMethod() - line 382: $this->assertNull($fluent->enum('doesnt_exist', TestEnum::class)); - line 384: $this->assertEquals(TestStringBackedEnum::A, $fluent->enum('valid_enum_value', TestStringBackedEnum::class)); - line 386: $this->assertNull($fluent->enum('invalid_enum_value', TestStringBackedEnum::class)); - line 387: $this->assertNull($fluent->enum('empty_value_request', TestStringBackedEnum::class)); - line 388: $this->assertNull($fluent->enum('valid_enum_value', TestEnum::class)); - line 390: $this->assertEquals(TestBackedEnum::A, $fluent->enum('string.a', TestBackedEnum::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 398: public function testEnumsMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 398: public function testEnumsMethod() - line 416: $this->assertEmpty($fluent->enums('doesnt_exist', TestEnum::class)); - line 418: $this->assertEquals([TestStringBackedEnum::A, TestStringBackedEnum::B], $fluent->enums('valid_enum_values', TestStringBackedEnum::class)); - line 420: $this->assertEmpty($fluent->enums('invalid_enum_value', TestStringBackedEnum::class)); - line 421: $this->assertEmpty($fluent->enums('empty_value_request', TestStringBackedEnum::class)); - line 422: $this->assertEmpty($fluent->enums('valid_enum_value', TestEnum::class)); - line 424: $this->assertEquals([TestBackedEnum::A, TestBackedEnum::B], $fluent->enums('string.a', TestBackedEnum::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 433: public function testFill() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 433: public function testFill() - line 437: $fluent->fill([ - line 446: ], $fluent->getAttributes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 449: public function testMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 449: public function testMacroable() - line 452: return $this->fill([ - line 466: ], $fluent->foo()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 469: public function testFluentIsIterable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 469: public function testFluentIsIterable() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 488: public function testFluentIsEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 488: public function testFluentIsEmpty() - line 492: $this->assertTrue($fluent->isEmpty()); - line 493: $this->assertFalse($fluent->isNotEmpty()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 496: public function testFluentIsNotEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 496: public function testFluentIsNotEmpty() - line 503: $this->assertTrue($fluent->isNotEmpty()); - line 504: $this->assertFalse($fluent->isEmpty()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/SupportHelpersTest.php - Test @ line 48: public function testE() Violations: - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 53: $html = m::mock(Htmlable::class); - Test @ line 58: public function testEWithInvalidCodePoints() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 58: public function testEWithInvalidCodePoints() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 58: public function testEWithInvalidCodePoints() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 64: public function testEWithEnums() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 64: public function testEWithEnums() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 64: public function testEWithEnums() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 73: public function testBlank() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 73: public function testBlank() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 73: public function testBlank() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 91: public function testBlankDoesntJsonSerializeModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 91: public function testBlankDoesntJsonSerializeModels() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 91: public function testBlankDoesntJsonSerializeModels() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 104: public function testClassBasename() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 104: public function testClassBasename() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 104: public function testClassBasename() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 129: public function testWhen() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 129: public function testWhen() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 129: public function testWhen() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 153: public function testFilled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 153: public function testFilled() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 153: public function testFilled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 171: public function testValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 171: public function testValue() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 171: public function testValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 191: public function testObjectGet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 191: public function testObjectGet() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 191: public function testObjectGet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 201: public function testObjectGetDefaultValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 201: public function testObjectGetDefaultValue() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 201: public function testObjectGetDefaultValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 211: public function testObjectGetWhenKeyIsNullOrEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 211: public function testObjectGetWhenKeyIsNullOrEmpty() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 211: public function testObjectGetWhenKeyIsNullOrEmpty() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 221: public function testDataHas() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 221: public function testDataHas() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 221: public function testDataHas() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 257: public function testDataGet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 257: public function testDataGet() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 257: public function testDataGet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 283: public function testDataGetWithNestedArrays() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 283: public function testDataGetWithNestedArrays() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 283: public function testDataGetWithNestedArrays() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 317: public function testDataGetWithDoubleNestedArraysCollapsesResult() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 317: public function testDataGetWithDoubleNestedArraysCollapsesResult() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 317: public function testDataGetWithDoubleNestedArraysCollapsesResult() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 348: public function testDataGetFirstLastDirectives() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 348: public function testDataGetFirstLastDirectives() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 348: public function testDataGetFirstLastDirectives() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 386: public function testDataGetFirstLastDirectivesOnArrayAccessIterable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 386: public function testDataGetFirstLastDirectivesOnArrayAccessIterable() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 386: public function testDataGetFirstLastDirectivesOnArrayAccessIterable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 424: public function testDataGetFirstLastDirectivesOnKeyedArrays() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 424: public function testDataGetFirstLastDirectivesOnKeyedArrays() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 424: public function testDataGetFirstLastDirectivesOnKeyedArrays() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 446: public function testDataGetEscapedSegmentKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 446: public function testDataGetEscapedSegmentKeys() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 446: public function testDataGetEscapedSegmentKeys() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 464: public function testDataGetStar() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 464: public function testDataGetStar() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 464: public function testDataGetStar() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 473: public function testDataGetNullKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 473: public function testDataGetNullKey() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 473: public function testDataGetNullKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 485: public function testDataFill() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 485: public function testDataFill() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 485: public function testDataFill() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 498: public function testDataFillWithStar() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 498: public function testDataFillWithStar() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 498: public function testDataFillWithStar() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 523: public function testDataFillWithDoubleStar() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 523: public function testDataFillWithDoubleStar() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 523: public function testDataFillWithDoubleStar() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 562: public function testDataSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 562: public function testDataSet() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 562: public function testDataSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 597: public function testDataSetWithStar() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 597: public function testDataSetWithStar() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 597: public function testDataSetWithStar() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 622: public function testDataSetWithDoubleStar() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 622: public function testDataSetWithDoubleStar() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 622: public function testDataSetWithDoubleStar() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 661: public function testDataRemove() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 661: public function testDataRemove() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 661: public function testDataRemove() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 685: public function testDataRemoveWithStar() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 685: public function testDataRemoveWithStar() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 685: public function testDataRemoveWithStar() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 711: public function testDataRemoveWithDoubleStar() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 711: public function testDataRemoveWithDoubleStar() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 711: public function testDataRemoveWithDoubleStar() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 750: public function testHead() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 750: public function testHead() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 750: public function testHead() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 756: public function testLast() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 756: public function testLast() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 756: public function testLast() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 762: public function testClassUsesRecursiveShouldReturnTraitsOnParentClasses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 762: public function testClassUsesRecursiveShouldReturnTraitsOnParentClasses() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 762: public function testClassUsesRecursiveShouldReturnTraitsOnParentClasses() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 773: public function testClassUsesRecursiveAcceptsObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 773: public function testClassUsesRecursiveAcceptsObject() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 773: public function testClassUsesRecursiveAcceptsObject() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 784: public function testClassUsesRecursiveReturnParentTraitsFirst() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 784: public function testClassUsesRecursiveReturnParentTraitsFirst() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 784: public function testClassUsesRecursiveReturnParentTraitsFirst() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 796: public function testTraitUsesRecursive() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 796: public function testTraitUsesRecursive() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 796: public function testTraitUsesRecursive() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 809: public function testStr() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 809: public function testStr() - line 818: $this->assertTrue($stringable->isEmpty()); - line 821: $this->assertTrue((new ReflectionClass($strAccessor))->isAnonymous()); - line 822: $this->assertSame($strAccessor->limit('string-value', 3), 'str...'); - line 825: $this->assertTrue((new ReflectionClass($strAccessor))->isAnonymous()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 829: public function testTap() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 829: public function testTap() - line 836: $mock = m::mock(); - line 838: $this->assertEquals($mock, tap($mock)->foo()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 841: public function testThrow() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 841: public function testThrow() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 848: public function testThrowDefaultException() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 848: public function testThrowDefaultException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 855: public function testThrowExceptionWithMessage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 855: public function testThrowExceptionWithMessage() - line 857: $this->expectException(RuntimeException::class); - line 858: $this->expectExceptionMessage('test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 855: public function testThrowExceptionWithMessage() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 863: public function testThrowExceptionAsStringWithMessage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 863: public function testThrowExceptionAsStringWithMessage() - line 865: $this->expectException(LogicException::class); - line 866: $this->expectExceptionMessage('test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 863: public function testThrowExceptionAsStringWithMessage() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 871: public function testThrowClosureException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 871: public function testThrowClosureException() - line 873: $this->expectException(\Exception::class); - line 874: $this->expectExceptionMessage('test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 871: public function testThrowClosureException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 879: public function testThrowClosureWithParamsException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 879: public function testThrowClosureWithParamsException() - line 881: $this->expectException(\Exception::class); - line 882: $this->expectExceptionMessage('test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 879: public function testThrowClosureWithParamsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 887: public function testThrowClosureStringWithParamsException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 887: public function testThrowClosureStringWithParamsException() - line 889: $this->expectException(\Exception::class); - line 890: $this->expectExceptionMessage('test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 887: public function testThrowClosureStringWithParamsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 895: public function testThrowUnless() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 895: public function testThrowUnless() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 902: public function testThrowUnlessDefaultException() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 902: public function testThrowUnlessDefaultException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 909: public function testThrowUnlessExceptionWithMessage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 909: public function testThrowUnlessExceptionWithMessage() - line 911: $this->expectException(RuntimeException::class); - line 912: $this->expectExceptionMessage('test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 909: public function testThrowUnlessExceptionWithMessage() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 917: public function testThrowUnlessExceptionAsStringWithMessage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 917: public function testThrowUnlessExceptionAsStringWithMessage() - line 919: $this->expectException(LogicException::class); - line 920: $this->expectExceptionMessage('test'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 917: public function testThrowUnlessExceptionAsStringWithMessage() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 925: public function testThrowReturnIfNotThrown() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 925: public function testThrowReturnIfNotThrown() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 925: public function testThrowReturnIfNotThrown() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 930: public function testThrowWithString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 930: public function testThrowWithString() - line 932: $this->expectException(RuntimeException::class); - line 933: $this->expectExceptionMessage('Test Message'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 930: public function testThrowWithString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 938: public function testOptional() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 938: public function testOptional() - line 940: $this->assertNull(optional(null)->something()); - line 948: })->something()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 938: public function testOptional() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 951: public function testOptionalWithCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 951: public function testOptionalWithCallback() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 951: public function testOptionalWithCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 964: public function testOptionalWithArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 964: public function testOptionalWithArray() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 964: public function testOptionalWithArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 971: public function testOptionalReturnsObjectPropertyOrNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 971: public function testOptionalReturnsObjectPropertyOrNull() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 971: public function testOptionalReturnsObjectPropertyOrNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 978: public function testOptionalDeterminesWhetherKeyIsSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 978: public function testOptionalDeterminesWhetherKeyIsSet() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 978: public function testOptionalDeterminesWhetherKeyIsSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 985: public function testOptionalAllowsToSetKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 985: public function testOptionalAllowsToSetKey() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 985: public function testOptionalAllowsToSetKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 996: public function testOptionalAllowToUnsetKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 996: public function testOptionalAllowToUnsetKey() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 996: public function testOptionalAllowToUnsetKey() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1009: public function testOptionalIsMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1009: public function testOptionalIsMacroable() - line 1013: return $this->value->present(); - line 1019: $this->assertNull(optional(null)->present()->something()); - line 1033: })->present()->something()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1009: public function testOptionalIsMacroable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1036: public function testRetry() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1036: public function testRetry() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1059: public function testRetryWithPassingSleepCallback() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1059: public function testRetryWithPassingSleepCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1087: public function testRetryWithPassingWhenCallback() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1087: public function testRetryWithPassingWhenCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1112: public function testRetryWithFailingWhenCallback() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1112: public function testRetryWithFailingWhenCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1127: public function testRetryWithBackoff() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1127: public function testRetryWithBackoff() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1151: public function testRetryWithAThrowableBase() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1151: public function testRetryWithAThrowableBase() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1174: public function testTransform() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1174: public function testTransform() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1174: public function testTransform() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1185: public function testTransformDefaultWhenBlank() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1185: public function testTransformDefaultWhenBlank() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1185: public function testTransformDefaultWhenBlank() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1198: public function testWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1198: public function testWith() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1198: public function testWith() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1207: public function testAppendConfig() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1207: public function testAppendConfig() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1207: public function testAppendConfig() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1216: public function testEnv() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1216: public function testEnv() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 1218: $_SERVER['foo'] = 'bar'; - Test @ line 1223: public function testEnvTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1223: public function testEnvTrue() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 1225: $_SERVER['foo'] = 'true'; - line 1228: $_SERVER['foo'] = '(true)'; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1223: public function testEnvTrue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1232: public function testEnvFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1232: public function testEnvFalse() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 1234: $_SERVER['foo'] = 'false'; - line 1237: $_SERVER['foo'] = '(false)'; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1232: public function testEnvFalse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1241: public function testEnvEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1241: public function testEnvEmpty() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 1243: $_SERVER['foo'] = ''; - line 1246: $_SERVER['foo'] = 'empty'; - line 1249: $_SERVER['foo'] = '(empty)'; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1241: public function testEnvEmpty() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1253: public function testEnvNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1253: public function testEnvNull() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 1255: $_SERVER['foo'] = 'null'; - line 1258: $_SERVER['foo'] = '(null)'; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1253: public function testEnvNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1262: public function testEnvDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1262: public function testEnvDefault() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 1264: $_SERVER['foo'] = 'bar'; - line 1267: $_SERVER['foo'] = ''; - line 1273: $_SERVER['foo'] = null; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 1270: unset($_SERVER['foo']); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1262: public function testEnvDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1277: public function testEnvEscapedString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1277: public function testEnvEscapedString() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 1279: $_SERVER['foo'] = '"null"'; - line 1282: $_SERVER['foo'] = "'null'"; - line 1285: $_SERVER['foo'] = 'x"null"x'; // this should not be unquoted - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1277: public function testEnvEscapedString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1515: public function testGetFromSERVERFirst() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1515: public function testGetFromSERVERFirst() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 1517: $_ENV['foo'] = 'From $_ENV'; - line 1518: $_SERVER['foo'] = 'From $_SERVER'; - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1515: public function testGetFromSERVERFirst() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1568: public function testPregReplaceArray($pattern, $replacements, $subject, $expectedOutput) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 1568: public function testPregReplaceArray($pattern, $replacements, $subject, $expectedOutput) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1568: public function testPregReplaceArray($pattern, $replacements, $subject, $expectedOutput) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1614: public function testLazyThrowsExceptionWhenConstructorIsNotCalled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1614: public function testLazyThrowsExceptionWhenConstructorIsNotCalled() - line 1617: $this->markTestSkipped(); - line 1626: $this->expectException(Error::class); - line 1627: $this->expectExceptionMessage('Typed property Illuminate\Tests\Support\SupportLazyClass::$first must not be accessed before initialization'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1614: public function testLazyThrowsExceptionWhenConstructorIsNotCalled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1822: public function testClosureOnlyLazyThrowsExceptionWhenConstructorIsNotCalled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1822: public function testClosureOnlyLazyThrowsExceptionWhenConstructorIsNotCalled() - line 1825: $this->markTestSkipped(); - line 1834: $this->expectException(Error::class); - line 1835: $this->expectExceptionMessage('Typed property Illuminate\Tests\Support\SupportLazyClass::$first must not be accessed before initialization'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1822: public function testClosureOnlyLazyThrowsExceptionWhenConstructorIsNotCalled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1840: public function testClosureOnlyLazyThrowsWhenNotClassSpecifiedInClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1840: public function testClosureOnlyLazyThrowsWhenNotClassSpecifiedInClosure() - line 1843: $this->markTestSkipped(); - line 1846: $this->expectException(RuntimeException::class); - line 1847: $this->expectExceptionMessage('The first parameter of the given Closure is missing a type hint.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1840: public function testClosureOnlyLazyThrowsWhenNotClassSpecifiedInClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2074: public function testProxyThrowsExceptionWhenObjectIsNotReturned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2074: public function testProxyThrowsExceptionWhenObjectIsNotReturned() - line 2077: $this->markTestSkipped(); - line 2086: $this->expectException(Error::class); - line 2087: $this->expectExceptionMessage('Lazy proxy factory must return an instance of a class compatible with Illuminate\Tests\Support\SupportLazyClass, null returned'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2074: public function testProxyThrowsExceptionWhenObjectIsNotReturned() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2153: public function testClosureOnlyProxyThrowsExceptionWhenObjectIsNotReturned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2153: public function testClosureOnlyProxyThrowsExceptionWhenObjectIsNotReturned() - line 2156: $this->markTestSkipped(); - line 2165: $this->expectException(Error::class); - line 2166: $this->expectExceptionMessage('Lazy proxy factory must return an instance of a class compatible with Illuminate\Tests\Support\SupportLazyClass, null returned'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2153: public function testClosureOnlyProxyThrowsExceptionWhenObjectIsNotReturned() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 2171: public function testClosureOnlyProxyThrowsWhenNotClassSpecifiedInClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 2171: public function testClosureOnlyProxyThrowsWhenNotClassSpecifiedInClosure() - line 2174: $this->markTestSkipped(); - line 2177: $this->expectException(RuntimeException::class); - line 2178: $this->expectExceptionMessage('The first parameter of the given Closure is missing a type hint.'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 2171: public function testClosureOnlyProxyThrowsWhenNotClassSpecifiedInClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/SupportHtmlStringTest.php - Test @ line 37: public function testToString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 37: public function testToString() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 37: public function testToString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/SupportLazyCollectionIsLazyTest.php - Test @ line 19: public function testMakeWithClosureIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 19: public function testMakeWithClosureIsLazy() - line 21: [$closure, $recorder] = $this->makeGeneratorFunctionWithRecorder(); - line 25: $this->assertEquals([], $recorder->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 28: public function testMakeWithLazyCollectionIsLazy() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 28: public function testMakeWithLazyCollectionIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 35: public function testEagerEnumeratesOnce() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 35: public function testEagerEnumeratesOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 45: public function testChunkIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 45: public function testChunkIsLazy() - line 48: $collection->chunk(3); - line 52: $collection->chunk(5)->take(3)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 45: public function testChunkIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 56: public function testChunkWhileIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 56: public function testChunkWhileIsLazy() - line 58: $collection = LazyCollection::make(['A', 'A', 'B', 'B', 'C', 'C', 'C']); - line 61: $collection->chunkWhile(function ($current, $key, $chunk) { - line 67: $collection->chunkWhile(function ($current, $key, $chunk) { - line 73: $collection->chunkWhile(function ($current, $key, $chunk) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 56: public function testChunkWhileIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 79: public function testCollapseIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 79: public function testCollapseIsLazy() - line 81: $collection = LazyCollection::make([ - line 88: $collection->collapse(); - line 92: $collection->collapse()->take(3)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 79: public function testCollapseIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 96: public function testCombineIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 96: public function testCombineIsLazy() - line 100: $first = $this->countEnumerations($this->make([1, 2]), $firstEnumerations); - line 101: $second = $this->countEnumerations($this->make([1, 2]), $secondEnumerations); - line 103: $first->combine($second); - line 108: $first->combine($second)->take(1)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 96: public function testCombineIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 114: public function testConcatIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 114: public function testConcatIsLazy() - line 118: $first = $this->countEnumerations($this->make([1, 2]), $firstEnumerations); - line 119: $second = $this->countEnumerations($this->make([1, 2]), $secondEnumerations); - line 121: $first->concat($second); - line 126: $first->concat($second)->take(2)->all(); - line 134: $first->concat($second)->take(3)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 114: public function testConcatIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 140: public function testMultiplyIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 140: public function testMultiplyIsLazy() - line 143: $collection->multiply(2); - line 147: $this->make([1, 2, 3]), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 140: public function testMultiplyIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 154: public function testContainsIsLazy() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 154: public function testContainsIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 161: public function testDoesntContainIsLazy() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 161: public function testDoesntContainIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 168: public function testContainsStrictIsLazy() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 168: public function testContainsStrictIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 175: public function testCountEnumeratesOnce() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 175: public function testCountEnumeratesOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 182: public function testCountByIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 182: public function testCountByIsLazy() - line 185: $collection->countBy(); - line 189: $this->make([1, 2, 2, 3]), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 182: public function testCountByIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 196: public function testCrossJoinIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 196: public function testCrossJoinIsLazy() - line 199: $collection->crossJoin([1]); - line 203: $collection->crossJoin([1], [2])->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 196: public function testCrossJoinIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 207: public function testDiffIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 207: public function testDiffIsLazy() - line 210: $collection->diff([1, 2]); - line 214: $collection->diff([1, 2])->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 207: public function testDiffIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 218: public function testDiffAssocIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 218: public function testDiffAssocIsLazy() - line 221: $collection->diffAssoc([1, 2]); - line 225: $collection->diffAssoc([1, 2])->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 218: public function testDiffAssocIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 229: public function testDiffAssocUsingIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 229: public function testDiffAssocUsingIsLazy() - line 232: $collection->diffAssocUsing([1, 2], 'strcasecmp'); - line 236: $collection->diffAssocUsing([1, 2], 'strcasecmp')->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 229: public function testDiffAssocUsingIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 240: public function testDiffKeysIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 240: public function testDiffKeysIsLazy() - line 243: $collection->diffKeys([1, 2]); - line 247: $collection->diffKeys([1, 2])->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 240: public function testDiffKeysIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 251: public function testDiffKeysUsingIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 251: public function testDiffKeysUsingIsLazy() - line 254: $collection->diffKeysUsing([1, 2], 'strcasecmp'); - line 258: $collection->diffKeysUsing([1, 2], 'strcasecmp')->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 251: public function testDiffKeysUsingIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 262: public function testDiffUsingIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 262: public function testDiffUsingIsLazy() - line 265: $collection->diffUsing([1, 2], 'strcasecmp'); - line 269: $collection->diffUsing([1, 2], 'strcasecmp')->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 262: public function testDiffUsingIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 273: public function testDuplicatesIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 273: public function testDuplicatesIsLazy() - line 276: $collection->duplicates(); - line 280: $collection->duplicates()->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 273: public function testDuplicatesIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 284: public function testDuplicatesStrictIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 284: public function testDuplicatesStrictIsLazy() - line 287: $collection->duplicatesStrict(); - line 291: $collection->duplicatesStrict()->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 284: public function testDuplicatesStrictIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 295: public function testEachIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 295: public function testEachIsLazy() - line 298: $collection->each(function ($value, $key) { - line 306: $collection->each(function ($value, $key) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 295: public function testEachIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 326: public function testEachSpreadIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 326: public function testEachSpreadIsLazy() - line 328: $data = $this->make([[1, 2], [3, 4], [5, 6], [7, 8]]); - line 331: $collection->eachSpread(function ($first, $second, $key) { - line 339: $collection->eachSpread(function ($first, $second, $key) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 326: public function testEachSpreadIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 345: public function testEveryIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 345: public function testEveryIsLazy() - line 348: $collection->every(function ($value) { - line 353: $data = $this->make([['a' => 1], ['a' => 2], ['a' => 3]]); - line 356: $collection->every('a', 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 345: public function testEveryIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 360: public function testExceptIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 360: public function testExceptIsLazy() - line 363: $collection->except([1, 2]); - line 367: $collection->except([1, 2])->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 360: public function testExceptIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 371: public function testFilterIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 371: public function testFilterIsLazy() - line 374: $collection->filter(function ($value) { - line 380: $collection->filter(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 371: public function testFilterIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 386: public function testFirstIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 386: public function testFirstIsLazy() - line 389: $collection->first(); - line 393: $collection->first(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 386: public function testFirstIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 399: public function testFirstWhereIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 399: public function testFirstWhereIsLazy() - line 401: $data = $this->make([['a' => 1], ['a' => 2], ['a' => 3]]); - line 404: $collection->firstWhere('a', 2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 399: public function testFirstWhereIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 408: public function testFlatMapIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 408: public function testFlatMapIsLazy() - line 410: $data = $this->make([1, 2, 3, 4, 5]); - line 413: $collection->flatMap(function ($values) { - line 419: $collection->flatMap(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 408: public function testFlatMapIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 425: public function testFlattenIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 425: public function testFlattenIsLazy() - line 427: $data = $this->make([1, [2, 3], [4, 5], [6, 7]]); - line 430: $collection->flatten(); - line 434: $collection->flatten()->take(3)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 425: public function testFlattenIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 438: public function testFlipIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 438: public function testFlipIsLazy() - line 441: $collection->flip(); - line 445: $collection->flip()->take(2)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 438: public function testFlipIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 449: public function testForPageIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 449: public function testForPageIsLazy() - line 452: $collection->forPage(2, 10); - line 456: $collection->forPage(2, 10)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 449: public function testForPageIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 460: public function testGetIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 460: public function testGetIsLazy() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 460: public function testGetIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 467: public function testGroupByIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 467: public function testGroupByIsLazy() - line 470: $collection->groupBy(function ($value) { - line 476: $collection->groupBy(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 467: public function testGroupByIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 482: public function testHasIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 482: public function testHasIsLazy() - line 485: $collection->has(4); - line 489: $collection->has('non-existent'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 482: public function testHasIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 493: public function testHasAnyIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 493: public function testHasAnyIsLazy() - line 496: $collection->hasAny(4); - line 500: $collection->hasAny([1, 4]); - line 504: $collection->hasAny(['non', 'existent']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 493: public function testHasAnyIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 508: public function testImplodeEnumeratesOnce() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 508: public function testImplodeEnumeratesOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 515: public function testIntersectIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 515: public function testIntersectIsLazy() - line 518: $collection->intersect([1, 2, 3]); - line 522: $collection->intersect([1, 2, 3])->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 515: public function testIntersectIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 526: public function testIntersectUsingIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 526: public function testIntersectUsingIsLazy() - line 529: $collection->intersectUsing([1, 2], 'strcasecmp'); - line 533: $collection->intersectUsing([1, 2], 'strcasecmp')->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 526: public function testIntersectUsingIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 537: public function testIntersectAssocIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 537: public function testIntersectAssocIsLazy() - line 540: $collection->intersectAssoc([1, 2]); - line 544: $collection->intersectAssoc([1, 2])->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 537: public function testIntersectAssocIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 548: public function testIntersectAssocUsingIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 548: public function testIntersectAssocUsingIsLazy() - line 551: $collection->intersectAssocUsing([1, 2], 'strcasecmp'); - line 555: $collection->intersectAssocUsing([1, 2], 'strcasecmp')->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 548: public function testIntersectAssocUsingIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 559: public function testIntersectByKeysIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 559: public function testIntersectByKeysIsLazy() - line 562: $collection->intersectByKeys([1, 2, 3]); - line 566: $collection->intersectByKeys([1, 2, 3])->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 559: public function testIntersectByKeysIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 570: public function testIsEmptyIsLazy() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 570: public function testIsEmptyIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 577: public function testIsNotEmptyIsLazy() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 577: public function testIsNotEmptyIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 584: public function testContainsOneItemIsLazy() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 584: public function testContainsOneItemIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 591: public function testJoinIsLazy() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 591: public function testJoinIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 598: public function testJsonSerializeEnumeratesOnce() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 598: public function testJsonSerializeEnumeratesOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 605: public function testKeyByIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 605: public function testKeyByIsLazy() - line 608: $collection->keyBy(function ($value) { - line 614: $collection->keyBy(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 605: public function testKeyByIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 620: public function testKeysIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 620: public function testKeysIsLazy() - line 623: $collection->keys(); - line 627: $collection->keys()->take(2)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 620: public function testKeysIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 631: public function testLastEnumeratesOnce() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 631: public function testLastEnumeratesOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 638: public function testMapIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 638: public function testMapIsLazy() - line 641: $collection->map(function ($value) { - line 647: $collection->map(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 638: public function testMapIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 653: public function testMapIntoIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 653: public function testMapIntoIsLazy() - line 656: $collection->mapInto(stdClass::class); - line 660: $collection->mapInto(stdClass::class)->take(2)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 653: public function testMapIntoIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 664: public function testMapSpreadIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 664: public function testMapSpreadIsLazy() - line 666: $data = $this->make([[1, 2], [3, 4], [5, 6], [7, 8]]); - line 669: $collection->mapSpread(function ($first, $second, $key) { - line 675: $collection->mapSpread(function ($first, $second, $key) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 664: public function testMapSpreadIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 681: public function testMapToDictionaryIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 681: public function testMapToDictionaryIsLazy() - line 684: $collection->mapToDictionary(function ($value, $key) { - line 690: $collection->mapToDictionary(function ($value, $key) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 681: public function testMapToDictionaryIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 696: public function testMapToGroupsIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 696: public function testMapToGroupsIsLazy() - line 699: $collection->mapToGroups(function ($value, $key) { - line 705: $collection->mapToGroups(function ($value, $key) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 696: public function testMapToGroupsIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 711: public function testMapWithKeysIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 711: public function testMapWithKeysIsLazy() - line 714: $collection->mapWithKeys(function ($value, $key) { - line 720: $collection->mapWithKeys(function ($value, $key) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 711: public function testMapWithKeysIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 726: public function testMaxEnumeratesOnce() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 726: public function testMaxEnumeratesOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 733: public function testMedianEnumeratesOnce() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 733: public function testMedianEnumeratesOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 740: public function testAvgEnumeratesOnce() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 740: public function testAvgEnumeratesOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 747: public function testMergeIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 747: public function testMergeIsLazy() - line 750: $collection->merge([1, 2, 3]); - line 754: $collection->merge([1, 2, 3])->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 747: public function testMergeIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 758: public function testMergeRecursiveIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 758: public function testMergeRecursiveIsLazy() - line 761: $collection->mergeRecursive([1, 2, 3]); - line 765: $collection->mergeRecursive([1, 2, 3])->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 758: public function testMergeRecursiveIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 769: public function testMinEnumeratesOnce() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 769: public function testMinEnumeratesOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 776: public function testModeEnumeratesOnce() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 776: public function testModeEnumeratesOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 783: public function testNthIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 783: public function testNthIsLazy() - line 786: $collection->nth(5); - line 790: $collection->nth(5)->take(3)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 783: public function testNthIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 794: public function testOnlyIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 794: public function testOnlyIsLazy() - line 797: $collection->only(5, 6, 7); - line 801: $collection->only(5, 6, 7)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 794: public function testOnlyIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 805: public function testPadIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 805: public function testPadIsLazy() - line 808: $collection->pad(200, null); - line 813: $collection->pad(20, null)->all(); - line 817: $collection->pad(-20, null)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 805: public function testPadIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 821: public function testPartitionEnumeratesOnce() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 821: public function testPartitionEnumeratesOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 830: public function testPipeDoesNotEnumerate() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 830: public function testPipeDoesNotEnumerate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 839: public function testPluckIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 839: public function testPluckIsLazy() - line 841: $data = $this->make([['a' => 1], ['a' => 2], ['a' => 3], ['a' => 4]]); - line 844: $collection->pluck('a'); - line 848: $collection->pluck('a')->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 839: public function testPluckIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 852: public function testRandomEnumeratesOnce() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 852: public function testRandomEnumeratesOnce() - line 855: $collection->random(); - line 859: $collection->random(5); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 852: public function testRandomEnumeratesOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 863: public function testRangeIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 863: public function testRangeIsLazy() - line 865: $data = LazyCollection::range(10, 1000); - line 868: $collection->take(50); - line 872: $collection->take(5)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 863: public function testRangeIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 876: public function testReduceIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 876: public function testReduceIsLazy() - line 879: $this->rescue(function () use ($collection) { - line 887: $collection->reduce(function ($total, $value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 876: public function testReduceIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 893: public function testReduceSpreadIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 893: public function testReduceSpreadIsLazy() - line 896: $this->rescue(function () use ($collection) { - line 904: $collection->reduceSpread(function ($total, $max, $value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 893: public function testReduceSpreadIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 910: public function testRejectIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 910: public function testRejectIsLazy() - line 913: $collection->reject(function ($value) { - line 919: $collection->reject(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 910: public function testRejectIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 925: public function testRememberIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 925: public function testRememberIsLazy() - line 928: $collection->remember(); - line 932: $collection = $collection->remember(); - line 939: $collection = $collection->remember(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 925: public function testRememberIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 946: public function testReplaceIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 946: public function testReplaceIsLazy() - line 949: $collection->replace([5 => 'a', 10 => 'b']); - line 953: $collection->replace([5 => 'a', 10 => 'b'])->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 946: public function testReplaceIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 957: public function testReplaceRecursiveIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 957: public function testReplaceRecursiveIsLazy() - line 960: $collection->replaceRecursive([5 => 'a', 10 => 'b']); - line 964: $collection->replaceRecursive([5 => 'a', 10 => 'b'])->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 957: public function testReplaceRecursiveIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 968: public function testReverseIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 968: public function testReverseIsLazy() - line 971: $collection->reverse(); - line 975: $collection->reverse()->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 968: public function testReverseIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 979: public function testSearchIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 979: public function testSearchIsLazy() - line 982: $collection->search(5); - line 986: $collection->search('missing'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 979: public function testSearchIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 990: public function testShuffleIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 990: public function testShuffleIsLazy() - line 993: $collection->shuffle(); - line 997: $collection->shuffle()->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 990: public function testShuffleIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1001: public function testSlidingIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1001: public function testSlidingIsLazy() - line 1004: $collection->sliding(); - line 1008: $collection->sliding()->take(1)->all(); - line 1012: $collection->sliding()->take(2)->all(); - line 1016: $collection->sliding(3, 5)->take(3)->all(); - line 1020: $collection->sliding()->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1001: public function testSlidingIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1024: public function testSkipIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1024: public function testSkipIsLazy() - line 1027: $collection->skip(10); - line 1031: $collection->skip(10)->take(2)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1024: public function testSkipIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1035: public function testSkipUntilIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1035: public function testSkipUntilIsLazy() - line 1038: $collection->skipUntil(INF); - line 1042: $collection->skipUntil(10)->first(); - line 1046: $collection->skipUntil(function ($item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1035: public function testSkipUntilIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1052: public function testSkipWhileIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1052: public function testSkipWhileIsLazy() - line 1055: $collection->skipWhile(1); - line 1059: $collection->skipWhile(1)->first(); - line 1063: $collection->skipWhile(function ($item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1052: public function testSkipWhileIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1069: public function testSliceIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1069: public function testSliceIsLazy() - line 1072: $collection->slice(2); - line 1078: $collection->slice(2)->take(2)->all(); - line 1082: $collection->slice(2, 2)->all(); - line 1086: $collection->slice(-2, 2)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1069: public function testSliceIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1090: public function testFindFirstOrFailIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1090: public function testFindFirstOrFailIsLazy() - line 1093: $collection->firstOrFail(); - line 1097: $collection->firstOrFail(function ($item) { - line 1104: $collection->firstOrFail(function ($item) { - line 1113: $collection->firstOrFail(function ($item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1090: public function testFindFirstOrFailIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1119: public function testSomeIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1119: public function testSomeIsLazy() - line 1122: $collection->some(function ($value) { - line 1128: $collection->some(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1119: public function testSomeIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1134: public function testSoleIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1134: public function testSoleIsLazy() - line 1138: $collection->sole(); - line 1145: $collection->sole(function ($item) { - line 1152: $collection->sole(function ($item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1134: public function testSoleIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1161: public function testSortIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1161: public function testSortIsLazy() - line 1164: $collection->sort(); - line 1168: $collection->sort()->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1161: public function testSortIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1172: public function testSortDescIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1172: public function testSortDescIsLazy() - line 1175: $collection->sortDesc(); - line 1179: $collection->sortDesc()->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1172: public function testSortDescIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1183: public function testSortByIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1183: public function testSortByIsLazy() - line 1186: $collection->sortBy(function ($value) { - line 1192: $collection->sortBy(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1183: public function testSortByIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1198: public function testSortByDescIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1198: public function testSortByDescIsLazy() - line 1201: $collection->sortByDesc(function ($value) { - line 1207: $collection->sortByDesc(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1198: public function testSortByDescIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1213: public function testSortKeysIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1213: public function testSortKeysIsLazy() - line 1216: $collection->sortKeys(); - line 1220: $collection->sortKeys()->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1213: public function testSortKeysIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1224: public function testSortKeysDescIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1224: public function testSortKeysDescIsLazy() - line 1227: $collection->sortKeysDesc(); - line 1231: $collection->sortKeysDesc()->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1224: public function testSortKeysDescIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1235: public function testSplitIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1235: public function testSplitIsLazy() - line 1238: $collection->split(4); - line 1242: $collection->split(4)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1235: public function testSplitIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1246: public function testSumEnumeratesOnce() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1246: public function testSumEnumeratesOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1253: public function testTakeIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1253: public function testTakeIsLazy() - line 1256: $collection->take(10); - line 1260: $collection->take(10)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1253: public function testTakeIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1264: public function testTakeUntilIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1264: public function testTakeUntilIsLazy() - line 1267: $collection->takeUntil(INF); - line 1271: $collection->takeUntil(10)->all(); - line 1275: $collection->takeUntil(function ($item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1264: public function testTakeUntilIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1281: public function testTakeUntilTimeoutIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1281: public function testTakeUntilTimeoutIsLazy() - line 1288: ->tap(function ($collection) use ($mock, $timeout) { - line 1308: ->tap(function ($collection) use ($mock, $timeout) { - line 1329: ->tap(function ($collection) use ($mock, $timeout) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1281: public function testTakeUntilTimeoutIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1347: public function testTakeWhileIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1347: public function testTakeWhileIsLazy() - line 1350: $collection->takeWhile(0); - line 1354: $collection->takeWhile(0)->all(); - line 1358: $collection->takeWhile(function ($item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1347: public function testTakeWhileIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1364: public function testTapDoesNotEnumerate() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1364: public function testTapDoesNotEnumerate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1373: public function testTapEachIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1373: public function testTapEachIsLazy() - line 1376: $collection->tapEach(function ($value) { - line 1382: $collection->tapEach(function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1373: public function testTapEachIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1388: public function testThrottleIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1388: public function testThrottleIsLazy() - line 1393: $collection->throttle(10); - line 1397: $collection->throttle(10)->take(5)->all(); - line 1401: $collection->throttle(10)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1388: public function testThrottleIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1407: public function testTimesIsLazy() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1407: public function testTimesIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1416: public function testToArrayEnumeratesOnce() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1416: public function testToArrayEnumeratesOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1423: public function testToJsonEnumeratesOnce() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1423: public function testToJsonEnumeratesOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1430: public function testUnionIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1430: public function testUnionIsLazy() - line 1433: $collection->union([4, 5, 6]); - line 1437: $collection->union([4, 5, 6])->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1430: public function testUnionIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1441: public function testUniqueIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1441: public function testUniqueIsLazy() - line 1444: $collection->unique(); - line 1448: $collection->unique()->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1441: public function testUniqueIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1452: public function testUniqueStrictIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1452: public function testUniqueStrictIsLazy() - line 1455: $collection->uniqueStrict(); - line 1459: $collection->uniqueStrict()->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1452: public function testUniqueStrictIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1463: public function testUnlessDoesNotEnumerate() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1463: public function testUnlessDoesNotEnumerate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1476: public function testUnlessEmptyIsLazy() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1476: public function testUnlessEmptyIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1485: public function testUnlessNotEmptyIsLazy() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1485: public function testUnlessNotEmptyIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1494: public function testUnwrapEnumeratesOne() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1494: public function testUnwrapEnumeratesOne() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1501: public function testValuesIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1501: public function testValuesIsLazy() - line 1504: $collection->values(); - line 1508: $collection->values()->take(2)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1501: public function testValuesIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1512: public function testWhenDoesNotEnumerate() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1512: public function testWhenDoesNotEnumerate() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1525: public function testWhenEmptyIsLazy() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1525: public function testWhenEmptyIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1534: public function testWhenNotEmptyIsLazy() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1534: public function testWhenNotEmptyIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1543: public function testWhereIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1543: public function testWhereIsLazy() - line 1545: $data = $this->make([['a' => 1], ['a' => 2], ['a' => 3], ['a' => 4]]); - line 1548: $collection->where('a', '<', 3); - line 1552: $collection->where('a', '<', 3)->take(1)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1543: public function testWhereIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1556: public function testWhereBetweenIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1556: public function testWhereBetweenIsLazy() - line 1558: $data = $this->make([['a' => 1], ['a' => 2], ['a' => 3], ['a' => 4]]); - line 1561: $collection->whereBetween('a', [2, 4]); - line 1565: $collection->whereBetween('a', [2, 4])->take(1)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1556: public function testWhereBetweenIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1569: public function testWhereInIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1569: public function testWhereInIsLazy() - line 1571: $data = $this->make([['a' => 1], ['a' => 2], ['a' => 3], ['a' => 4]]); - line 1574: $collection->whereIn('a', [2, 3]); - line 1578: $collection->whereIn('a', [2, 3])->take(1)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1569: public function testWhereInIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1582: public function testWhereInstanceOfIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1582: public function testWhereInstanceOfIsLazy() - line 1584: $data = $this->make(['a' => 0])->concat( - line 1590: $collection->whereInstanceOf(stdClass::class); - line 1594: $collection->whereInstanceOf(stdClass::class)->take(1)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1582: public function testWhereInstanceOfIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1598: public function testWhereInStrictIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1598: public function testWhereInStrictIsLazy() - line 1600: $data = $this->make([['a' => 1], ['a' => 2], ['a' => 3], ['a' => 4]]); - line 1603: $collection->whereInStrict('a', ['2', 3]); - line 1607: $collection->whereInStrict('a', ['2', 3])->take(1)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1598: public function testWhereInStrictIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1611: public function testWhereNotBetweenIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1611: public function testWhereNotBetweenIsLazy() - line 1613: $data = $this->make([['a' => 1], ['a' => 2], ['a' => 3], ['a' => 4]]); - line 1616: $collection->whereNotBetween('a', [1, 2]); - line 1620: $collection->whereNotBetween('a', [1, 2])->take(1)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1611: public function testWhereNotBetweenIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1624: public function testWhereNotInIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1624: public function testWhereNotInIsLazy() - line 1626: $data = $this->make([['a' => 1], ['a' => 2], ['a' => 3], ['a' => 4]]); - line 1629: $collection->whereNotIn('a', [1, 2]); - line 1633: $collection->whereNotIn('a', [1, 2])->take(1)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1624: public function testWhereNotInIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1637: public function testWhereNotInStrictIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1637: public function testWhereNotInStrictIsLazy() - line 1639: $data = $this->make([['a' => 1], ['a' => 2], ['a' => 3], ['a' => 4]]); - line 1642: $collection->whereNotInStrict('a', ['1', 2]); - line 1646: $collection->whereNotInStrict('a', [1, '2'])->take(1)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1637: public function testWhereNotInStrictIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1650: public function testWhereNotNullIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1650: public function testWhereNotNullIsLazy() - line 1652: $data = $this->make([['a' => 1], ['a' => null], ['a' => 2], ['a' => 3]]); - line 1655: $collection->whereNotNull('a'); - line 1659: $collection->whereNotNull('a')->all(); - line 1662: $data = $this->make([1, null, 2, null, 3]); - line 1665: $collection->whereNotNull(); - line 1669: $collection->whereNotNull()->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1650: public function testWhereNotNullIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1673: public function testWhereNullIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1673: public function testWhereNullIsLazy() - line 1675: $data = $this->make([['a' => 1], ['a' => null], ['a' => 2], ['a' => 3]]); - line 1678: $collection->whereNull('a'); - line 1682: $collection->whereNull('a')->all(); - line 1685: $data = $this->make([1, null, 2, null, 3]); - line 1688: $collection->whereNull(); - line 1692: $collection->whereNull()->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1673: public function testWhereNullIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1696: public function testWhereStrictIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1696: public function testWhereStrictIsLazy() - line 1698: $data = $this->make([['a' => 1], ['a' => 2], ['a' => 3], ['a' => 4]]); - line 1701: $collection->whereStrict('a', 2); - line 1705: $collection->whereStrict('a', 2)->take(1)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1696: public function testWhereStrictIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1709: public function testWithHeartbeatIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1709: public function testWithHeartbeatIsLazy() - line 1712: $collection->withHeartbeat(1, function () { - line 1718: $collection->withHeartbeat(1, function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1709: public function testWithHeartbeatIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1724: public function testWrapIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1724: public function testWrapIsLazy() - line 1727: LazyCollection::wrap($collection); - line 1731: LazyCollection::wrap($collection)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1724: public function testWrapIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1735: public function testZipIsLazy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1735: public function testZipIsLazy() - line 1739: $first = $this->countEnumerations($this->make([1, 2]), $firstEnumerations); - line 1740: $second = $this->countEnumerations($this->make([1, 2]), $secondEnumerations); - line 1742: $first->zip($second); - line 1747: $first->zip($second)->take(1)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1735: public function testZipIsLazy() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/SupportLazyCollectionTest.php - Test @ line 17: public function testCanCreateEmptyCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 17: public function testCanCreateEmptyCollection() - line 19: $this->assertSame([], LazyCollection::make()->all()); - line 20: $this->assertSame([], LazyCollection::empty()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 23: public function testCanCreateCollectionFromArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 23: public function testCanCreateCollectionFromArray() - line 27: $data = LazyCollection::make($array); - line 29: $this->assertSame($array, $data->all()); - line 35: $this->assertSame($array, $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 38: public function testCanCreateCollectionFromArrayable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 38: public function testCanCreateCollectionFromArrayable() - line 42: $data = LazyCollection::make(Collection::make($array)); - line 44: $this->assertSame($array, $data->all()); - line 50: $this->assertSame($array, $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 53: public function testCanCreateCollectionFromGeneratorFunction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 53: public function testCanCreateCollectionFromGeneratorFunction() - line 55: $data = LazyCollection::make(function () { - line 61: $this->assertSame([1, 2, 3], $data->all()); - line 73: ], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 76: public function testCanCreateCollectionFromNonGeneratorFunction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 76: public function testCanCreateCollectionFromNonGeneratorFunction() - line 78: $data = LazyCollection::make(function () { - line 82: $this->assertSame(['laravel'], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 85: public function testDoesNotCreateCollectionFromGenerator() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 85: public function testDoesNotCreateCollectionFromGenerator() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 96: public function testEager() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 96: public function testEager() - line 102: })->eager(); - line 106: $this->assertSame([1, 2, 3, 4, 5], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 109: public function testRemember() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 109: public function testRemember() - line 115: })->remember(); - line 117: $this->assertSame([1, 2, 3, 4], $collection->all()); - line 121: $this->assertSame([1, 2, 3, 4], $collection->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 124: public function testRememberWithTwoRunners() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 23. Evidence: - line 124: public function testRememberWithTwoRunners() - line 130: })->remember(); - line 132: $a = $collection->getIterator(); - line 133: $b = $collection->getIterator(); - line 135: $this->assertEquals(1, $a->current()); - line 136: $this->assertEquals(1, $b->current()); - line 138: $b->next(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 169: public function testRememberWithDuplicateKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 169: public function testRememberWithDuplicateKeys() - line 174: })->remember(); - line 176: $results = $collection->map(function ($value, $key) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 169: public function testRememberWithDuplicateKeys() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 183: public function testTakeUntilTimeout() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 183: public function testTakeUntilTimeout() - line 187: $mock = m::mock(LazyCollection::class.'[now]'); - line 193: ->tap(function ($collection) use ($mock, $timeout) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 183: public function testTakeUntilTimeout() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 216: public function testTapEach() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 216: public function testTapEach() - line 222: $data = $data->tapEach(function ($value, $key) use (&$tapped) { - line 228: $data = $data->take(5)->all(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 286: public function testUniqueDoubleEnumeration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 286: public function testUniqueDoubleEnumeration() - line 288: $data = LazyCollection::times(2)->unique(); - line 290: $data->all(); - line 292: $this->assertSame([1, 2], $data->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 295: public function testAfter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 295: public function testAfter() - line 300: $result = $data->after(1); - line 304: $result = $data->after('2', true); - line 314: $result = $users->after(function ($user) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 321: public function testBefore() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 321: public function testBefore() - line 325: $result = $data->before(2); - line 329: $result = $data->before(4, true); - line 338: $result = $users->before(function ($user) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 344: public function testShuffle() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 344: public function testShuffle() - line 347: $shuffled = $data->shuffle(); - line 350: $this->assertEquals([1, 2, 3, 4, 5], $shuffled->sort()->values()->all()); - line 357: $shuffled = $users->shuffle(); - line 360: $this->assertTrue($shuffled->contains('name', 'Taylor')); - line 361: $this->assertTrue($shuffled->contains('name', 'Jeffrey')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 364: public function testCollapseWithKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 364: public function testCollapseWithKeys() - line 370: $collapsed = $collection->collapseWithKeys(); - line 372: $this->assertEquals(['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4], $collapsed->all()); - line 378: $collapsed = $collection->collapseWithKeys(); - line 380: $this->assertEquals(['a' => 1, 'b' => 2], $collapsed->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 383: public function testContainsOneItem() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 383: public function testContainsOneItem() - line 386: $this->assertTrue($collection->containsOneItem()); - line 389: $this->assertFalse($emptyCollection->containsOneItem()); - line 392: $this->assertFalse($multipleCollection->containsOneItem()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 395: public function testDoesntContain() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 395: public function testDoesntContain() - line 399: $this->assertTrue($collection->doesntContain(10)); - line 400: $this->assertFalse($collection->doesntContain(3)); - line 401: $this->assertTrue($collection->doesntContain('value', '>', 10)); - line 402: $this->assertTrue($collection->doesntContain(function ($value) { - line 417: $this->assertTrue($users->doesntContain('name', 'Adam')); - line 418: $this->assertFalse($users->doesntContain('name', 'Taylor')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 421: public function testDot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 421: public function testDot() - line 443: $dotted = $collection->dot(); - line 453: $this->assertEquals($expected, $dotted->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 456: public function testWithHeartbeat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 456: public function testWithHeartbeat() - line 459: $after2Minutes = $start->copy()->addMinutes(2); - line 460: $after5Minutes = $start->copy()->addMinutes(5); - line 461: $after7Minutes = $start->copy()->addMinutes(7); - line 462: $after11Minutes = $start->copy()->addMinutes(11); - line 471: ->tapEach(fn ($number) => Carbon::setTestNow( - line 497: $output->all(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/SupportMacroableTest.php - Test @ line 23: public function testRegisterMacro() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testRegisterMacro() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 42: public function testRegisterMacroAndCallWithoutStatic() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 42: public function testRegisterMacroAndCallWithoutStatic() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 51: public function testWhenCallingMacroClosureIsBoundToObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 51: public function testWhenCallingMacroClosureIsBoundToObject() - line 53: TestMacroable::macro('tryInstance', function () { - line 61: $result = $instance->tryInstance(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 68: public function testClassBasedMacros() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 68: public function testClassBasedMacros() - line 70: TestMacroable::mixin(new TestMixin); - line 72: $this->assertSame('instance-Adam', $instance->methodOne('Adam')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 75: public function testClassBasedMacrosNoReplace() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 75: public function testClassBasedMacrosNoReplace() - line 77: TestMacroable::macro('methodThree', function () { - line 82: $this->assertSame('bar', $instance->methodThree()); - line 85: $this->assertSame('foo', $instance->methodThree()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 88: public function testFlushMacros() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 88: public function testFlushMacros() - line 90: TestMacroable::macro('flushMethod', function () { - line 96: $this->assertSame('flushMethod', $instance->flushMethod()); - line 100: $this->expectException(BadMethodCallException::class); - line 102: $instance->flushMethod(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 105: public function testFlushMacrosStatic() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 105: public function testFlushMacrosStatic() - line 107: TestMacroable::macro('flushMethod', function () { - line 117: $this->expectException(BadMethodCallException::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 142: public function testCallingUndefinedMacroThrowsException() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 142: public function testCallingUndefinedMacroThrowsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/SupportMailTest.php - Test @ line 11: public function testItRegisterAndCallMacros() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 11: public function testItRegisterAndCallMacros() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 21: public function testItRegisterAndCallMacrosWhenFaked() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 21: public function testItRegisterAndCallMacrosWhenFaked() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/SupportMaintenanceModeTest.php - Test @ line 11: public function testExtends() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 11: public function testExtends() - line 13: MaintenanceMode::extend('test', fn () => new TestMaintenanceMode); - line 17: $this->assertInstanceOf(TestMaintenanceMode::class, $this->app->maintenanceMode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 11: public function testExtends() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/SupportMessageBagTest.php - Test @ line 11: public function testUniqueness() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 11: public function testUniqueness() - line 14: $container->add('foo', 'bar'); - line 15: $container->add('foo', 'bar'); - line 16: $messages = $container->getMessages(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 20: public function testMessagesAreAdded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 20: public function testMessagesAreAdded() - line 23: $container->setFormat(':message'); - line 24: $container->add('foo', 'bar'); - line 25: $container->add('foo', 'baz'); - line 26: $container->add('boom', 'bust'); - line 27: $messages = $container->getMessages(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 32: public function testKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 32: public function testKeys() - line 35: $container->setFormat(':message'); - line 36: $container->add('foo', 'bar'); - line 37: $container->add('foo', 'baz'); - line 38: $container->add('boom', 'bust'); - line 39: $this->assertEquals(['foo', 'boom'], $container->keys()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 42: public function testMessagesMayBeMerged() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 42: public function testMessagesMayBeMerged() - line 45: $container->merge(['username' => ['bar']]); - line 46: $this->assertEquals(['username' => ['foo', 'bar']], $container->getMessages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 49: public function testMessageBagsCanBeMerged() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 49: public function testMessageBagsCanBeMerged() - line 53: $container->merge($otherContainer); - line 54: $this->assertEquals(['foo' => ['bar', 'baz'], 'bar' => ['foo']], $container->getMessages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 57: public function testMessageBagsCanConvertToArrays() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 57: public function testMessageBagsCanConvertToArrays() - line 60: Collection::make(['foo', 'bar']), - line 63: $this->assertSame([['foo', 'bar'], ['baz', 'qux']], $container->getMessages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 66: public function testGetReturnsArrayOfMessagesByKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 66: public function testGetReturnsArrayOfMessagesByKey() - line 69: $container->setFormat(':message'); - line 70: $container->add('foo', 'bar'); - line 71: $container->add('foo', 'baz'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 75: public function testGetReturnsArrayOfMessagesByImplicitKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 75: public function testGetReturnsArrayOfMessagesByImplicitKey() - line 78: $container->setFormat(':message'); - line 79: $container->add('foo.1', 'bar'); - line 80: $container->add('foo.2', 'baz'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 84: public function testFirstReturnsSingleMessage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 84: public function testFirstReturnsSingleMessage() - line 87: $container->setFormat(':message'); - line 88: $container->add('foo', 'bar'); - line 89: $container->add('foo', 'baz'); - line 90: $this->assertSame('bar', $container->first('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 93: public function testFirstReturnsEmptyStringIfNoMessagesFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 93: public function testFirstReturnsEmptyStringIfNoMessagesFound() - line 96: $container->setFormat(':message'); - line 97: $this->assertSame('', $container->first('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 100: public function testFirstReturnsSingleMessageFromDotKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 100: public function testFirstReturnsSingleMessageFromDotKeys() - line 103: $container->setFormat(':message'); - line 104: $container->add('name.first', 'jon'); - line 105: $container->add('name.last', 'snow'); - line 106: $this->assertSame('jon', $container->first('name.*')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 109: public function testHasIndicatesExistence() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 109: public function testHasIndicatesExistence() - line 112: $container->setFormat(':message'); - line 113: $container->add('foo', 'bar'); - line 114: $this->assertTrue($container->has('foo')); - line 115: $this->assertFalse($container->has('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 118: public function testMissingIndicatesNonExistence() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 118: public function testMissingIndicatesNonExistence() - line 121: $container->setFormat(':message'); - line 122: $container->add('foo', 'bar'); - line 123: $this->assertFalse($container->missing('foo')); - line 124: $this->assertFalse($container->missing(['foo', 'baz'])); - line 125: $this->assertFalse($container->missing('foo', 'baz')); - line 126: $this->assertTrue($container->missing('baz')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 131: public function testAddIf() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 131: public function testAddIf() - line 134: $container->setFormat(':message'); - line 135: $container->addIf(true, 'foo', 'bar'); - line 136: $this->assertTrue($container->has('foo')); - line 138: $container->addIf(false, 'bar', 'biz'); - line 139: $this->assertFalse($container->has('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 142: public function testForget() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 142: public function testForget() - line 145: $container->forget('foo'); - line 146: $this->assertFalse($container->has('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 149: public function testHasWithKeyNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 149: public function testHasWithKeyNull() - line 152: $container->setFormat(':message'); - line 153: $container->add('foo', 'bar'); - line 154: $this->assertTrue($container->has(null)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 157: public function testHasAnyIndicatesExistence() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 157: public function testHasAnyIndicatesExistence() - line 160: $container->setFormat(':message'); - line 161: $this->assertFalse($container->hasAny()); - line 162: $container->add('foo', 'bar'); - line 163: $container->add('bar', 'foo'); - line 164: $container->add('boom', 'baz'); - line 165: $this->assertTrue($container->hasAny(['foo', 'bar'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 174: public function testHasAnyWithKeyNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 174: public function testHasAnyWithKeyNull() - line 177: $container->setFormat(':message'); - line 178: $container->add('foo', 'bar'); - line 179: $this->assertTrue($container->hasAny(null)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 182: public function testHasIndicatesExistenceOfAllKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 182: public function testHasIndicatesExistenceOfAllKeys() - line 185: $container->setFormat(':message'); - line 186: $container->add('foo', 'bar'); - line 187: $container->add('bar', 'foo'); - line 188: $container->add('boom', 'baz'); - line 189: $this->assertTrue($container->has(['foo', 'bar', 'boom'])); - line 190: $this->assertFalse($container->has(['foo', 'bar', 'boom', 'baz'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 194: public function testHasIndicatesNoneExistence() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 194: public function testHasIndicatesNoneExistence() - line 197: $container->setFormat(':message'); - line 199: $this->assertFalse($container->has('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 202: public function testAllReturnsAllMessages() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 202: public function testAllReturnsAllMessages() - line 205: $container->setFormat(':message'); - line 206: $container->add('foo', 'bar'); - line 207: $container->add('boom', 'baz'); - line 208: $this->assertEquals(['bar', 'baz'], $container->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 211: public function testFormatIsRespected() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 211: public function testFormatIsRespected() - line 214: $container->setFormat('

:message

'); - line 215: $container->add('foo', 'bar'); - line 216: $container->add('boom', 'baz'); - line 217: $this->assertSame('

bar

', $container->first('foo')); - line 219: $this->assertEquals(['

bar

', '

baz

'], $container->all()); - line 220: $this->assertSame('bar', $container->first('foo', ':message')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 228: public function testUnique() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 228: public function testUnique() - line 231: $container->setFormat(':message'); - line 232: $container->add('foo', 'bar'); - line 233: $container->add('foo2', 'bar'); - line 234: $container->add('boom', 'baz'); - line 235: $this->assertEquals([0 => 'bar', 2 => 'baz'], $container->unique()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 238: public function testMessageBagReturnsCorrectArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 238: public function testMessageBagReturnsCorrectArray() - line 241: $container->setFormat(':message'); - line 242: $container->add('foo', 'bar'); - line 243: $container->add('boom', 'baz'); - line 245: $this->assertEquals(['foo' => ['bar'], 'boom' => ['baz']], $container->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 248: public function testMessageBagReturnsExpectedJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 248: public function testMessageBagReturnsExpectedJson() - line 251: $container->setFormat(':message'); - line 252: $container->add('foo', 'bar'); - line 253: $container->add('boom', 'baz'); - line 255: $this->assertSame('{"foo":["bar"],"boom":["baz"]}', $container->toJson()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 258: public function testMessageBagReturnsExpectedPrettyJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 258: public function testMessageBagReturnsExpectedPrettyJson() - line 261: $container->setFormat(':message'); - line 262: $container->add('foo', 'bar'); - line 263: $container->add('boom', 'baz'); - line 264: $container->add('baz', '123'); - line 265: $results = $container->toPrettyJson(); - line 266: $expected = $container->toJson(JSON_PRETTY_PRINT); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 281: public function testCountReturnsCorrectValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 281: public function testCountReturnsCorrectValue() - line 286: $container->add('foo', 'bar'); - line 287: $container->add('foo', 'baz'); - line 288: $container->add('boom', 'baz'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 281: public function testCountReturnsCorrectValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 293: public function testCountable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 293: public function testCountable() - line 296: $container->add('foo', 'bar'); - line 297: $container->add('boom', 'baz'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 293: public function testCountable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 308: public function testFirstFindsMessageForWildcardKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 308: public function testFirstFindsMessageForWildcardKey() - line 311: $container->setFormat(':message'); - line 312: $container->add('foo.bar', 'baz'); - line 313: $this->assertSame('baz', $container->first('foo.*')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 322: public function testIsEmptyFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 322: public function testIsEmptyFalse() - line 325: $container->add('foo.bar', 'baz'); - line 326: $this->assertFalse($container->isEmpty()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 329: public function testIsNotEmptyTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 329: public function testIsNotEmptyTrue() - line 332: $container->add('foo.bar', 'baz'); - line 333: $this->assertTrue($container->isNotEmpty()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 342: public function testToString() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 342: public function testToString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 349: public function testGetFormat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 349: public function testGetFormat() - line 352: $container->setFormat(':message'); - line 353: $this->assertSame(':message', $container->getFormat()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 356: public function testConstructorUniquenessConsistency() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 356: public function testConstructorUniquenessConsistency() - line 359: $messages = $messageBag->getMessages(); - line 363: $messageBag->add('messages', 'first'); - line 364: $messageBag->add('messages', 'second'); - line 365: $messageBag->add('messages', 'third'); - line 366: $messageBag->add('messages', 'third'); - line 367: $messages = $messageBag->getMessages(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/SupportNamespacedItemResolverTest.php - Test @ line 10: public function testResolution() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 10: public function testResolution() - line 14: $this->assertEquals(['foo', 'bar', 'baz'], $r->parseKey('foo::bar.baz')); - line 15: $this->assertEquals(['foo', 'bar', null], $r->parseKey('foo::bar')); - line 16: $this->assertEquals([null, 'bar', 'baz'], $r->parseKey('bar.baz')); - line 17: $this->assertEquals([null, 'bar', null], $r->parseKey('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 20: public function testParsedItemsAreCached() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 20: public function testParsedItemsAreCached() - line 22: $r = $this->getMockBuilder(NamespacedItemResolver::class)->onlyMethods(['parseBasicSegments', 'parseNamespacedSegments'])->getMock(); - line 23: $r->setParsedKey('foo.bar', ['foo']); - line 24: $r->expects($this->never())->method('parseBasicSegments'); - line 25: $r->expects($this->never())->method('parseNamespacedSegments'); - line 27: $this->assertEquals(['foo'], $r->parseKey('foo.bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 30: public function testParsedItemsMayBeFlushed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 30: public function testParsedItemsMayBeFlushed() - line 32: $r = $this->getMockBuilder(NamespacedItemResolver::class)->onlyMethods(['parseBasicSegments', 'parseNamespacedSegments'])->getMock(); - line 33: $r->expects($this->once())->method('parseBasicSegments')->willReturn(['bar']); - line 35: $r->setParsedKey('foo.bar', ['foo']); - line 36: $r->flushParsedKeys(); - line 38: $this->assertEquals(['bar'], $r->parseKey('foo.bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/SupportOptionalTest.php - Test @ line 11: public function testGetExistItemOnObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 11: public function testGetExistItemOnObject() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 11: public function testGetExistItemOnObject() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 23: public function testGetNotExistItemOnObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 23: public function testGetNotExistItemOnObject() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testGetNotExistItemOnObject() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 32: public function testIssetExistItemOnObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 32: public function testIssetExistItemOnObject() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 32: public function testIssetExistItemOnObject() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 42: public function testIssetNotExistItemOnObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 42: public function testIssetNotExistItemOnObject() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 42: public function testIssetNotExistItemOnObject() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 51: public function testGetExistItemOnArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 51: public function testGetExistItemOnArray() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 51: public function testGetExistItemOnArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 64: public function testGetNotExistItemOnArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 64: public function testGetNotExistItemOnArray() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 64: public function testGetNotExistItemOnArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 73: public function testIssetExistItemOnArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 73: public function testIssetExistItemOnArray() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 73: public function testIssetExistItemOnArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 85: public function testIssetNotExistItemOnArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 85: public function testIssetNotExistItemOnArray() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 85: public function testIssetNotExistItemOnArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 95: public function testIssetExistItemOnNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 95: public function testIssetExistItemOnNull() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 95: public function testIssetExistItemOnNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/SupportPluralizerTest.php - Test @ line 57: public function testPluralStudly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 57: public function testPluralStudly() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 57: public function testPluralStudly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 65: public function testPluralStudlyWithCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 65: public function testPluralStudlyWithCount() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 65: public function testPluralStudlyWithCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 102: public function testPluralStudlySupportsArrays() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 102: public function testPluralStudlySupportsArrays() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 102: public function testPluralStudlySupportsArrays() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 109: public function testPluralStudlySupportsCollections() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 109: public function testPluralStudlySupportsCollections() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 109: public function testPluralStudlySupportsCollections() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/SupportReflectorTest.php - Test @ line 16: public function testGetClassName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 16: public function testGetClassName() - line 18: $method = (new ReflectionClass(PendingMailFake::class))->getMethod('send'); - line 20: $this->assertSame(Mailable::class, Reflector::getParameterClassName($method->getParameters()[0])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 23: public function testEmptyClassName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 23: public function testEmptyClassName() - line 25: $method = (new ReflectionClass(MailFake::class))->getMethod('assertSent'); - line 27: $this->assertNull(Reflector::getParameterClassName($method->getParameters()[0])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testEmptyClassName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 30: public function testStringTypeName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 30: public function testStringTypeName() - line 32: $method = (new ReflectionClass(BusFake::class))->getMethod('dispatchedAfterResponse'); - line 34: $this->assertNull(Reflector::getParameterClassName($method->getParameters()[0])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 30: public function testStringTypeName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 37: public function testSelfClassName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 37: public function testSelfClassName() - line 39: $method = (new ReflectionClass(Model::class))->getMethod('newPivot'); - line 41: $this->assertSame(Model::class, Reflector::getParameterClassName($method->getParameters()[0])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 44: public function testParentClassName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 44: public function testParentClassName() - line 46: $method = (new ReflectionClass(B::class))->getMethod('f'); - line 48: $this->assertSame(A::class, Reflector::getParameterClassName($method->getParameters()[0])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 51: public function testParameterSubclassOfInterface() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 51: public function testParameterSubclassOfInterface() - line 53: $method = (new ReflectionClass(TestClassWithInterfaceSubclassParameter::class))->getMethod('f'); - line 55: $this->assertTrue(Reflector::isParameterSubclassOf($method->getParameters()[0], IA::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 58: public function testUnionTypeName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 58: public function testUnionTypeName() - line 60: $method = (new ReflectionClass(C::class))->getMethod('f'); - line 62: $this->assertNull(Reflector::getParameterClassName($method->getParameters()[0])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 58: public function testUnionTypeName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 79: public function testGetClassAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 79: public function testGetClassAttributes() - line 83: $this->assertSame([], Reflector::getClassAttributes(Fixtures\ChildClass::class, Fixtures\UnusedAttr::class)->toArray()); - line 87: Reflector::getClassAttributes(Fixtures\ChildClass::class, Fixtures\UnusedAttr::class, true)->toArray() - line 92: Reflector::getClassAttributes(Fixtures\ChildClass::class, Fixtures\StrAttr::class)->map->string->all() - line 97: Reflector::getClassAttributes(Fixtures\ChildClass::class, Fixtures\StrAttr::class, true)->flatten()->map->string->all() - line 101: $this->assertSame(12, Reflector::getClassAttributes(Fixtures\ChildClass::class, Fixtures\NumAttr::class, true)->flatten()->sum->number); - line 103: $this->assertSame(5, Reflector::getClassAttributes(Fixtures\ParentClass::class, Fixtures\NumAttr::class, true)->flatten()->sum->number); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/SupportReflectsClosuresTest.php - Test @ line 11: public function testReflectsClosures() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 11: public function testReflectsClosures() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 11: public function testReflectsClosures() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 40: public function testItReturnsTheFirstParameterType() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 40: public function testItReturnsTheFirstParameterType() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 49: public function testItThrowsWhenNoParameters() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testItThrowsWhenNoParameters() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 58: public function testItThrowsWhenNoFirstParameterType() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 58: public function testItThrowsWhenNoFirstParameterType() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 87: public function testItWorksWithUnionTypesWithNoTypeHints() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 87: public function testItWorksWithUnionTypesWithNoTypeHints() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 96: public function testItWorksWithUnionTypesWithNoArguments() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 96: public function testItWorksWithUnionTypesWithNoArguments() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/SupportServiceProviderTest.php - Test @ line 138: public function testPublishesMigrations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 138: public function testPublishesMigrations() - line 142: (fn () => $this->publishesMigrations(['source/tagged/four' => 'destination/tagged/four'], 'tag_four')) - line 149: (fn () => $this->publishesMigrations(['source/tagged/five' => 'destination/tagged/five'], 'tag_four')) - line 156: (fn () => $this->publishesMigrations(['source/tagged/five' => 'destination/tagged/five'], 'tag_four')) - line 163: (fn () => $this->publishesMigrations(['source/tagged/five' => 'destination/tagged/five'], 'tag_four')) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 138: public function testPublishesMigrations() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 169: public function testLoadTranslationsFromWithoutNamespace() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 169: public function testLoadTranslationsFromWithoutNamespace() - line 171: $translator = m::mock(Translator::class); - line 181: $provider->loadTranslationsFrom(__DIR__.'/translations'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 171: $translator = m::mock(Translator::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 169: public function testLoadTranslationsFromWithoutNamespace() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 184: public function testLoadTranslationsFromWithNamespace() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 184: public function testLoadTranslationsFromWithNamespace() - line 186: $translator = m::mock(Translator::class); - line 196: $provider->loadTranslationsFrom(__DIR__.'/translations', 'namespace'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 186: $translator = m::mock(Translator::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 184: public function testLoadTranslationsFromWithNamespace() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 199: public function test_can_remove_provider() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 199: public function test_can_remove_provider() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/SupportStringableTest.php - Test @ line 38: public function testIsAscii() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 38: public function testIsAscii() - line 40: $this->assertTrue($this->stringable('A')->isAscii()); - line 41: $this->assertFalse($this->stringable('ù')->isAscii()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 44: public function testIsUrl() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 44: public function testIsUrl() - line 46: $this->assertTrue($this->stringable('https://laravel.com')->isUrl()); - line 47: $this->assertTrue($this->stringable('https://laravel.com')->isUrl(['https'])); - line 49: $this->assertFalse($this->stringable('invalid url')->isUrl()); - line 50: $this->assertFalse($this->stringable('https://laravel.com')->isUrl(['http'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 53: public function testIsUuid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 53: public function testIsUuid() - line 55: $this->assertTrue($this->stringable('2cdc7039-65a6-4ac7-8e5d-d554a98e7b15')->isUuid()); - line 56: $this->assertTrue($this->stringable('2cdc7039-65a6-4ac7-8e5d-d554a98e7b15')->isUuid(4)); - line 58: $this->assertFalse($this->stringable('2cdc7039-65a6-4ac7-8e5d-d554a98')->isUuid()); - line 59: $this->assertFalse($this->stringable('2cdc7039-65a6-4ac7-8e5d-d554a98e7b15')->isUuid(7)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 62: public function testIsUlid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 62: public function testIsUlid() - line 64: $this->assertTrue($this->stringable('01GJSNW9MAF792C0XYY8RX6QFT')->isUlid()); - line 65: $this->assertFalse($this->stringable('01GJSNW9MAF-792C0XYY8RX6ssssss-QFT')->isUlid()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 68: public function testIsJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 68: public function testIsJson() - line 70: $this->assertTrue($this->stringable('1')->isJson()); - line 71: $this->assertTrue($this->stringable('[1,2,3]')->isJson()); - line 72: $this->assertTrue($this->stringable('[1, 2, 3]')->isJson()); - line 73: $this->assertTrue($this->stringable('{"first": "John", "last": "Doe"}')->isJson()); - line 74: $this->assertTrue($this->stringable('[{"first": "John", "last": "Doe"}, {"first": "Jane", "last": "Doe"}]')->isJson()); - line 76: $this->assertFalse($this->stringable('1,')->isJson()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 85: public function testIsMatch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 85: public function testIsMatch() - line 87: $this->assertTrue($this->stringable('Hello, Laravel!')->isMatch('/.*,.*!/')); - line 88: $this->assertTrue($this->stringable('Hello, Laravel!')->isMatch('/^.*$(.*)/')); - line 89: $this->assertTrue($this->stringable('Hello, Laravel!')->isMatch('/laravel/i')); - line 90: $this->assertTrue($this->stringable('Hello, Laravel!')->isMatch('/^(.*(.*(.*)))/')); - line 92: $this->assertFalse($this->stringable('Hello, Laravel!')->isMatch('/H.o/')); - line 93: $this->assertFalse($this->stringable('Hello, Laravel!')->isMatch('/^laravel!/i')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 103: public function testIsEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 103: public function testIsEmpty() - line 105: $this->assertTrue($this->stringable('')->isEmpty()); - line 106: $this->assertFalse($this->stringable('A')->isEmpty()); - line 107: $this->assertFalse($this->stringable('0')->isEmpty()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 110: public function testIsNotEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 110: public function testIsNotEmpty() - line 112: $this->assertFalse($this->stringable('')->isNotEmpty()); - line 113: $this->assertTrue($this->stringable('A')->isNotEmpty()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 116: public function testPluralStudly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 116: public function testPluralStudly() - line 118: $this->assertSame('LaraCon', (string) $this->stringable('LaraCon')->pluralStudly(1)); - line 119: $this->assertSame('LaraCons', (string) $this->stringable('LaraCon')->pluralStudly(2)); - line 120: $this->assertSame('LaraCon', (string) $this->stringable('LaraCon')->pluralStudly(-1)); - line 121: $this->assertSame('LaraCons', (string) $this->stringable('LaraCon')->pluralStudly(-2)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 124: public function testPluralPascal() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 124: public function testPluralPascal() - line 126: $this->assertSame('LaraCons', (string) $this->stringable('LaraCon')->pluralPascal(2)); - line 127: $this->assertSame('LaraCon', (string) $this->stringable('LaraCon')->pluralPascal(1)); - line 128: $this->assertSame('LaraCons', (string) $this->stringable('LaraCon')->pluralPascal(-2)); - line 129: $this->assertSame('LaraCon', (string) $this->stringable('LaraCon')->pluralPascal(-1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 132: public function testMatch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 132: public function testMatch() - line 134: $stringable = $this->stringable('foo bar'); - line 136: $this->assertSame('bar', (string) $stringable->match('/bar/')); - line 137: $this->assertSame('bar', (string) $stringable->match('/foo (.*)/')); - line 138: $this->assertTrue($stringable->match('/nothing/')->isEmpty()); - line 140: $this->assertEquals(['bar', 'bar'], $this->stringable('bar foo bar')->matchAll('/bar/')->all()); - line 142: $stringable = $this->stringable('bar fun bar fly'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 148: public function testTake() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 148: public function testTake() - line 150: $this->assertSame('ab', (string) $this->stringable('abcdef')->take(2)); - line 151: $this->assertSame('ef', (string) $this->stringable('abcdef')->take(-2)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 154: public function testTest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 154: public function testTest() - line 156: $stringable = $this->stringable('foo bar'); - line 158: $this->assertTrue($stringable->test('/bar/')); - line 159: $this->assertTrue($stringable->test('/foo (.*)/')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 177: public function testCanBeLimitedByWords() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 177: public function testCanBeLimitedByWords() - line 179: $this->assertSame('Taylor...', (string) $this->stringable('Taylor Otwell')->words(1)); - line 180: $this->assertSame('Taylor___', (string) $this->stringable('Taylor Otwell')->words(1, '___')); - line 181: $this->assertSame('Taylor Otwell', (string) $this->stringable('Taylor Otwell')->words(3)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 184: public function testUcwords() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 184: public function testUcwords() - line 186: $this->assertSame('Laravel', (string) $this->stringable('laravel')->ucwords()); - line 187: $this->assertSame('Laravel Framework', (string) $this->stringable('laravel framework')->ucwords()); - line 188: $this->assertSame('Laravel-Framework', (string) $this->stringable('laravel-framework')->ucwords('-')); - line 189: $this->assertSame('Мама', (string) $this->stringable('мама')->ucwords()); - line 190: $this->assertSame('Мама Мыла Раму', (string) $this->stringable('мама мыла раму')->ucwords()); - line 191: $this->assertSame('JJ Watt', (string) $this->stringable('JJ watt')->ucwords()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 194: public function testUnless() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 194: public function testUnless() - line 196: $this->assertSame('unless false', (string) $this->stringable('unless')->unless(false, function ($stringable, $value) { - line 200: $this->assertSame('unless true fallbacks to default', (string) $this->stringable('unless')->unless(true, function ($stringable, $value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 207: public function testWhenContains() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 207: public function testWhenContains() - line 209: $this->assertSame('Tony Stark', (string) $this->stringable('stark')->whenContains('tar', function ($stringable) { - line 215: $this->assertSame('stark', (string) $this->stringable('stark')->whenContains('xxx', function ($stringable) { - line 219: $this->assertSame('Arno Stark', (string) $this->stringable('stark')->whenContains('xxx', function ($stringable) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 226: public function testWhenContainsAll() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 226: public function testWhenContainsAll() - line 228: $this->assertSame('Tony Stark', (string) $this->stringable('tony stark')->whenContainsAll(['tony', 'stark'], function ($stringable) { - line 234: $this->assertSame('tony stark', (string) $this->stringable('tony stark')->whenContainsAll(['xxx'], function ($stringable) { - line 238: $this->assertSame('TonyStark', (string) $this->stringable('tony stark')->whenContainsAll(['tony', 'xxx'], function ($stringable) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 245: public function testDedup() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 245: public function testDedup() - line 247: $this->assertSame(' laravel php framework ', (string) $this->stringable(' laravel php framework ')->deduplicate()); - line 248: $this->assertSame('what', (string) $this->stringable('whaaat')->deduplicate('a')); - line 249: $this->assertSame('/some/odd/path/', (string) $this->stringable('/some//odd//path/')->deduplicate('/')); - line 250: $this->assertSame('ムだム', (string) $this->stringable('ムだだム')->deduplicate('だ')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 253: public function testDirname() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 253: public function testDirname() - line 255: $this->assertSame('/framework/tests', (string) $this->stringable('/framework/tests/Support')->dirname()); - line 256: $this->assertSame('/framework', (string) $this->stringable('/framework/tests/Support')->dirname(2)); - line 257: $this->assertSame('.', (string) $this->stringable('framework')->dirname()); - line 259: $this->assertSame('.', (string) $this->stringable('.')->dirname()); - line 261: $this->assertSame(DIRECTORY_SEPARATOR, (string) $this->stringable('/framework/')->dirname()); - line 262: $this->assertSame(DIRECTORY_SEPARATOR, (string) $this->stringable('/')->dirname()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 265: public function testUcsplitOnStringable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 265: public function testUcsplitOnStringable() - line 267: $this->assertSame(['Taylor', 'Otwell'], $this->stringable('TaylorOtwell')->ucsplit()->toArray()); - line 268: $this->assertSame(['Hello', 'From', 'Laravel'], $this->stringable('HelloFromLaravel')->ucsplit()->toArray()); - line 269: $this->assertSame(['He_llo_', 'World'], $this->stringable('He_llo_World')->ucsplit()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 272: public function testWhenEndsWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 272: public function testWhenEndsWith() - line 274: $this->assertSame('Tony Stark', (string) $this->stringable('tony stark')->whenEndsWith('ark', function ($stringable) { - line 280: $this->assertSame('Tony Stark', (string) $this->stringable('tony stark')->whenEndsWith(['kra', 'ark'], function ($stringable) { - line 286: $this->assertSame('tony stark', (string) $this->stringable('tony stark')->whenEndsWith(['xxx'], function ($stringable) { - line 290: $this->assertSame('TonyStark', (string) $this->stringable('tony stark')->whenEndsWith(['tony', 'xxx'], function ($stringable) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 297: public function testWhenDoesntEndWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 297: public function testWhenDoesntEndWith() - line 299: $this->assertSame('Tony Stark', (string) $this->stringable('tony stark')->whenDoesntEndWith('ark', function ($stringable) { - line 305: $this->assertSame('Tony Stark', (string) $this->stringable('tony stark')->whenDoesntEndWith(['kra', 'ark'], function ($stringable) { - line 311: $this->assertSame('tony stark', (string) $this->stringable('tony stark')->whenDoesntEndWith(['xxx'], function ($stringable) { - line 315: $this->assertSame('TonyStark', (string) $this->stringable('tony stark')->whenDoesntEndWith(['tony', 'xxx'], function ($stringable) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 322: public function testWhenExactly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 322: public function testWhenExactly() - line 324: $this->assertSame('Nailed it...!', (string) $this->stringable('Tony Stark')->whenExactly('Tony Stark', function ($stringable) { - line 330: $this->assertSame('Swing and a miss...!', (string) $this->stringable('Tony Stark')->whenExactly('Iron Man', function ($stringable) { - line 336: $this->assertSame('Tony Stark', (string) $this->stringable('Tony Stark')->whenExactly('Iron Man', function ($stringable) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 341: public function testWhenNotExactly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 341: public function testWhenNotExactly() - line 345: (string) $this->stringable('Tony')->whenNotExactly('Tony Stark', function ($stringable) { - line 351: (string) $this->stringable('Tony Stark')->whenNotExactly('Tony Stark', function ($stringable) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 358: public function testWhenIs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 358: public function testWhenIs() - line 360: $this->assertSame('Winner: /', (string) $this->stringable('/')->whenIs('/', function ($stringable) { - line 366: $this->assertSame('/', (string) $this->stringable('/')->whenIs(' /', function ($stringable) { - line 370: $this->assertSame('Try again', (string) $this->stringable('/')->whenIs(' /', function ($stringable) { - line 376: $this->assertSame('Winner: foo/bar/baz', (string) $this->stringable('foo/bar/baz')->whenIs('foo/*', function ($stringable) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 381: public function testWhenIsAscii() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 381: public function testWhenIsAscii() - line 383: $this->assertSame('Ascii: A', (string) $this->stringable('A')->whenIsAscii(function ($stringable) { - line 389: $this->assertSame('ù', (string) $this->stringable('ù')->whenIsAscii(function ($stringable) { - line 393: $this->assertSame('Not Ascii: ù', (string) $this->stringable('ù')->whenIsAscii(function ($stringable) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 400: public function testWhenIsUuid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 400: public function testWhenIsUuid() - line 402: $this->assertSame('Uuid: 2cdc7039-65a6-4ac7-8e5d-d554a98e7b15', (string) $this->stringable('2cdc7039-65a6-4ac7-8e5d-d554a98e7b15')->whenIsUuid(function ($stringable) { - line 408: $this->assertSame('2cdc7039-65a6-4ac7-8e5d-d554a98', (string) $this->stringable('2cdc7039-65a6-4ac7-8e5d-d554a98')->whenIsUuid(function ($stringable) { - line 412: $this->assertSame('Not Uuid: 2cdc7039-65a6-4ac7-8e5d-d554a98', (string) $this->stringable('2cdc7039-65a6-4ac7-8e5d-d554a98')->whenIsUuid(function ($stringable) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 419: public function testWhenIsUlid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 419: public function testWhenIsUlid() - line 421: $this->assertSame('Ulid: 01GJSNW9MAF792C0XYY8RX6QFT', (string) $this->stringable('01GJSNW9MAF792C0XYY8RX6QFT')->whenIsUlid(function ($stringable) { - line 427: $this->assertSame('2cdc7039-65a6-4ac7-8e5d-d554a98', (string) $this->stringable('2cdc7039-65a6-4ac7-8e5d-d554a98')->whenIsUlid(function ($stringable) { - line 431: $this->assertSame('Not Ulid: ss-01GJSNW9MAF792C0XYY8RX6QFT', (string) $this->stringable('ss-01GJSNW9MAF792C0XYY8RX6QFT')->whenIsUlid(function ($stringable) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 438: public function testWhenTest() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 438: public function testWhenTest() - line 440: $this->assertSame('Winner: foo bar', (string) $this->stringable('foo bar')->whenTest('/bar/', function ($stringable) { - line 446: $this->assertSame('Try again', (string) $this->stringable('foo bar')->whenTest('/link/', function ($stringable) { - line 452: $this->assertSame('foo bar', (string) $this->stringable('foo bar')->whenTest('/link/', function ($stringable) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 457: public function testWhenStartsWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 457: public function testWhenStartsWith() - line 459: $this->assertSame('Tony Stark', (string) $this->stringable('tony stark')->whenStartsWith('ton', function ($stringable) { - line 465: $this->assertSame('Tony Stark', (string) $this->stringable('tony stark')->whenStartsWith(['ton', 'not'], function ($stringable) { - line 471: $this->assertSame('tony stark', (string) $this->stringable('tony stark')->whenStartsWith(['xxx'], function ($stringable) { - line 475: $this->assertSame('Tony Stark', (string) $this->stringable('tony stark')->whenStartsWith(['tony', 'xxx'], function ($stringable) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 482: public function testWhenDoesntStartWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 482: public function testWhenDoesntStartWith() - line 484: $this->assertSame('Tony Stark', (string) $this->stringable('tony stark')->whenDoesntStartWith('ton', function ($stringable) { - line 490: $this->assertSame('Tony Stark', (string) $this->stringable('tony stark')->whenDoesntStartWith(['ton', 'not'], function ($stringable) { - line 496: $this->assertSame('tony stark', (string) $this->stringable('tony stark')->whenDoesntStartWith(['xxx'], function ($stringable) { - line 500: $this->assertSame('Tony Stark', (string) $this->stringable('tony stark')->whenDoesntStartWith(['tony', 'xxx'], function ($stringable) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 507: public function testWhenEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 507: public function testWhenEmpty() - line 509: tap($this->stringable(), function ($stringable) { - line 515: $this->assertSame('empty', (string) $this->stringable()->whenEmpty(function () { - line 519: $this->assertSame('not-empty', (string) $this->stringable('not-empty')->whenEmpty(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 524: public function testWhenNotEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 524: public function testWhenNotEmpty() - line 526: tap($this->stringable(), function ($stringable) { - line 532: $this->assertSame('', (string) $this->stringable()->whenNotEmpty(function ($stringable) { - line 536: $this->assertSame('Not empty.', (string) $this->stringable('Not empty')->whenNotEmpty(function ($stringable) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 541: public function testWhenFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 541: public function testWhenFalse() - line 543: $this->assertSame('when', (string) $this->stringable('when')->when(false, function ($stringable, $value) { - line 547: $this->assertSame('when false fallbacks to default', (string) $this->stringable('when false ')->when(false, function ($stringable, $value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 554: public function testWhenTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 554: public function testWhenTrue() - line 556: $this->assertSame('when true', (string) $this->stringable('when ')->when(true, function ($stringable) { - line 560: $this->assertSame('gets a value from if', (string) $this->stringable('gets a value ')->when('from if', function ($stringable, $value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 567: public function testUnlessTruthy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 567: public function testUnlessTruthy() - line 569: $this->assertSame('unless', (string) $this->stringable('unless')->unless(1, function ($stringable, $value) { - line 574: (string) $this->stringable('unless true ')->unless(1, function ($stringable, $value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 581: public function testUnlessFalsy() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 581: public function testUnlessFalsy() - line 583: $this->assertSame('unless 0', (string) $this->stringable('unless ')->unless(0, function ($stringable, $value) { - line 588: (string) $this->stringable('gets the value ')->unless(0, function ($stringable, $value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 595: public function testTrimmedOnlyWhereNecessary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 595: public function testTrimmedOnlyWhereNecessary() - line 597: $this->assertSame(' Taylor Otwell ', (string) $this->stringable(' Taylor Otwell ')->words(3)); - line 598: $this->assertSame(' Taylor...', (string) $this->stringable(' Taylor Otwell ')->words(1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 601: public function testTitle() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 601: public function testTitle() - line 603: $this->assertSame('Jefferson Costella', (string) $this->stringable('jefferson costella')->title()); - line 604: $this->assertSame('Jefferson Costella', (string) $this->stringable('jefFErson coSTella')->title()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 607: public function testWithoutWordsDoesntProduceError() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 607: public function testWithoutWordsDoesntProduceError() - line 610: $this->assertSame(' ', (string) $this->stringable(' ')->words()); - line 611: $this->assertEquals($nbsp, (string) $this->stringable($nbsp)->words()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 614: public function testAscii() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 614: public function testAscii() - line 616: $this->assertSame('@', (string) $this->stringable('@')->ascii()); - line 617: $this->assertSame('u', (string) $this->stringable('ü')->ascii()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 620: public function testTransliterate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 620: public function testTransliterate() - line 622: $this->assertSame('HHH', (string) $this->stringable('🎂🚧🏆')->transliterate('H')); - line 623: $this->assertSame('Hello', (string) $this->stringable('🎂')->transliterate('Hello')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 626: public function testNewLine() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 626: public function testNewLine() - line 628: $this->assertSame('Laravel'.PHP_EOL, (string) $this->stringable('Laravel')->newLine()); - line 629: $this->assertSame('foo'.PHP_EOL.PHP_EOL.'bar', (string) $this->stringable('foo')->newLine(2)->append('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 632: public function testAsciiWithSpecificLocale() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 632: public function testAsciiWithSpecificLocale() - line 634: $this->assertSame('h H sht Sht a A ia yo', (string) $this->stringable('х Х щ Щ ъ Ъ иа йо')->ascii('bg')); - line 635: $this->assertSame('ae oe ue Ae Oe Ue', (string) $this->stringable('ä ö ü Ä Ö Ü')->ascii('de')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 638: public function testStartsWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 25. Evidence: - line 638: public function testStartsWith() - line 640: $this->assertTrue($this->stringable('jason')->startsWith('jas')); - line 641: $this->assertTrue($this->stringable('jason')->startsWith('jason')); - line 642: $this->assertTrue($this->stringable('jason')->startsWith(['jas'])); - line 643: $this->assertTrue($this->stringable('jason')->startsWith(['day', 'jas'])); - line 644: $this->assertTrue($this->stringable('jason')->startsWith(collect(['day', 'jas']))); - line 645: $this->assertFalse($this->stringable('jason')->startsWith('day')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 668: public function testDoesntStartWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 25. Evidence: - line 668: public function testDoesntStartWith() - line 670: $this->assertFalse($this->stringable('jason')->doesntStartWith('jas')); - line 671: $this->assertFalse($this->stringable('jason')->doesntStartWith('jason')); - line 672: $this->assertFalse($this->stringable('jason')->doesntStartWith(['jas'])); - line 673: $this->assertFalse($this->stringable('jason')->doesntStartWith(['day', 'jas'])); - line 674: $this->assertFalse($this->stringable('jason')->doesntStartWith(collect(['day', 'jas']))); - line 675: $this->assertTrue($this->stringable('jason')->doesntStartWith('day')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 698: public function testEndsWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 23. Evidence: - line 698: public function testEndsWith() - line 700: $this->assertTrue($this->stringable('jason')->endsWith('on')); - line 701: $this->assertTrue($this->stringable('jason')->endsWith('jason')); - line 702: $this->assertTrue($this->stringable('jason')->endsWith(['on'])); - line 703: $this->assertTrue($this->stringable('jason')->endsWith(['no', 'on'])); - line 704: $this->assertTrue($this->stringable('jason')->endsWith(collect(['no', 'on']))); - line 705: $this->assertFalse($this->stringable('jason')->endsWith('no')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 726: public function testDoesntEndWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 23. Evidence: - line 726: public function testDoesntEndWith() - line 728: $this->assertFalse($this->stringable('jason')->doesntEndWith('on')); - line 729: $this->assertFalse($this->stringable('jason')->doesntEndWith('jason')); - line 730: $this->assertFalse($this->stringable('jason')->doesntEndWith(['on'])); - line 731: $this->assertFalse($this->stringable('jason')->doesntEndWith(['no', 'on'])); - line 732: $this->assertFalse($this->stringable('jason')->doesntEndWith(collect(['no', 'on']))); - line 733: $this->assertTrue($this->stringable('jason')->doesntEndWith('no')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 759: public function testBefore() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 759: public function testBefore() - line 761: $this->assertSame('han', (string) $this->stringable('hannah')->before('nah')); - line 762: $this->assertSame('ha', (string) $this->stringable('hannah')->before('n')); - line 763: $this->assertSame('ééé ', (string) $this->stringable('ééé hannah')->before('han')); - line 764: $this->assertSame('hannah', (string) $this->stringable('hannah')->before('xxxx')); - line 765: $this->assertSame('hannah', (string) $this->stringable('hannah')->before('')); - line 766: $this->assertSame('han', (string) $this->stringable('han0nah')->before('0')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 771: public function testBeforeLast() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 771: public function testBeforeLast() - line 773: $this->assertSame('yve', (string) $this->stringable('yvette')->beforeLast('tte')); - line 774: $this->assertSame('yvet', (string) $this->stringable('yvette')->beforeLast('t')); - line 775: $this->assertSame('ééé ', (string) $this->stringable('ééé yvette')->beforeLast('yve')); - line 776: $this->assertSame('', (string) $this->stringable('yvette')->beforeLast('yve')); - line 777: $this->assertSame('yvette', (string) $this->stringable('yvette')->beforeLast('xxxx')); - line 778: $this->assertSame('yvette', (string) $this->stringable('yvette')->beforeLast('')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 784: public function testBetween() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 784: public function testBetween() - line 786: $this->assertSame('abc', (string) $this->stringable('abc')->between('', 'c')); - line 787: $this->assertSame('abc', (string) $this->stringable('abc')->between('a', '')); - line 788: $this->assertSame('abc', (string) $this->stringable('abc')->between('', '')); - line 789: $this->assertSame('b', (string) $this->stringable('abc')->between('a', 'c')); - line 790: $this->assertSame('b', (string) $this->stringable('dddabc')->between('a', 'c')); - line 791: $this->assertSame('b', (string) $this->stringable('abcddd')->between('a', 'c')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 799: public function testBetweenFirst() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 799: public function testBetweenFirst() - line 801: $this->assertSame('abc', (string) $this->stringable('abc')->betweenFirst('', 'c')); - line 802: $this->assertSame('abc', (string) $this->stringable('abc')->betweenFirst('a', '')); - line 803: $this->assertSame('abc', (string) $this->stringable('abc')->betweenFirst('', '')); - line 804: $this->assertSame('b', (string) $this->stringable('abc')->betweenFirst('a', 'c')); - line 805: $this->assertSame('b', (string) $this->stringable('dddabc')->betweenFirst('a', 'c')); - line 806: $this->assertSame('b', (string) $this->stringable('abcddd')->betweenFirst('a', 'c')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 814: public function testAfter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 814: public function testAfter() - line 816: $this->assertSame('nah', (string) $this->stringable('hannah')->after('han')); - line 817: $this->assertSame('nah', (string) $this->stringable('hannah')->after('n')); - line 818: $this->assertSame('nah', (string) $this->stringable('ééé hannah')->after('han')); - line 819: $this->assertSame('hannah', (string) $this->stringable('hannah')->after('xxxx')); - line 820: $this->assertSame('hannah', (string) $this->stringable('hannah')->after('')); - line 821: $this->assertSame('nah', (string) $this->stringable('han0nah')->after('0')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 826: public function testAfterLast() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 826: public function testAfterLast() - line 828: $this->assertSame('tte', (string) $this->stringable('yvette')->afterLast('yve')); - line 829: $this->assertSame('e', (string) $this->stringable('yvette')->afterLast('t')); - line 830: $this->assertSame('e', (string) $this->stringable('ééé yvette')->afterLast('t')); - line 831: $this->assertSame('', (string) $this->stringable('yvette')->afterLast('tte')); - line 832: $this->assertSame('yvette', (string) $this->stringable('yvette')->afterLast('xxxx')); - line 833: $this->assertSame('yvette', (string) $this->stringable('yvette')->afterLast('')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 840: public function testContains() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 840: public function testContains() - line 842: $this->assertTrue($this->stringable('taylor')->contains('ylo')); - line 843: $this->assertTrue($this->stringable('taylor')->contains('taylor')); - line 844: $this->assertTrue($this->stringable('taylor')->contains(['ylo'])); - line 845: $this->assertTrue($this->stringable('taylor')->contains(['xxx', 'ylo'])); - line 846: $this->assertTrue($this->stringable('taylor')->contains(collect(['xxx', 'ylo']))); - line 847: $this->assertTrue($this->stringable('taylor')->contains(['LOR'], true)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 853: public function testContainsAll() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 853: public function testContainsAll() - line 855: $this->assertTrue($this->stringable('taylor otwell')->containsAll(['taylor', 'otwell'])); - line 856: $this->assertTrue($this->stringable('taylor otwell')->containsAll(['TAYLOR', 'OTWELL'], true)); - line 857: $this->assertTrue($this->stringable('taylor otwell')->containsAll(collect(['taylor', 'otwell']))); - line 858: $this->assertTrue($this->stringable('taylor otwell')->containsAll(['taylor'])); - line 859: $this->assertFalse($this->stringable('taylor otwell')->containsAll(['taylor', 'xxx'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 862: public function testDoesntContain() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 862: public function testDoesntContain() - line 864: $this->assertTrue($this->stringable('taylor')->doesntContain('xxx')); - line 865: $this->assertTrue($this->stringable('taylor')->doesntContain(['xxx'])); - line 866: $this->assertTrue($this->stringable('taylor')->doesntContain(['xxx', 'yyy'])); - line 867: $this->assertTrue($this->stringable('taylor')->doesntContain(collect(['xxx', 'yyy']))); - line 868: $this->assertTrue($this->stringable('taylor')->doesntContain('')); - line 869: $this->assertFalse($this->stringable('taylor')->doesntContain('ylo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 875: public function testParseCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 875: public function testParseCallback() - line 877: $this->assertEquals(['Class', 'method'], $this->stringable('Class@method')->parseCallback('foo')); - line 878: $this->assertEquals(['Class', 'foo'], $this->stringable('Class')->parseCallback('foo')); - line 879: $this->assertEquals(['Class', null], $this->stringable('Class')->parseCallback()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 882: public function testSlug() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 882: public function testSlug() - line 884: $this->assertSame('hello-world', (string) $this->stringable('hello world')->slug()); - line 885: $this->assertSame('hello-world', (string) $this->stringable('hello-world')->slug()); - line 886: $this->assertSame('hello-world', (string) $this->stringable('hello_world')->slug()); - line 887: $this->assertSame('hello_world', (string) $this->stringable('hello_world')->slug('_')); - line 888: $this->assertSame('user-at-host', (string) $this->stringable('user@host')->slug()); - line 889: $this->assertSame('سلام-دنیا', (string) $this->stringable('سلام دنیا')->slug('-', null)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 895: public function testSquish() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 895: public function testSquish() - line 897: $this->assertSame('words with spaces', (string) $this->stringable(' words with spaces ')->squish()); - line 898: $this->assertSame('words with spaces', (string) $this->stringable("words\t\twith\n\nspaces")->squish()); - line 899: $this->assertSame('words with spaces', (string) $this->stringable(' - line 904: $this->assertSame('laravel php framework', (string) $this->stringable('   laravel   php   framework   ')->squish()); - line 905: $this->assertSame('123', (string) $this->stringable('  123   ')->squish()); - line 906: $this->assertSame('だ', (string) $this->stringable('だ')->squish()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 913: public function testStart() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 913: public function testStart() - line 915: $this->assertSame('/test/string', (string) $this->stringable('test/string')->start('/')); - line 916: $this->assertSame('/test/string', (string) $this->stringable('/test/string')->start('/')); - line 917: $this->assertSame('/test/string', (string) $this->stringable('//test/string')->start('/')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 920: public function testFinish() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 920: public function testFinish() - line 922: $this->assertSame('abbc', (string) $this->stringable('ab')->finish('bc')); - line 923: $this->assertSame('abbc', (string) $this->stringable('abbcbc')->finish('bc')); - line 924: $this->assertSame('abcbbc', (string) $this->stringable('abcbbcbc')->finish('bc')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 927: public function testIs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 26. Evidence: - line 927: public function testIs() - line 929: $this->assertTrue($this->stringable('/')->is('/')); - line 930: $this->assertFalse($this->stringable('/')->is(' /')); - line 931: $this->assertFalse($this->stringable('/a')->is('/')); - line 932: $this->assertTrue($this->stringable('foo/bar/baz')->is('foo/*')); - line 934: $this->assertTrue($this->stringable('App\Class@method')->is('*@*')); - line 935: $this->assertTrue($this->stringable('app\Class@')->is('*@*')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 973: public function testIsWithMultilineStrings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 18. Evidence: - line 973: public function testIsWithMultilineStrings() - line 975: $this->assertFalse($this->stringable("/\n")->is('/')); - line 976: $this->assertTrue($this->stringable("/\n")->is('/*')); - line 977: $this->assertTrue($this->stringable("/\n")->is('*/*')); - line 978: $this->assertTrue($this->stringable("\n/\n")->is('*/*')); - line 980: $this->assertTrue($this->stringable("\n")->is('*')); - line 981: $this->assertTrue($this->stringable("\n\n")->is('*')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1010: public function testLower() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1010: public function testLower() - line 1012: $this->assertSame('foo bar baz', (string) $this->stringable('FOO BAR BAZ')->lower()); - line 1013: $this->assertSame('foo bar baz', (string) $this->stringable('fOo Bar bAz')->lower()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1016: public function testUpper() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1016: public function testUpper() - line 1018: $this->assertSame('FOO BAR BAZ', (string) $this->stringable('foo bar baz')->upper()); - line 1019: $this->assertSame('FOO BAR BAZ', (string) $this->stringable('foO bAr BaZ')->upper()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1022: public function testLimit() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 1022: public function testLimit() - line 1025: (string) $this->stringable('Laravel is a free, open source PHP web application framework.')->limit(10) - line 1027: $this->assertSame('这是一...', (string) $this->stringable('这是一段中文')->limit(6)); - line 1030: $this->assertSame('The PHP...', (string) $this->stringable($string)->limit(7)); - line 1031: $this->assertSame('The PHP', (string) $this->stringable($string)->limit(7, '')); - line 1032: $this->assertSame('The PHP framework for web artisans.', (string) $this->stringable($string)->limit(100)); - line 1035: $this->assertSame('这是一...', (string) $this->stringable($nonAsciiString)->limit(6)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1039: public function testLength() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1039: public function testLength() - line 1041: $this->assertSame(11, $this->stringable('foo bar baz')->length()); - line 1042: $this->assertSame(11, $this->stringable('foo bar baz')->length('UTF-8')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1045: public function testReplace() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 1045: public function testReplace() - line 1047: $this->assertSame('foo/foo/foo', (string) $this->stringable('?/?/?')->replace('?', 'foo')); - line 1048: $this->assertSame('foo/foo/foo', (string) $this->stringable('x/x/x')->replace('X', 'foo', false)); - line 1049: $this->assertSame('bar/bar', (string) $this->stringable('?/?')->replace('?', 'bar')); - line 1050: $this->assertSame('?/?/?', (string) $this->stringable('? ? ?')->replace(' ', '/')); - line 1051: $this->assertSame('foo/bar/baz/bam', (string) $this->stringable('?1/?2/?3/?4')->replace(['?1', '?2', '?3', '?4'], ['foo', 'bar', 'baz', 'bam'])); - line 1052: $this->assertSame('?1/?2/?3/?4', (string) $this->stringable('foo/bar/baz/bam')->replace(['Foo', 'BaR', 'BAZ', 'bAm'], ['?1', '?2', '?3', '?4'], false)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1056: public function testReplaceArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1056: public function testReplaceArray() - line 1058: $this->assertSame('foo/bar/baz', (string) $this->stringable('?/?/?')->replaceArray('?', ['foo', 'bar', 'baz'])); - line 1059: $this->assertSame('foo/bar/baz/?', (string) $this->stringable('?/?/?/?')->replaceArray('?', ['foo', 'bar', 'baz'])); - line 1060: $this->assertSame('foo/bar', (string) $this->stringable('?/?')->replaceArray('?', ['foo', 'bar', 'baz'])); - line 1061: $this->assertSame('?/?/?', (string) $this->stringable('?/?/?')->replaceArray('x', ['foo', 'bar', 'baz'])); - line 1062: $this->assertSame('foo?/bar/baz', (string) $this->stringable('?/?/?')->replaceArray('?', ['foo?', 'bar', 'baz'])); - line 1063: $this->assertSame('foo/bar', (string) $this->stringable('?/?')->replaceArray('?', [1 => 'foo', 2 => 'bar'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1068: public function testReplaceFirst() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 1068: public function testReplaceFirst() - line 1070: $this->assertSame('fooqux foobar', (string) $this->stringable('foobar foobar')->replaceFirst('bar', 'qux')); - line 1071: $this->assertSame('foo/qux? foo/bar?', (string) $this->stringable('foo/bar? foo/bar?')->replaceFirst('bar?', 'qux?')); - line 1072: $this->assertSame('foo foobar', (string) $this->stringable('foobar foobar')->replaceFirst('bar', '')); - line 1073: $this->assertSame('foobar foobar', (string) $this->stringable('foobar foobar')->replaceFirst('xxx', 'yyy')); - line 1074: $this->assertSame('foobar foobar', (string) $this->stringable('foobar foobar')->replaceFirst('', 'yyy')); - line 1076: $this->assertSame('Jxxxnköping Malmö', (string) $this->stringable('Jönköping Malmö')->replaceFirst('ö', 'xxx')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1080: public function testReplaceStart() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1080: public function testReplaceStart() - line 1082: $this->assertSame('foobar foobar', (string) $this->stringable('foobar foobar')->replaceStart('bar', 'qux')); - line 1083: $this->assertSame('foo/bar? foo/bar?', (string) $this->stringable('foo/bar? foo/bar?')->replaceStart('bar?', 'qux?')); - line 1084: $this->assertSame('quxbar foobar', (string) $this->stringable('foobar foobar')->replaceStart('foo', 'qux')); - line 1085: $this->assertSame('qux? foo/bar?', (string) $this->stringable('foo/bar? foo/bar?')->replaceStart('foo/bar?', 'qux?')); - line 1086: $this->assertSame('bar foobar', (string) $this->stringable('foobar foobar')->replaceStart('foo', '')); - line 1087: $this->assertSame('1', (string) $this->stringable('0')->replaceStart(0, '1')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1093: public function testReplaceLast() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 1093: public function testReplaceLast() - line 1095: $this->assertSame('foobar fooqux', (string) $this->stringable('foobar foobar')->replaceLast('bar', 'qux')); - line 1096: $this->assertSame('foo/bar? foo/qux?', (string) $this->stringable('foo/bar? foo/bar?')->replaceLast('bar?', 'qux?')); - line 1097: $this->assertSame('foobar foo', (string) $this->stringable('foobar foobar')->replaceLast('bar', '')); - line 1098: $this->assertSame('foobar foobar', (string) $this->stringable('foobar foobar')->replaceLast('xxx', 'yyy')); - line 1099: $this->assertSame('foobar foobar', (string) $this->stringable('foobar foobar')->replaceLast('', 'yyy')); - line 1101: $this->assertSame('Malmö Jönkxxxping', (string) $this->stringable('Malmö Jönköping')->replaceLast('ö', 'xxx')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1105: public function testReplaceEnd() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1105: public function testReplaceEnd() - line 1107: $this->assertSame('foobar fooqux', (string) $this->stringable('foobar foobar')->replaceEnd('bar', 'qux')); - line 1108: $this->assertSame('foo/bar? foo/qux?', (string) $this->stringable('foo/bar? foo/bar?')->replaceEnd('bar?', 'qux?')); - line 1109: $this->assertSame('foobar foo', (string) $this->stringable('foobar foobar')->replaceEnd('bar', '')); - line 1110: $this->assertSame('foobar foobar', (string) $this->stringable('foobar foobar')->replaceLast('xxx', 'yyy')); - line 1111: $this->assertSame('foobar foobar', (string) $this->stringable('foobar foobar')->replaceEnd('', 'yyy')); - line 1112: $this->assertSame('fooxxx foobar', (string) $this->stringable('fooxxx foobar')->replaceEnd('xxx', 'yyy')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1119: public function testRemove() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 1119: public function testRemove() - line 1121: $this->assertSame('Fbar', (string) $this->stringable('Foobar')->remove('o')); - line 1122: $this->assertSame('Foo', (string) $this->stringable('Foobar')->remove('bar')); - line 1123: $this->assertSame('oobar', (string) $this->stringable('Foobar')->remove('F')); - line 1124: $this->assertSame('Foobar', (string) $this->stringable('Foobar')->remove('f')); - line 1125: $this->assertSame('oobar', (string) $this->stringable('Foobar')->remove('f', false)); - line 1127: $this->assertSame('Fbr', (string) $this->stringable('Foobar')->remove(['o', 'a'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1134: public function testReverse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1134: public function testReverse() - line 1136: $this->assertSame('FooBar', (string) $this->stringable('raBooF')->reverse()); - line 1137: $this->assertSame('Teniszütő', (string) $this->stringable('őtüzsineT')->reverse()); - line 1138: $this->assertSame('❤MultiByte☆', (string) $this->stringable('☆etyBitluM❤')->reverse()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1141: public function testSnake() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 1141: public function testSnake() - line 1143: $this->assertSame('laravel_p_h_p_framework', (string) $this->stringable('LaravelPHPFramework')->snake()); - line 1144: $this->assertSame('laravel_php_framework', (string) $this->stringable('LaravelPhpFramework')->snake()); - line 1145: $this->assertSame('laravel php framework', (string) $this->stringable('LaravelPhpFramework')->snake(' ')); - line 1146: $this->assertSame('laravel_php_framework', (string) $this->stringable('Laravel Php Framework')->snake()); - line 1147: $this->assertSame('laravel_php_framework', (string) $this->stringable('Laravel Php Framework ')->snake()); - line 1149: $this->assertSame('laravel__php__framework', (string) $this->stringable('LaravelPhpFramework')->snake('__')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1160: public function testStudly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 1160: public function testStudly() - line 1162: $this->assertSame('LaravelPHPFramework', (string) $this->stringable('laravel_p_h_p_framework')->studly()); - line 1163: $this->assertSame('LaravelPhpFramework', (string) $this->stringable('laravel_php_framework')->studly()); - line 1164: $this->assertSame('LaravelPhPFramework', (string) $this->stringable('laravel-phP-framework')->studly()); - line 1165: $this->assertSame('LaravelPhpFramework', (string) $this->stringable('laravel -_- php -_- framework ')->studly()); - line 1167: $this->assertSame('FooBar', (string) $this->stringable('fooBar')->studly()); - line 1168: $this->assertSame('FooBar', (string) $this->stringable('foo_bar')->studly()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1174: public function testPascal() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 1174: public function testPascal() - line 1176: $this->assertSame('LaravelPHPFramework', (string) $this->stringable('laravel_p_h_p_framework')->pascal()); - line 1177: $this->assertSame('LaravelPhpFramework', (string) $this->stringable('laravel_php_framework')->pascal()); - line 1178: $this->assertSame('LaravelPhPFramework', (string) $this->stringable('laravel-phP-framework')->pascal()); - line 1179: $this->assertSame('LaravelPhpFramework', (string) $this->stringable('laravel -_- php -_- framework ')->pascal()); - line 1181: $this->assertSame('FooBar', (string) $this->stringable('fooBar')->pascal()); - line 1182: $this->assertSame('FooBar', (string) $this->stringable('foo_bar')->pascal()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1188: public function testCamel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 1188: public function testCamel() - line 1190: $this->assertSame('laravelPHPFramework', (string) $this->stringable('Laravel_p_h_p_framework')->camel()); - line 1191: $this->assertSame('laravelPhpFramework', (string) $this->stringable('Laravel_php_framework')->camel()); - line 1192: $this->assertSame('laravelPhPFramework', (string) $this->stringable('Laravel-phP-framework')->camel()); - line 1193: $this->assertSame('laravelPhpFramework', (string) $this->stringable('Laravel -_- php -_- framework ')->camel()); - line 1195: $this->assertSame('fooBar', (string) $this->stringable('FooBar')->camel()); - line 1196: $this->assertSame('fooBar', (string) $this->stringable('foo_bar')->camel()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1202: public function testCharAt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1202: public function testCharAt() - line 1204: $this->assertEquals('р', $this->stringable('Привет, мир!')->charAt(1)); - line 1205: $this->assertEquals('ち', $this->stringable('「こんにちは世界」')->charAt(4)); - line 1206: $this->assertEquals('w', $this->stringable('Привет, world!')->charAt(8)); - line 1207: $this->assertEquals('界', $this->stringable('「こんにちは世界」')->charAt(-2)); - line 1208: $this->assertEquals(null, $this->stringable('「こんにちは世界」')->charAt(-200)); - line 1209: $this->assertEquals(null, $this->stringable('Привет, мир!')->charAt('Привет, мир!', 100)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1212: public function testSubstr() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 1212: public function testSubstr() - line 1214: $this->assertSame('Ё', (string) $this->stringable('БГДЖИЛЁ')->substr(-1)); - line 1215: $this->assertSame('ЛЁ', (string) $this->stringable('БГДЖИЛЁ')->substr(-2)); - line 1216: $this->assertSame('И', (string) $this->stringable('БГДЖИЛЁ')->substr(-3, 1)); - line 1217: $this->assertSame('ДЖИЛ', (string) $this->stringable('БГДЖИЛЁ')->substr(2, -1)); - line 1218: $this->assertSame('', (string) $this->stringable('БГДЖИЛЁ')->substr(4, -4)); - line 1219: $this->assertSame('ИЛ', (string) $this->stringable('БГДЖИЛЁ')->substr(-3, -1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1235: public function testSubstrCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 1235: public function testSubstrCount() - line 1237: $this->assertSame(3, $this->stringable('laravelPHPFramework')->substrCount('a')); - line 1238: $this->assertSame(0, $this->stringable('laravelPHPFramework')->substrCount('z')); - line 1239: $this->assertSame(1, $this->stringable('laravelPHPFramework')->substrCount('l', 2)); - line 1240: $this->assertSame(0, $this->stringable('laravelPHPFramework')->substrCount('z', 2)); - line 1241: $this->assertSame(1, $this->stringable('laravelPHPFramework')->substrCount('k', -1)); - line 1242: $this->assertSame(1, $this->stringable('laravelPHPFramework')->substrCount('k', -1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1249: public function testPosition() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 1249: public function testPosition() - line 1251: $this->assertSame(7, $this->stringable('Hello, World!')->position('W')); - line 1252: $this->assertSame(10, $this->stringable('This is a test string.')->position('test')); - line 1253: $this->assertSame(23, $this->stringable('This is a test string, test again.')->position('test', 15)); - line 1254: $this->assertSame(0, $this->stringable('Hello, World!')->position('Hello')); - line 1255: $this->assertSame(7, $this->stringable('Hello, World!')->position('World!')); - line 1256: $this->assertSame(10, $this->stringable('This is a tEsT string.')->position('tEsT', 0, 'UTF-8')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1266: public function testSubstrReplace() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1266: public function testSubstrReplace() - line 1268: $this->assertSame('12:00', (string) $this->stringable('1200')->substrReplace(':', 2, 0)); - line 1269: $this->assertSame('The Laravel Framework', (string) $this->stringable('The Framework')->substrReplace('Laravel ', 4, 0)); - line 1270: $this->assertSame('Laravel – The PHP Framework for Web Artisans', (string) $this->stringable('Laravel Framework')->substrReplace('– The PHP Framework for Web Artisans', 8)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1273: public function testPadBoth() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1273: public function testPadBoth() - line 1275: $this->assertSame('__Alien___', (string) $this->stringable('Alien')->padBoth(10, '_')); - line 1276: $this->assertSame(' Alien ', (string) $this->stringable('Alien')->padBoth(10)); - line 1277: $this->assertSame(' ❤MultiByte☆ ', (string) $this->stringable('❤MultiByte☆')->padBoth(16)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1280: public function testPadLeft() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1280: public function testPadLeft() - line 1282: $this->assertSame('-=-=-Alien', (string) $this->stringable('Alien')->padLeft(10, '-=')); - line 1283: $this->assertSame(' Alien', (string) $this->stringable('Alien')->padLeft(10)); - line 1284: $this->assertSame(' ❤MultiByte☆', (string) $this->stringable('❤MultiByte☆')->padLeft(16)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1287: public function testPadRight() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1287: public function testPadRight() - line 1289: $this->assertSame('Alien-----', (string) $this->stringable('Alien')->padRight(10, '-')); - line 1290: $this->assertSame('Alien ', (string) $this->stringable('Alien')->padRight(10)); - line 1291: $this->assertSame('❤MultiByte☆ ', (string) $this->stringable('❤MultiByte☆')->padRight(16)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1294: public function testExplode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1294: public function testExplode() - line 1296: $this->assertInstanceOf(Collection::class, $this->stringable('Foo Bar Baz')->explode(' ')); - line 1298: $this->assertSame('["Foo","Bar","Baz"]', (string) $this->stringable('Foo Bar Baz')->explode(' ')); - line 1301: $this->assertSame('["Foo","Bar Baz"]', (string) $this->stringable('Foo Bar Baz')->explode(' ', 2)); - line 1302: $this->assertSame('["Foo","Bar"]', (string) $this->stringable('Foo Bar Baz')->explode(' ', -1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1305: public function testChunk() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1305: public function testChunk() - line 1307: $chunks = $this->stringable('foobarbaz')->split(3); - line 1310: $this->assertSame(['foo', 'bar', 'baz'], $chunks->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1313: public function testJsonSerialize() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1313: public function testJsonSerialize() - line 1315: $this->assertSame('"foo"', json_encode($this->stringable('foo'))); - line 1316: $this->assertSame('"laravel-php-framework"', json_encode($this->stringable('LaravelPhpFramework')->kebab())); - line 1317: $this->assertSame('["laravel-php-framework"]', json_encode([$this->stringable('LaravelPhpFramework')->kebab()])); - line 1318: $this->assertSame('{"title":"laravel-php-framework"}', json_encode(['title' => $this->stringable('LaravelPhpFramework')->kebab()])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1321: public function testTap() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1321: public function testTap() - line 1323: $stringable = $this->stringable('foobarbaz'); - line 1327: $stringable = $stringable->tap(function (Stringable $string) use (&$fromTheTap) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1321: public function testTap() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1335: public function testPipe() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1335: public function testPipe() - line 1341: $this->assertInstanceOf(Stringable::class, $this->stringable('foo')->pipe($callback)); - line 1342: $this->assertSame('bar', (string) $this->stringable('foo')->pipe($callback)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1345: public function testMarkdown() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1345: public function testMarkdown() - line 1347: $this->assertEquals("

hello world

\n", $this->stringable('*hello world*')->markdown()); - line 1348: $this->assertEquals("

hello world

\n", $this->stringable('# hello world')->markdown()); - line 1359: $this->stringable('# hello world')->markdown([], [$extension]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1363: public function testInlineMarkdown() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1363: public function testInlineMarkdown() - line 1365: $this->assertEquals("hello world\n", $this->stringable('*hello world*')->inlineMarkdown()); - line 1366: $this->assertEquals("Laravel\n", $this->stringable('[**Laravel**](https://laravel.com)')->inlineMarkdown()); - line 1378: $this->stringable('# hello world')->inlineMarkdown([], [$extension]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1382: public function testMask() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 1382: public function testMask() - line 1384: $this->assertSame('tay*************', (string) $this->stringable('taylor@email.com')->mask('*', 3)); - line 1385: $this->assertSame('******@email.com', (string) $this->stringable('taylor@email.com')->mask('*', 0, 6)); - line 1386: $this->assertSame('tay*************', (string) $this->stringable('taylor@email.com')->mask('*', -13)); - line 1387: $this->assertSame('tay***@email.com', (string) $this->stringable('taylor@email.com')->mask('*', -13, 3)); - line 1389: $this->assertSame('****************', (string) $this->stringable('taylor@email.com')->mask('*', -17)); - line 1390: $this->assertSame('*****r@email.com', (string) $this->stringable('taylor@email.com')->mask('*', -99, 5)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1403: public function testRepeat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1403: public function testRepeat() - line 1405: $this->assertSame('aaaaa', (string) $this->stringable('a')->repeat(5)); - line 1406: $this->assertSame('', (string) $this->stringable('')->repeat(5)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1409: public function testWordCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1409: public function testWordCount() - line 1411: $this->assertEquals(2, $this->stringable('Hello, world!')->wordCount()); - line 1412: $this->assertEquals(10, $this->stringable('Hi, this is my first contribution to the Laravel framework.')->wordCount()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1415: public function testWrap() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1415: public function testWrap() - line 1417: $this->assertEquals('This is me!', $this->stringable('is')->wrap('This ', ' me!')); - line 1418: $this->assertEquals('"value"', $this->stringable('value')->wrap('"')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1421: public function testUnwrap() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1421: public function testUnwrap() - line 1423: $this->assertEquals('value', $this->stringable('"value"')->unwrap('"')); - line 1424: $this->assertEquals('bar', $this->stringable('foo-bar-baz')->unwrap('foo-', '-baz')); - line 1425: $this->assertEquals('some: "json"', $this->stringable('{some: "json"}')->unwrap('{', '}')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1436: public function testStripTags() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1436: public function testStripTags() - line 1438: $this->assertSame('beforeafter', (string) $this->stringable('before
after')->stripTags()); - line 1439: $this->assertSame('before
after', (string) $this->stringable('before
after')->stripTags('
')); - line 1440: $this->assertSame('before
after', (string) $this->stringable('before
after')->stripTags('
')); - line 1441: $this->assertSame('before
after', (string) $this->stringable('before
after')->stripTags('
')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1444: public function testReplaceMatches() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1444: public function testReplaceMatches() - line 1446: $stringable = $this->stringable('Hello world!'); - line 1447: $result = $stringable->replaceMatches('/world/', function ($match) { - line 1453: $stringable = $this->stringable('apple orange apple'); - line 1454: $result = $stringable->replaceMatches('/apple/', 'fruit', 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1444: public function testReplaceMatches() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1459: public function testScan() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1459: public function testScan() - line 1461: $this->assertSame([123456], $this->stringable('SN/123456')->scan('SN/%d')->toArray()); - line 1462: $this->assertSame(['Otwell', 'Taylor'], $this->stringable('Otwell, Taylor')->scan('%[^,],%s')->toArray()); - line 1463: $this->assertSame(['filename', 'jpg'], $this->stringable('filename.jpg')->scan('%[^.].%s')->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1466: public function testGet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1466: public function testGet() - line 1468: $this->assertSame('foo', $this->stringable('foo')->value()); - line 1469: $this->assertSame('foo', $this->stringable('foo')->toString()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1472: public function testExactly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1472: public function testExactly() - line 1474: $this->assertTrue($this->stringable('foo')->exactly($this->stringable('foo'))); - line 1475: $this->assertTrue($this->stringable('foo')->exactly('foo')); - line 1477: $this->assertFalse($this->stringable('Foo')->exactly($this->stringable('foo'))); - line 1478: $this->assertFalse($this->stringable('Foo')->exactly('foo')); - line 1479: $this->assertFalse($this->stringable('[]')->exactly([])); - line 1480: $this->assertFalse($this->stringable('0')->exactly(0)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1483: public function testToInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 1483: public function testToInteger() - line 1485: $this->assertSame(123, $this->stringable('123')->toInteger()); - line 1486: $this->assertSame(456, $this->stringable(456)->toInteger()); - line 1487: $this->assertSame(78, $this->stringable('078')->toInteger()); - line 1488: $this->assertSame(901, $this->stringable(' 901')->toInteger()); - line 1489: $this->assertSame(0, $this->stringable('nan')->toInteger()); - line 1490: $this->assertSame(1, $this->stringable('1ab')->toInteger()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1494: public function testToFloat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1494: public function testToFloat() - line 1496: $this->assertSame(1.23, $this->stringable('1.23')->toFloat()); - line 1497: $this->assertSame(45.6, $this->stringable(45.6)->toFloat()); - line 1498: $this->assertSame(.6, $this->stringable('.6')->toFloat()); - line 1499: $this->assertSame(0.78, $this->stringable('0.78')->toFloat()); - line 1500: $this->assertSame(90.1, $this->stringable(' 90.1')->toFloat()); - line 1501: $this->assertSame(0.0, $this->stringable('nan')->toFloat()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1506: public function testBooleanMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 1506: public function testBooleanMethod() - line 1508: $this->assertTrue($this->stringable(true)->toBoolean()); - line 1509: $this->assertTrue($this->stringable('true')->toBoolean()); - line 1510: $this->assertFalse($this->stringable('false')->toBoolean()); - line 1511: $this->assertTrue($this->stringable('1')->toBoolean()); - line 1512: $this->assertFalse($this->stringable('0')->toBoolean()); - line 1513: $this->assertTrue($this->stringable('on')->toBoolean()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1524: public function testToDate() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1524: public function testToDate() - line 1528: $this->assertEquals($current, $this->stringable('20-01-01 16:30:25')->toDate()); - line 1529: $this->assertEquals($current, $this->stringable('1577896225')->toDate('U')); - line 1530: $this->assertEquals($current, $this->stringable('20-01-01 13:30:25')->toDate(null, 'America/Santiago')); - line 1532: $this->assertTrue($this->stringable('2020-01-01')->toDate()->isSameDay($current)); - line 1533: $this->assertTrue($this->stringable('16:30:25')->toDate()->isSameSecond('16:30:25')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1536: public function testToDateThrowsException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1536: public function testToDateThrowsException() - line 1538: $this->expectException(\Carbon\Exceptions\InvalidFormatException::class); - line 1540: $this->stringable('not a date')->toDate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1536: public function testToDateThrowsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1543: public function testToUri() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1543: public function testToUri() - line 1547: $uri = $this->stringable($sentence)->between('{', '}')->toUri(); - line 1551: $this->assertSame('https://laravel.com/docs', $uri->toHtml()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1563: public function testToBase64() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1563: public function testToBase64() - line 1565: $this->assertSame(base64_encode('foo'), (string) $this->stringable('foo')->toBase64()); - line 1566: $this->assertSame(base64_encode('foobar'), (string) $this->stringable('foobar')->toBase64()); - line 1567: $this->assertSame(base64_encode('foobarbaz'), (string) $this->stringable('foobarbaz')->toBase64()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1570: public function testFromBase64() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1570: public function testFromBase64() - line 1572: $this->assertSame('foo', (string) $this->stringable(base64_encode('foo'))->fromBase64()); - line 1573: $this->assertSame('foobar', (string) $this->stringable(base64_encode('foobar'))->fromBase64(true)); - line 1574: $this->assertSame('foobarbaz', (string) $this->stringable(base64_encode('foobarbaz'))->fromBase64()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1577: public function testHash() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1577: public function testHash() - line 1579: $this->assertSame(hash('xxh3', 'foo'), (string) $this->stringable('foo')->hash('xxh3')); - line 1580: $this->assertSame(hash('xxh3', 'foobar'), (string) $this->stringable('foobar')->hash('xxh3')); - line 1581: $this->assertSame(hash('sha256', 'foobarbaz'), (string) $this->stringable('foobarbaz')->hash('sha256')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1584: public function testEncryptAndDecrypt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1584: public function testEncryptAndDecrypt() - line 1586: Container::setInstance($this->container = new Container); - line 1588: $this->container->bind('encrypter', fn () => new Encrypter(str_repeat('b', 16))); - line 1590: $encrypted = $this->stringable('foo')->encrypt(); - line 1592: $this->assertNotSame('foo', $encrypted->value()); - line 1593: $this->assertSame('foo', $encrypted->decrypt()->value()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/SupportStrTest.php - Test @ line 464: public function testConvertCase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 464: public function testConvertCase() - line 467: $this->assertSame('HELLO', Str::convertCase('hello', MB_CASE_UPPER)); - line 483: $this->expectException(\ValueError::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 536: public function testFlushCache() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 536: public function testFlushCache() - line 539: $property = $reflection->getProperty('snakeCache'); - line 542: $this->assertEmpty($property->getValue()); - line 545: $this->assertNotEmpty($property->getValue()); - line 548: $this->assertEmpty($property->getValue()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 536: public function testFlushCache() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 808: public function testWhetherTheNumberOfGeneratedCharactersIsEquallyDistributed() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 808: public function testWhetherTheNumberOfGeneratedCharactersIsEquallyDistributed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 855: public function testItCanSpecifyAFallbackForARandomStringSequence() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 855: public function testItCanSpecifyAFallbackForARandomStringSequence() - line 857: Str::createRandomStringsUsingSequence([Str::random(), Str::random()], fn () => throw new Exception('Out of random strings.')); - line 862: $this->expectExceptionMessage('Out of random strings.'); - line 864: $this->fail(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 855: public function testItCanSpecifyAFallbackForARandomStringSequence() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1334: public function testUuid() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1334: public function testUuid() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1557: public function testRepeatWhenTimesIsNegative() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1557: public function testRepeatWhenTimesIsNegative() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1636: public function testItCreatesUuidsNormallyAfterFailureWithinFreezeMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1636: public function testItCreatesUuidsNormallyAfterFailureWithinFreezeMethod() - line 1641: $this->assertSame('1234', Str::uuid()->toString()); - line 1645: $this->assertNotSame('1234', Str::uuid()->toString()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1682: public function testItCanSpecifyAFallbackForASequence() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1682: public function testItCanSpecifyAFallbackForASequence() - line 1684: Str::createUuidsUsingSequence([Str::uuid(), Str::uuid()], fn () => throw new Exception('Out of Uuids.')); - line 1689: $this->expectExceptionMessage('Out of Uuids.'); - line 1691: $this->fail(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1682: public function testItCanSpecifyAFallbackForASequence() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1784: public function testItCanSpecifyAFallbackForAUlidSequence() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1784: public function testItCanSpecifyAFallbackForAUlidSequence() - line 1786: Str::createUlidsUsingSequence( - line 1794: $this->expectExceptionMessage('Out of Ulids'); - line 1796: $this->fail(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1784: public function testItCanSpecifyAFallbackForAUlidSequence() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1802: public function testPasswordCreation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1802: public function testPasswordCreation() - line 1804: $this->assertTrue(strlen(Str::password()) === 32); - line 1810: Str::of(Str::password())->contains(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/SupportTappableTest.php - Test @ line 32: public function testTappableClassWithNoneInvokableClass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 32: public function testTappableClassWithNoneInvokableClass() - line 34: $this->expectException('Error'); - line 36: $name = TappableClass::make()->tap(new class Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/SupportTestingBusFakeTest.php - Test @ line 35: public function testItUsesCustomBusRepository() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 35: public function testItUsesCustomBusRepository() - line 39: $fake = new BusFake(m::mock(QueueingDispatcher::class), [], $busRepository); - line 41: $this->assertNull($fake->findBatch('non-existent-batch')); - line 45: $this->assertSame($batch, $fake->findBatch($batch->id)); - line 46: $this->assertSame($batch, $busRepository->find($batch->id)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 39: $fake = new BusFake(m::mock(QueueingDispatcher::class), [], $busRepository); - Test @ line 49: public function testAssertDispatched() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 49: public function testAssertDispatched() - line 53: $this->fail(); - line 55: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\BusJobStub] job was not dispatched.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testAssertDispatched() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 63: public function testAssertDispatchedWithClosure() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 63: public function testAssertDispatchedWithClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 72: public function testAssertDispatchedAfterResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 72: public function testAssertDispatchedAfterResponse() - line 76: $this->fail(); - line 78: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\BusJobStub] job was not dispatched after sending the response.', $e->getMessage()); - line 81: $this->fake->dispatchAfterResponse(new BusJobStub); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 72: public function testAssertDispatchedAfterResponse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 86: public function testAssertDispatchedAfterResponseClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 86: public function testAssertDispatchedAfterResponseClosure() - line 92: $this->fail(); - line 94: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\BusJobStub] job was not dispatched after sending the response.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 86: public function testAssertDispatchedAfterResponseClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 98: public function testAssertDispatchedSync() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 98: public function testAssertDispatchedSync() - line 102: $this->fail(); - line 104: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\BusJobStub] job was not dispatched synchronously.', $e->getMessage()); - line 111: $this->fail(); - line 113: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\BusJobStub] job was not dispatched synchronously.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 98: public function testAssertDispatchedSync() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 121: public function testAssertDispatchedSyncClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 121: public function testAssertDispatchedSyncClosure() - line 127: $this->fail(); - line 129: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\BusJobStub] job was not dispatched synchronously.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 121: public function testAssertDispatchedSyncClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 133: public function testAssertDispatchedNow() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 133: public function testAssertDispatchedNow() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 140: public function testAssertDispatchedWithCallbackInt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 140: public function testAssertDispatchedWithCallbackInt() - line 141: { - line 142: $this->fake->dispatch(new BusJobStub); - line 147: $this->fail(); - line 149: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\BusJobStub] job was pushed 2 times instead of 1 time.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 140: public function testAssertDispatchedWithCallbackInt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 155: public function testAssertDispatchedAfterResponseWithCallbackInt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 155: public function testAssertDispatchedAfterResponseWithCallbackInt() - line 157: $this->fake->dispatchAfterResponse(new BusJobStub); - line 158: $this->fake->dispatchAfterResponse(new BusJobStub); - line 162: $this->fail(); - line 164: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\BusJobStub] job was pushed 2 times instead of 1 time.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 155: public function testAssertDispatchedAfterResponseWithCallbackInt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 170: public function testAssertDispatchedSyncWithCallbackInt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 170: public function testAssertDispatchedSyncWithCallbackInt() - line 171: { - line 172: $this->fake->dispatchSync(new BusJobStub); - line 177: $this->fail(); - line 179: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\BusJobStub] job was synchronously pushed 2 times instead of 1 time.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 170: public function testAssertDispatchedSyncWithCallbackInt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 185: public function testAssertDispatchedWithCallbackFunction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 185: public function testAssertDispatchedWithCallbackFunction() - line 186: { - line 187: $this->fake->dispatch(new OtherBusJobStub); - line 194: $this->fail(); - line 196: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\OtherBusJobStub] job was not dispatched.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 185: public function testAssertDispatchedWithCallbackFunction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 208: public function testAssertDispatchedAfterResponseWithCallbackFunction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 208: public function testAssertDispatchedAfterResponseWithCallbackFunction() - line 210: $this->fake->dispatchAfterResponse(new OtherBusJobStub); - line 211: $this->fake->dispatchAfterResponse(new OtherBusJobStub(1)); - line 217: $this->fail(); - line 219: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\OtherBusJobStub] job was not dispatched after sending the response.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 208: public function testAssertDispatchedAfterResponseWithCallbackFunction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 231: public function testAssertDispatchedAfterResponseTimesWithCallbackFunction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 231: public function testAssertDispatchedAfterResponseTimesWithCallbackFunction() - line 233: $this->fake->dispatchAfterResponse(new OtherBusJobStub(0)); - line 234: $this->fake->dispatchAfterResponse(new OtherBusJobStub(1)); - line 235: $this->fake->dispatchAfterResponse(new OtherBusJobStub(1)); - line 241: $this->fail(); - line 243: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\OtherBusJobStub] job was pushed 1 time instead of 2 times.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 231: public function testAssertDispatchedAfterResponseTimesWithCallbackFunction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 255: public function testAssertDispatchedSyncWithCallbackFunction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 255: public function testAssertDispatchedSyncWithCallbackFunction() - line 256: { - line 257: $this->fake->dispatchSync(new OtherBusJobStub); - line 264: $this->fail(); - line 266: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\OtherBusJobStub] job was not dispatched synchronously.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 255: public function testAssertDispatchedSyncWithCallbackFunction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 278: public function testAssertDispatchedOnce() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 278: public function testAssertDispatchedOnce() - line 279: { - line 280: $this->fake->dispatch(new BusJobStub); - line 285: $this->fail(); - line 287: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\BusJobStub] job was pushed 2 times instead of 1 time.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 278: public function testAssertDispatchedOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 293: public function testAssertDispatchedTimes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 293: public function testAssertDispatchedTimes() - line 294: { - line 295: $this->fake->dispatch(new BusJobStub); - line 300: $this->fail(); - line 302: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\BusJobStub] job was pushed 2 times instead of 1 time.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 293: public function testAssertDispatchedTimes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 308: public function testAssertDispatchedTimesWithCallbackFunction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 308: public function testAssertDispatchedTimesWithCallbackFunction() - line 309: { - line 310: $this->fake->dispatch(new OtherBusJobStub(0)); - line 312: $this->fake->dispatchAfterResponse(new OtherBusJobStub(1)); - line 318: $this->fail(); - line 320: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\OtherBusJobStub] job was pushed 1 time instead of 2 times.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 308: public function testAssertDispatchedTimesWithCallbackFunction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 332: public function testAssertDispatchedAfterResponseTimes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 332: public function testAssertDispatchedAfterResponseTimes() - line 334: $this->fake->dispatchAfterResponse(new BusJobStub); - line 335: $this->fake->dispatchAfterResponse(new BusJobStub); - line 339: $this->fail(); - line 341: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\BusJobStub] job was pushed 2 times instead of 1 time.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 332: public function testAssertDispatchedAfterResponseTimes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 347: public function testAssertDispatchedSyncTimes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 347: public function testAssertDispatchedSyncTimes() - line 348: { - line 349: $this->fake->dispatchSync(new BusJobStub); - line 354: $this->fail(); - line 356: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\BusJobStub] job was synchronously pushed 2 times instead of 1 time.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 347: public function testAssertDispatchedSyncTimes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 362: public function testAssertDispatchedSyncTimesWithCallbackFunction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 362: public function testAssertDispatchedSyncTimesWithCallbackFunction() - line 363: { - line 364: $this->fake->dispatchSync(new OtherBusJobStub(0)); - line 365: $this->fake->dispatchSync(new OtherBusJobStub(1)); - line 372: $this->fail(); - line 374: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\OtherBusJobStub] job was synchronously pushed 1 time instead of 2 times.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 362: public function testAssertDispatchedSyncTimesWithCallbackFunction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 386: public function testAssertNotDispatched() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 386: public function testAssertNotDispatched() - line 388: $this->fake->assertNotDispatched(BusJobStub::class); - line 390: $this->fake->dispatch(new BusJobStub); - line 395: $this->fail(); - line 397: $this->assertStringContainsString('The unexpected [Illuminate\Tests\Support\BusJobStub] job was dispatched.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 386: public function testAssertNotDispatched() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 401: public function testAssertNotDispatchedWithClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 401: public function testAssertNotDispatchedWithClosure() - line 402: { - line 403: $this->fake->dispatch(new BusJobStub); - line 410: $this->fail(); - line 412: $this->assertStringContainsString('The unexpected [Illuminate\Tests\Support\BusJobStub] job was dispatched.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 401: public function testAssertNotDispatchedWithClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 416: public function testAssertNotDispatchedAfterResponse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 416: public function testAssertNotDispatchedAfterResponse() - line 420: $this->fake->dispatchAfterResponse(new BusJobStub); - line 424: $this->fail(); - line 426: $this->assertStringContainsString('The unexpected [Illuminate\Tests\Support\BusJobStub] job was dispatched after sending the response.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 416: public function testAssertNotDispatchedAfterResponse() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 430: public function testAssertNotDispatchedAfterResponseClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 430: public function testAssertNotDispatchedAfterResponseClosure() - line 432: $this->fake->dispatchAfterResponse(new BusJobStub); - line 438: $this->fail(); - line 440: $this->assertStringContainsString('The unexpected [Illuminate\Tests\Support\BusJobStub] job was dispatched after sending the response.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 430: public function testAssertNotDispatchedAfterResponseClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 444: public function testAssertNotDispatchedSync() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 444: public function testAssertNotDispatchedSync() - line 446: $this->fake->assertNotDispatchedSync(BusJobStub::class); - line 452: $this->fail(); - line 454: $this->assertStringContainsString('The unexpected [Illuminate\Tests\Support\BusJobStub] job was dispatched synchronously.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 444: public function testAssertNotDispatchedSync() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 458: public function testAssertNotDispatchedSyncClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 458: public function testAssertNotDispatchedSyncClosure() - line 459: { - line 466: $this->fail(); - line 468: $this->assertStringContainsString('The unexpected [Illuminate\Tests\Support\BusJobStub] job was dispatched synchronously.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 458: public function testAssertNotDispatchedSyncClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 472: public function testAssertNothingDispatched() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 472: public function testAssertNothingDispatched() - line 474: $this->fake->assertNothingDispatched(); - line 480: $this->fail(); - line 482: $this->assertStringContainsString('The following jobs were dispatched unexpectedly:', $e->getMessage()); - line 483: $this->assertStringContainsString(BusJobStub::class, $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 472: public function testAssertNothingDispatched() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 487: public function testAssertChained() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 487: public function testAssertChained() - line 489: Container::setInstance($container = new Container); - line 491: $container->instance(Dispatcher::class, $this->fake); - line 499: ]); - line 509: ]); - line 522: $this->fake->chainedBatch(function ($pendingBatch) { - line 530: $this->fake->chainedBatch(function ($pendingBatch) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 487: public function testAssertChained() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 566: public function testAssertNothingChained() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 566: public function testAssertNothingChained() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 566: public function testAssertNothingChained() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 571: public function testAssertNothingChainedFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 571: public function testAssertNothingChainedFails() - line 572: { - line 577: $this->fail(); - line 579: $this->assertStringContainsString('The following jobs were dispatched unexpectedly:', $e->getMessage()); - line 580: $this->assertStringContainsString(ChainedJobStub::class, $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 571: public function testAssertNothingChainedFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 584: public function testAssertDispatchedWithIgnoreClass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 584: public function testAssertDispatchedWithIgnoreClass() - line 586: $dispatcher = m::mock(QueueingDispatcher::class); - line 593: $dispatcher->shouldReceive('dispatch')->never()->with($otherJob); - line 594: $dispatcher->shouldReceive('dispatchNow')->never()->with($otherJob, null); - line 596: $fake = new BusFake($dispatcher, OtherBusJobStub::class); - line 598: $fake->dispatch($job); - line 599: $fake->dispatchNow($job); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 586: $dispatcher = m::mock(QueueingDispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 584: public function testAssertDispatchedWithIgnoreClass() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 608: public function testDispatchedFakingOnlyGivenJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 608: public function testDispatchedFakingOnlyGivenJobs() - line 610: $dispatcher = m::mock(QueueingDispatcher::class); - line 613: $dispatcher->shouldReceive('dispatch')->never()->with($job); - line 614: $dispatcher->shouldReceive('dispatchNow')->never()->with($job, null); - line 621: $dispatcher->shouldReceive('dispatch')->never()->with($thirdJob); - line 622: $dispatcher->shouldReceive('dispatchNow')->never()->with($thirdJob, null); - line 624: $fake = (new BusFake($dispatcher))->except(OtherBusJobStub::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 610: $dispatcher = m::mock(QueueingDispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 608: public function testDispatchedFakingOnlyGivenJobs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 640: public function testAssertDispatchedWithIgnoreCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 640: public function testAssertDispatchedWithIgnoreCallback() - line 642: $dispatcher = m::mock(QueueingDispatcher::class); - line 653: $dispatcher->shouldReceive('dispatch')->never()->with($anotherJob); - line 654: $dispatcher->shouldReceive('dispatchNow')->never()->with($anotherJob, null); - line 660: ]); - line 662: $fake->dispatch($job); - line 663: $fake->dispatchNow($job); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 642: $dispatcher = m::mock(QueueingDispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 640: public function testAssertDispatchedWithIgnoreCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 681: public function testAssertNothingBatched() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 681: public function testAssertNothingBatched() - line 685: $job = new BusJobStub; - line 691: $this->fail(); - line 693: $this->assertStringContainsString("The following batched jobs were dispatched unexpectedly:\n\n- ".get_class($job), $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 681: public function testAssertNothingBatched() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 697: public function testAssertNothingPlacedPasses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 697: public function testAssertNothingPlacedPasses() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 697: public function testAssertNothingPlacedPasses() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 702: public function testAssertNothingPlacedWhenJobBatched() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 702: public function testAssertNothingPlacedWhenJobBatched() - line 703: { - line 706: $this->expectException(ExpectationFailedException::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 702: public function testAssertNothingPlacedWhenJobBatched() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 711: public function testAssertNothingPlacedWhenJobDispatched() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 711: public function testAssertNothingPlacedWhenJobDispatched() - line 712: { - line 715: $this->expectException(ExpectationFailedException::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 711: public function testAssertNothingPlacedWhenJobDispatched() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 720: public function testAssertNothingPlacedWhenJobChained() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 720: public function testAssertNothingPlacedWhenJobChained() - line 721: { - line 724: $this->expectException(ExpectationFailedException::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 720: public function testAssertNothingPlacedWhenJobChained() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 729: public function testAssertNothingPlacedWhenJobDispatchedNow() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 729: public function testAssertNothingPlacedWhenJobDispatchedNow() - line 730: { - line 733: $this->expectException(ExpectationFailedException::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 729: public function testAssertNothingPlacedWhenJobDispatchedNow() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 738: public function testFindBatch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 738: public function testFindBatch() - line 740: $this->assertNull($this->fake->findBatch('non-existent-batch')); - line 744: $this->assertSame($batch, $this->fake->findBatch($batch->id)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 747: public function testBatchesCanBeCancelled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 747: public function testBatchesCanBeCancelled() - line 748: { - line 751: $this->assertFalse($batch->cancelled()); - line 753: $batch->cancel(); - line 755: $this->assertTrue($batch->cancelled()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 758: public function testDispatchFakeBatch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 758: public function testDispatchFakeBatch() - line 762: $batch = $this->fake->dispatchFakeBatch('my fake job batch'); - line 769: $batch = $this->fake->dispatchFakeBatch(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 777: public function testIncrementFailedJobsInFakeBatch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 777: public function testIncrementFailedJobsInFakeBatch() - line 780: $batch = $this->fake->dispatchFakeBatch('my fake job batch'); - line 787: $batch->incrementFailedJobs($batch->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 793: public function testDecrementPendingJobsInFakeBatch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 793: public function testDecrementPendingJobsInFakeBatch() - line 796: $batch = $this->fake->dispatchFakeBatch('my fake job batch'); - line 803: $batch->decrementPendingJobs($batch->id); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 810: public function testCanSerializeAndRestoreCommands($commandFunctionName, $assertionFunctionName) Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 810: public function testCanSerializeAndRestoreCommands($commandFunctionName, $assertionFunctionName) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 836: public function testCanSerializeAndRestoreCommandsInBatch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 836: public function testCanSerializeAndRestoreCommandsInBatch() - line 838: $serializingBusFake = (clone $this->fake)->serializeAndRestore(); - line 845: return $batchedCollection->jobs->count() === 1 && $batchedCollection->jobs->first()->value === 'hello'; - line 846: }); - line 854: return $batchedCollection->jobs->count() === 1 && $batchedCollection->jobs->first()->value === 'hello'; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 836: public function testCanSerializeAndRestoreCommandsInBatch() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/SupportTestingEventFakeTest.php - Test @ line 27: public function testAssertDispatched() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 27: public function testAssertDispatched() - line 31: $this->fail(); - line 33: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\EventStub] event was not dispatched.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 27: public function testAssertDispatched() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 41: public function testAssertDispatchedWithClosure() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 41: public function testAssertDispatchedWithClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 50: public function testAssertListening() Violations: - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 54: $dispatcher = m::mock(Dispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 50: public function testAssertListening() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 64: public function testAssertDispatchedWithCallbackInt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 64: public function testAssertDispatchedWithCallbackInt() - line 65: { - line 66: $this->fake->dispatch(EventStub::class); - line 71: $this->fail(); - line 73: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\EventStub] event was dispatched 2 times instead of 1 time.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 64: public function testAssertDispatchedWithCallbackInt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 79: public function testAssertDispatchedOnce() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 79: public function testAssertDispatchedOnce() - line 80: { - line 81: $this->fake->dispatch(EventStub::class); - line 86: $this->fail(); - line 88: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\EventStub] event was dispatched 2 times instead of 1 time.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 79: public function testAssertDispatchedOnce() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 94: public function testAssertDispatchedTimes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 94: public function testAssertDispatchedTimes() - line 95: { - line 96: $this->fake->dispatch(EventStub::class); - line 101: $this->fail(); - line 103: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\EventStub] event was dispatched 2 times instead of 1 time.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 94: public function testAssertDispatchedTimes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 109: public function testAssertNotDispatched() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 109: public function testAssertNotDispatched() - line 111: $this->fake->assertNotDispatched(EventStub::class); - line 117: $this->fail(); - line 119: $this->assertStringContainsString('The unexpected [Illuminate\Tests\Support\EventStub] event was dispatched.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 109: public function testAssertNotDispatched() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 123: public function testAssertNotDispatchedWithClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 123: public function testAssertNotDispatchedWithClosure() - line 124: { - line 131: $this->fail(); - line 133: $this->assertStringContainsString('The unexpected [Illuminate\Tests\Support\EventStub] event was dispatched.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 123: public function testAssertNotDispatchedWithClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 137: public function testAssertDispatchedWithIgnore() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 137: public function testAssertDispatchedWithIgnore() - line 139: $dispatcher = m::mock(Dispatcher::class); - line 147: ]); - line 149: $fake->dispatch('Foo'); - line 150: $fake->dispatch('Bar', ['id' => 1]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 139: $dispatcher = m::mock(Dispatcher::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 137: public function testAssertDispatchedWithIgnore() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 158: public function testAssertNothingDispatched() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 158: public function testAssertNothingDispatched() - line 160: $this->fake->assertNothingDispatched(); - line 162: $this->fake->dispatch(EventStub::class); - line 167: $this->fail(); - line 169: $this->assertStringContainsString("2 unexpected events were dispatched:\n\n- Illuminate\Tests\Support\EventStub dispatched 2 times", $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 158: public function testAssertNothingDispatched() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/SupportTestingMailFakeTest.php - Test @ line 42: public function testAssertSent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 42: public function testAssertSent() - line 46: $this->fail(); - line 48: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\MailableStub] mailable was not sent.', $e->getMessage()); - line 51: $this->fake->to('taylor@laravel.com')->send($this->mailable); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 42: public function testAssertSent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 56: public function testAssertSentTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 56: public function testAssertSentTo() - line 60: $this->fail(); - line 62: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\MailableStub] mailable was not sent to address [taylor@laravel.com].', $e->getMessage()); - line 65: $this->fake->to('taylor@laravel.com')->send($this->mailable); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 56: public function testAssertSentTo() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 70: public function testAssertSentToMultiple() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 70: public function testAssertSentToMultiple() - line 72: $this->fake->to('dries@laravel.com')->send($this->mailable); - line 73: $this->fake->to('taylor@laravel.com')->send($this->mailable); - line 75: $this->fake->to(['nuno@laravel.com', 'jess@laravel.com'])->send($this->mailable); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 70: public function testAssertSentToMultiple() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 84: public function testAssertSentWhenRecipientHasPreferredLocale() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 84: public function testAssertSentWhenRecipientHasPreferredLocale() - line 88: $this->fake->to($user)->send($this->mailable); - line 91: return $mail->hasTo($user) && $mail->locale === 'au'; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 84: public function testAssertSentWhenRecipientHasPreferredLocale() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 95: public function testAssertTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 95: public function testAssertTo() - line 97: $this->fake->to('taylor@laravel.com')->send($this->mailable); - line 100: return $mail->hasTo('taylor@laravel.com'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 95: public function testAssertTo() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 104: public function testAssertCc() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 104: public function testAssertCc() - line 106: $this->fake->cc('taylor@laravel.com')->send($this->mailable); - line 109: return $mail->hasCc('taylor@laravel.com'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 104: public function testAssertCc() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 113: public function testAssertBcc() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 113: public function testAssertBcc() - line 115: $this->fake->bcc('taylor@laravel.com')->send($this->mailable); - line 118: return $mail->hasBcc('taylor@laravel.com'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 113: public function testAssertBcc() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 122: public function testAssertNotSent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 122: public function testAssertNotSent() - line 126: $this->fake->to('taylor@laravel.com')->send($this->mailable); - line 130: $this->fail(); - line 132: $this->assertStringContainsString('The unexpected [Illuminate\Tests\Support\MailableStub] mailable was sent.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 122: public function testAssertNotSent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 136: public function testAssertNotSentWithClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 136: public function testAssertNotSentWithClosure() - line 139: return $mail->hasTo('taylor@laravel.com'); - line 144: $this->fake->to('taylor@laravel.com')->send($this->mailable); - line 146: $this->expectException(ExpectationFailedException::class); - line 147: $this->expectExceptionMessageMatches('/The unexpected \['.preg_quote(MailableStub::class, '/').'\] mailable was sent./m'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 136: public function testAssertNotSentWithClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 152: public function testAssertNotSentWithString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 152: public function testAssertNotSentWithString() - line 156: $this->fake->to('taylor@laravel.com')->send($this->mailable); - line 158: $this->expectException(ExpectationFailedException::class); - line 159: $this->expectExceptionMessage('The unexpected ['.MailableStub::class.'] mailable was sent to address [taylor@laravel.com].'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 152: public function testAssertNotSentWithString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 164: public function testAssertNotSentWithArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 164: public function testAssertNotSentWithArray() - line 168: $this->fake->to('dries@laravel.com')->send($this->mailable); - line 170: $this->expectException(ExpectationFailedException::class); - line 171: $this->expectExceptionMessage('The unexpected ['.MailableStub::class.'] mailable was sent to address [dries@laravel.com].'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 164: public function testAssertNotSentWithArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 176: public function testAssertSentTimes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 176: public function testAssertSentTimes() - line 178: $this->fake->to('taylor@laravel.com')->send($this->mailable); - line 179: $this->fake->to('taylor@laravel.com')->send($this->mailable); - line 183: $this->fail(); - line 185: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\MailableStub] mailable was sent 2 times instead of 1 time.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 176: public function testAssertSentTimes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 191: public function testAssertSentCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 191: public function testAssertSentCount() - line 193: $this->fake->to('taylor@laravel.com')->send($this->mailable); - line 194: $this->fake->to('taylor@laravel.com')->send($this->mailable); - line 198: $this->fail(); - line 200: $this->assertStringContainsString('The total number of mailables sent was 2 instead of 1.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 191: public function testAssertSentCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 206: public function testAssertQueued() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 206: public function testAssertQueued() - line 210: $this->fail(); - line 212: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\MailableStub] mailable was not queued.', $e->getMessage()); - line 215: $this->fake->to('taylor@laravel.com')->queue($this->mailable); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 206: public function testAssertQueued() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 220: public function testAssertQueuedTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 220: public function testAssertQueuedTo() - line 224: $this->fail(); - line 226: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\MailableStub] mailable was not queued to address [taylor@laravel.com].', $e->getMessage()); - line 229: $this->fake->to('taylor@laravel.com')->queue($this->mailable); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 220: public function testAssertQueuedTo() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 234: public function testAssertQueuedToMultiple() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 234: public function testAssertQueuedToMultiple() - line 236: $this->fake->to('dries@laravel.com')->queue($this->mailable); - line 237: $this->fake->to('taylor@laravel.com')->queue($this->mailable); - line 239: $this->fake->to(['nuno@laravel.com', 'jess@laravel.com'])->queue($this->mailable); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 234: public function testAssertQueuedToMultiple() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 248: public function testAssertQueuedTimes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 248: public function testAssertQueuedTimes() - line 250: $this->fake->to('taylor@laravel.com')->queue($this->mailable); - line 251: $this->fake->to('taylor@laravel.com')->queue($this->mailable); - line 255: $this->fail(); - line 257: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\MailableStub] mailable was queued 2 times instead of 1 time.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 248: public function testAssertQueuedTimes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 263: public function testAssertNotQueuedWithString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 263: public function testAssertNotQueuedWithString() - line 267: $this->fake->to('taylor@laravel.com')->queue($this->mailable); - line 269: $this->expectException(ExpectationFailedException::class); - line 270: $this->expectExceptionMessage('The unexpected ['.MailableStub::class.'] mailable was queued to address [taylor@laravel.com].'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 263: public function testAssertNotQueuedWithString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 275: public function testAssertNotQueuedWithArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 275: public function testAssertNotQueuedWithArray() - line 279: $this->fake->to('dries@laravel.com')->queue($this->mailable); - line 281: $this->expectException(ExpectationFailedException::class); - line 282: $this->expectExceptionMessage('The unexpected ['.MailableStub::class.'] mailable was queued to address [dries@laravel.com].'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 275: public function testAssertNotQueuedWithArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 287: public function testAssertQueuedCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 287: public function testAssertQueuedCount() - line 289: $this->fake->to('taylor@laravel.com')->queue($this->mailable); - line 290: $this->fake->to('taylor@laravel.com')->queue($this->mailable); - line 294: $this->fail(); - line 296: $this->assertStringContainsString('The total number of mailables queued was 2 instead of 1.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 287: public function testAssertQueuedCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 302: public function testSendQueuesAMailableThatShouldBeQueued() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 302: public function testSendQueuesAMailableThatShouldBeQueued() - line 304: $this->fake->to('taylor@laravel.com')->send(new QueueableMailableStub); - line 310: $this->fail(); - line 312: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\QueueableMailableStub] mailable was not sent.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 302: public function testSendQueuesAMailableThatShouldBeQueued() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 316: public function testAssertNothingSent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 316: public function testAssertNothingSent() - line 320: $this->fake->to('taylor@laravel.com')->send($this->mailable); - line 324: $this->fail(); - line 326: $this->assertStringContainsString("The following mailables were sent unexpectedly:\n\n- Illuminate\Tests\Support\MailableStub", $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 316: public function testAssertNothingSent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 330: public function testAssertNothingQueued() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 330: public function testAssertNothingQueued() - line 334: $this->fake->to('taylor@laravel.com')->queue($this->mailable); - line 338: $this->fail(); - line 340: $this->assertStringContainsString("The following mailables were queued unexpectedly:\n\n- Illuminate\Tests\Support\MailableStub", $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 330: public function testAssertNothingQueued() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 344: public function testAssertOutgoingCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 344: public function testAssertOutgoingCount() - line 348: $this->fake->to('taylor@laravel.com')->queue($this->mailable); - line 352: $this->fail(); - line 354: $this->assertStringContainsString('The total number of outgoing mailables was 1 instead of 2.', $e->getMessage()); - line 357: $this->fake->to('taylor@laravel.com')->send($this->mailable); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 344: public function testAssertOutgoingCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 362: public function testAssertQueuedWithClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 362: public function testAssertQueuedWithClosure() - line 364: $this->fake->to($user = new LocalizedRecipientStub)->queue($this->mailable); - line 367: return $mail->hasTo($user); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 362: public function testAssertQueuedWithClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 371: public function testAssertSentWithClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 371: public function testAssertSentWithClosure() - line 373: $this->fake->to($user = new LocalizedRecipientStub)->send($this->mailable); - line 376: return $mail->hasTo($user); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 371: public function testAssertSentWithClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 387: public function testAssertMailer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 387: public function testAssertMailer() - line 389: $this->fake->to('taylor@laravel.com')->send($this->mailable); - line 392: return $mail->usesMailer('smtp'); - line 395: $this->fake->mailer('ses')->to('taylor@laravel.com')->send($this->mailable); - line 398: return $mail->usesMailer('ses'); - line 401: $this->fake->mailer('sendgrid')->to('taylor@laravel.com')->queue($this->mailable); - line 404: return $mail->usesMailer('sendgrid'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 387: public function testAssertMailer() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/SupportTestingNotificationFakeTest.php - Test @ line 43: public function testAssertSentTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 43: public function testAssertSentTo() - line 47: $this->fail(); - line 49: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\NotificationStub] notification was not sent.', $e->getMessage()); - line 52: $this->fake->send($this->user, new NotificationStub); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 43: public function testAssertSentTo() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 57: public function testAssertSentToClosure() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 57: public function testAssertSentToClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 66: public function testAssertSentOnDemand() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 66: public function testAssertSentOnDemand() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 73: public function testAssertSentOnDemandClosure() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 73: public function testAssertSentOnDemandClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 82: public function testAssertNotSentTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 82: public function testAssertNotSentTo() - line 86: $this->fake->send($this->user, new NotificationStub); - line 90: $this->fail(); - line 92: $this->assertStringContainsString('The unexpected [Illuminate\Tests\Support\NotificationStub] notification was sent.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 82: public function testAssertNotSentTo() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 96: public function testAssertNotSentToClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 96: public function testAssertNotSentToClosure() - line 98: $this->fake->send($this->user, new NotificationStub); - line 104: $this->fail(); - line 106: $this->assertStringContainsString('The unexpected [Illuminate\Tests\Support\NotificationStub] notification was sent.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 96: public function testAssertNotSentToClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 110: public function testAssertNothingSent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 110: public function testAssertNothingSent() - line 113: $this->fake->send($this->user, new NotificationStub); - line 117: $this->fail(); - line 119: $this->assertStringContainsString("The following notifications were sent unexpectedly:\n\n- ".get_class(new NotificationStub), $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 110: public function testAssertNothingSent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 123: public function testAssertNothingSentTo() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 123: public function testAssertNothingSentTo() - line 126: $this->fake->send($this->user, new NotificationStub); - line 130: $this->fail(); - line 132: $this->assertStringContainsString('Notifications were sent unexpectedly.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 123: public function testAssertNothingSentTo() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 136: public function testAssertSentToFailsForEmptyArray() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 136: public function testAssertSentToFailsForEmptyArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 143: public function testAssertSentToFailsForEmptyCollection() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 143: public function testAssertSentToFailsForEmptyCollection() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 150: public function testResettingNotificationId() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 150: public function testResettingNotificationId() - line 152: $this->fake->send($this->user, $this->notification); - line 156: $this->fake->send($this->user, $this->notification); - line 162: $this->fake->send($this->user, $this->notification); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 150: public function testResettingNotificationId() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 168: public function testAssertSentTimes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 168: public function testAssertSentTimes() - line 172: $this->fake->send($this->user, new NotificationStub); - line 174: $this->fake->send($this->user, new NotificationStub); - line 176: $this->fake->send(new UserStub, new NotificationStub); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 168: public function testAssertSentTimes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 181: public function testAssertSentToTimes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 181: public function testAssertSentToTimes() - line 185: $this->fake->send($this->user, new NotificationStub); - line 187: $this->fake->send($this->user, new NotificationStub); - line 189: $this->fake->send($this->user, new NotificationStub); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 181: public function testAssertSentToTimes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 194: public function testAssertSentOnDemandTimes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 194: public function testAssertSentOnDemandTimes() - line 198: $this->fake->send(new AnonymousNotifiable, new NotificationStub); - line 200: $this->fake->send(new AnonymousNotifiable, new NotificationStub); - line 202: $this->fake->send(new AnonymousNotifiable, new NotificationStub); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 194: public function testAssertSentOnDemandTimes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 207: public function testAssertSentToWhenNotifiableHasPreferredLocale() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 207: public function testAssertSentToWhenNotifiableHasPreferredLocale() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 218: public function testAssertSentToWhenNotifiableHasFalsyShouldSend() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 218: public function testAssertSentToWhenNotifiableHasFalsyShouldSend() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 227: public function testAssertItCanSerializeAndRestoreNotifications() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 227: public function testAssertItCanSerializeAndRestoreNotifications() - line 229: $this->fake->serializeAndRestore(); - line 230: $this->fake->send($this->user, new NotificationWithSerialization('hello')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 227: public function testAssertItCanSerializeAndRestoreNotifications() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/SupportTestingQueueFakeTest.php - Test @ line 41: public function testAssertPushed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 41: public function testAssertPushed() - line 45: $this->fail(); - line 47: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\JobStub] job was not pushed.', $e->getMessage()); - line 50: $this->fake->push($this->job); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 41: public function testAssertPushed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 55: public function testItCanAssertAgainstDataWithPush() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 55: public function testItCanAssertAgainstDataWithPush() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 69: public function testAssertPushedWithIgnore() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 69: public function testAssertPushedWithIgnore() - line 73: $manager = m::mock(QueueManager::class); - line 74: $manager->shouldReceive('push')->once()->withArgs(function ($passedJob) use ($job) { - line 80: $fake->push($job); - line 81: $fake->push(new JobToFakeStub()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 73: $manager = m::mock(QueueManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 69: public function testAssertPushedWithIgnore() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 87: public function testAssertPushedWithClosure() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 87: public function testAssertPushedWithClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 96: public function testQueueSize() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 96: public function testQueueSize() - line 98: $this->assertEquals(0, $this->fake->size()); - line 100: $this->fake->push($this->job); - line 102: $this->assertEquals(1, $this->fake->size()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 105: public function testAssertNotPushed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 105: public function testAssertNotPushed() - line 107: $this->fake->push($this->job); - line 111: $this->fail(); - line 113: $this->assertStringContainsString('The unexpected [Illuminate\Tests\Support\JobStub] job was pushed.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 105: public function testAssertNotPushed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 117: public function testAssertNotPushedWithClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 117: public function testAssertNotPushedWithClosure() - line 121: $this->fake->push($this->job); - line 127: $this->fail(); - line 129: $this->assertStringContainsString('The unexpected [Illuminate\Tests\Support\JobStub] job was pushed.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 117: public function testAssertNotPushedWithClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 133: public function testAssertPushedOn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 133: public function testAssertPushedOn() - line 135: $this->fake->push($this->job, '', 'foo'); - line 139: $this->fail(); - line 141: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\JobStub] job was not pushed.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 133: public function testAssertPushedOn() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 147: public function testAssertPushedOnWithClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 147: public function testAssertPushedOnWithClosure() - line 149: $this->fake->push($this->job, '', 'foo'); - line 155: $this->fail(); - line 157: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\JobStub] job was not pushed.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 147: public function testAssertPushedOnWithClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 165: public function testAssertPushedTimes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 165: public function testAssertPushedTimes() - line 167: $this->fake->push($this->job); - line 168: $this->fake->push($this->job); - line 172: $this->fail(); - line 174: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\JobStub] job was pushed 2 times instead of 1 time.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 165: public function testAssertPushedTimes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 180: public function testAssertCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 180: public function testAssertCount() - line 182: $this->fake->push(function () { - line 186: $this->fake->push($this->job); - line 187: $this->fake->push($this->job); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 180: public function testAssertCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 192: public function testAssertNothingPushed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 192: public function testAssertNothingPushed() - line 196: $this->fake->push($this->job); - line 198: $this->fake->push(function () { - line 204: $this->fail(); - line 206: $this->assertStringContainsString('The following jobs were pushed unexpectedly', $e->getMessage()); - line 207: $this->assertStringContainsString(get_class($this->job), $e->getMessage()); - line 208: $this->assertStringContainsString(CallQueuedClosure::class, $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 192: public function testAssertNothingPushed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 212: public function testAssertPushedUsingBulk() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 212: public function testAssertPushedUsingBulk() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 226: public function testAssertPushedWithChainUsingClassesOrObjectsArray() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 226: public function testAssertPushedWithChainUsingClassesOrObjectsArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 241: public function testAssertPushedWithoutChain() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 241: public function testAssertPushedWithoutChain() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 248: public function testAssertPushedWithChainSameJobDifferentChains() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 248: public function testAssertPushedWithChainSameJobDifferentChains() - line 250: $this->fake->push(new JobWithChainStub([ - line 253: $this->fake->push(new JobWithChainStub([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 248: public function testAssertPushedWithChainSameJobDifferentChains() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 268: public function testAssertPushedWithChainUsingCallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 268: public function testAssertPushedWithChainUsingCallback() - line 270: $this->fake->push(new JobWithChainAndParameterStub('first', [ - line 275: $this->fake->push(new JobWithChainAndParameterStub('second', [ - line 292: $this->fail(); - line 294: $this->assertStringContainsString('The expected chain was not pushed.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 268: public function testAssertPushedWithChainUsingCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 298: public function testAssertPushedWithChainErrorHandling() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 298: public function testAssertPushedWithChainErrorHandling() - line 302: $this->fail(); - line 304: $this->assertStringContainsString('The expected [Illuminate\Tests\Support\JobWithChainStub] job was not pushed.', $e->getMessage()); - line 307: $this->fake->push(new JobWithChainStub([ - line 313: $this->fail(); - line 315: $this->assertStringContainsString('The expected chain can not be empty.', $e->getMessage()); - line 323: $this->fail(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 298: public function testAssertPushedWithChainErrorHandling() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 339: public function testCallUndefinedMethodErrorHandling() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 339: public function testCallUndefinedMethodErrorHandling() - line 342: $this->fake->undefinedMethod(); - line 346: ), $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 350: public function testAssertClosurePushed() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 350: public function testAssertClosurePushed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 359: public function testAssertClosurePushedWithTimes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 359: public function testAssertClosurePushedWithTimes() - line 361: $this->fake->push(function () { - line 365: $this->fake->push(function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 359: public function testAssertClosurePushedWithTimes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 372: public function testAssertClosureNotPushed() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 372: public function testAssertClosureNotPushed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 379: public function testItDoesntFakeJobsPassedViaExcept() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 379: public function testItDoesntFakeJobsPassedViaExcept() - line 383: $manager = m::mock(QueueManager::class); - line 384: $manager->shouldReceive('push')->once()->withArgs(function ($passedJob) use ($job) { - line 388: $fake = (new QueueFake(new Application, [], $manager))->except(JobStub::class); - line 390: $fake->push($job); - line 391: $fake->push(new JobToFakeStub()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 383: $manager = m::mock(QueueManager::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 379: public function testItDoesntFakeJobsPassedViaExcept() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 397: public function testItCanSerializeAndRestoreJobs() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 397: public function testItCanSerializeAndRestoreJobs() - line 400: $this->fake->push(new JobWithSerialization('hello')); - line 406: $fake->serializeAndRestore(); - line 407: $fake->push($job); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 397: public function testItCanSerializeAndRestoreJobs() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 415: public function testItCanFakePushedJobsWithClassAndPayload() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 415: public function testItCanFakePushedJobsWithClassAndPayload() - line 419: $this->assertTrue($fake->shouldFakeJob('JobStub')); - line 421: $fake->push('JobStub', ['job' => 'payload']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 428: public function testAssertChainUsingClassesOrObjectsArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 428: public function testAssertChainUsingClassesOrObjectsArray() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 428: public function testAssertChainUsingClassesOrObjectsArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 443: public function testAssertNoChain() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 443: public function testAssertNoChain() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 443: public function testAssertNoChain() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 450: public function testAssertChainErrorHandling() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 450: public function testAssertChainErrorHandling() - line 458: $this->fail(); - line 460: $this->assertStringContainsString('The expected chain can not be empty.', $e->getMessage()); - line 468: $this->fail(); - line 470: $this->assertStringContainsString('The job does not have the expected chain.', $e->getMessage()); - line 478: $this->fail(); - line 480: $this->assertStringContainsString('The job does not have the expected chain.', $e->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 450: public function testAssertChainErrorHandling() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 491: public function testGetRawPushes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 491: public function testGetRawPushes() - line 493: $this->fake->pushRaw('some-payload', null, ['options' => 'yeah']); - line 494: $this->fake->pushRaw('some-other-payload', 'my-queue', ['options' => 'also yeah']); - line 496: $actualPushedRaw = $this->fake->rawPushes(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 491: public function testGetRawPushes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 504: public function testPushedRaw() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 504: public function testPushedRaw() - line 506: $this->fake->pushRaw('some-payload', null, ['options' => 'yeah']); - line 507: $this->fake->pushRaw('some-other-payload', 'my-queue', ['options' => 'also yeah']); - line 509: $this->assertCount(2, $this->fake->pushedRaw()); - line 511: $pushedRaw = $this->fake->pushedRaw(fn ($payload) => $payload === 'some-payload'); - line 518: $pushedRaw = $this->fake->pushedRaw( - line 525: $pushedRaw = $this->fake->pushedRaw(fn ($payload, $queue, $options) => $options === []); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/SupportTimeboxTest.php - Test @ line 12: public function testMakeExecutesCallback() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 12: public function testMakeExecutesCallback() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 21: public function testMakeWaitsForMicroseconds() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 21: public function testMakeWaitsForMicroseconds() - line 23: $mock = m::spy(Timebox::class)->shouldAllowMockingProtectedMethods()->makePartial(); - line 26: $mock->call(function () { - line 29: $mock->shouldHaveReceived('usleep')->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 21: public function testMakeWaitsForMicroseconds() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 32: public function testMakeShouldNotSleepWhenEarlyReturnHasBeenFlagged() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 32: public function testMakeShouldNotSleepWhenEarlyReturnHasBeenFlagged() - line 34: $mock = m::spy(Timebox::class)->shouldAllowMockingProtectedMethods()->makePartial(); - line 35: $mock->call(function ($timebox) { - line 39: $mock->shouldNotHaveReceived('usleep'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 32: public function testMakeShouldNotSleepWhenEarlyReturnHasBeenFlagged() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 42: public function testMakeShouldSleepWhenDontEarlyReturnHasBeenFlagged() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 42: public function testMakeShouldSleepWhenDontEarlyReturnHasBeenFlagged() - line 44: $mock = m::spy(Timebox::class)->shouldAllowMockingProtectedMethods()->makePartial(); - line 47: $mock->call(function ($timebox) { - line 52: $mock->shouldHaveReceived('usleep')->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 42: public function testMakeShouldSleepWhenDontEarlyReturnHasBeenFlagged() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 55: public function testMakeWaitsForMicrosecondsWhenExceptionIsThrown() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 55: public function testMakeWaitsForMicrosecondsWhenExceptionIsThrown() - line 57: $mock = m::spy(Timebox::class)->shouldAllowMockingProtectedMethods()->makePartial(); - line 61: $this->expectExceptionMessage('Exception within Timebox callback.'); - line 63: $mock->call(function () { - line 67: $mock->shouldHaveReceived('usleep')->once(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 55: public function testMakeWaitsForMicrosecondsWhenExceptionIsThrown() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 71: public function testMakeShouldNotSleepWhenEarlyReturnHasBeenFlaggedAndExceptionIsThrown() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 71: public function testMakeShouldNotSleepWhenEarlyReturnHasBeenFlaggedAndExceptionIsThrown() - line 73: $mock = m::spy(Timebox::class)->shouldAllowMockingProtectedMethods()->makePartial(); - line 76: $this->expectExceptionMessage('Exception within Timebox callback.'); - line 78: $mock->call(function ($timebox) { - line 83: $mock->shouldNotHaveReceived('usleep'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 71: public function testMakeShouldNotSleepWhenEarlyReturnHasBeenFlaggedAndExceptionIsThrown() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/SupportUriTest.php - Test @ line 11: public function test_can_build_special_urls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 11: public function test_can_build_special_urls() - line 13: Uri::setUrlGeneratorResolver(fn () => new CustomUrlGeneratorResolver); - line 15: $this->assertEquals('https://laravel.com/to', Uri::to('')->value()); - line 16: $this->assertEquals('https://laravel.com/route', Uri::route('')->value()); - line 17: $this->assertEquals('https://laravel.com/signed-route', Uri::signedRoute('')->value()); - line 18: $this->assertEquals('https://laravel.com/signed-route', Uri::temporarySignedRoute('', '')->value()); - line 19: $this->assertEquals('https://laravel.com/action', Uri::action('')->value()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 22: public function test_basic_uri_interactions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 22: public function test_basic_uri_interactions() - line 24: $uri = Uri::of($originalUri = 'https://laravel.com/docs/installation'); - line 26: $this->assertEquals('https', $uri->scheme()); - line 27: $this->assertNull($uri->user()); - line 28: $this->assertNull($uri->password()); - line 29: $this->assertEquals('laravel.com', $uri->host()); - line 30: $this->assertNull($uri->port()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 47: public function test_complicated_query_string_parsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 47: public function test_complicated_query_string_parsing() - line 49: $uri = Uri::of('https://example.com/users?key_1=value&key_2[sub_field]=value&key_3[]=value&key_4[9]=value&key_5[][][foo][9]=bar&key.6=value&flag_value'); - line 73: ], $uri->query()->all()); - line 75: $this->assertEquals('key_1=value&key_2[sub_field]=value&key_3[]=value&key_4[9]=value&key_5[][][foo][9]=bar&key.6=value&flag_value', $uri->query()->decode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 78: public function test_uri_building() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 78: public function test_uri_building() - line 80: $uri = Uri::of(); - line 82: $uri = $uri->withHost('laravel.com') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 78: public function test_uri_building() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 93: public function test_complicated_query_string_manipulation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 93: public function test_complicated_query_string_manipulation() - line 95: $uri = Uri::of('https://laravel.com'); - line 97: $uri = $uri->withQuery([ - line 111: $this->assertEquals('age=38&role[title]=Developer&role[focus]=PHP&tags[0]=person&tags[1]=employee&flag=', $uri->query()->decode()); - line 112: $this->assertEquals('name=Taylor', $uri->replaceQuery(['name' => 'Taylor'])->query()->decode()); - line 117: $this->assertEquals(['tags' => ['foo', 'bar']], $uri->pushOntoQuery('tags', 'bar')->query()->all()); - line 118: $this->assertEquals(['tags' => ['foo', 'bar', 'baz']], $uri->pushOntoQuery('tags', ['bar', 'baz'])->query()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 127: public function test_query_strings_with_dots_can_be_replaced_or_merged_consistently() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 127: public function test_query_strings_with_dots_can_be_replaced_or_merged_consistently() - line 129: $uri = Uri::of('https://dot.test/?foo.bar=baz'); - line 131: $this->assertEquals('foo.bar=baz&foo[bar]=zab', $uri->withQuery(['foo.bar' => 'zab'])->query()->decode()); - line 132: $this->assertEquals('foo[bar]=zab', $uri->replaceQuery(['foo.bar' => 'zab'])->query()->decode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 135: public function test_decoding_the_entire_uri() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 135: public function test_decoding_the_entire_uri() - line 137: $uri = Uri::of('https://laravel.com/docs/11.x/installation')->withQuery(['tags' => ['first', 'second']]); - line 139: $this->assertEquals('https://laravel.com/docs/11.x/installation?tags[0]=first&tags[1]=second', $uri->decode()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 142: public function test_with_query_if_missing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 142: public function test_with_query_if_missing() - line 145: $uri = Uri::of('https://laravel.com?existing=value'); - line 147: $uri = $uri->withQueryIfMissing([ - line 152: $this->assertEquals('existing=value&new=parameter', $uri->query()->decode()); - line 157: $uri = $uri->withQueryIfMissing([ - line 169: $this->assertEquals('name=Taylor&role[title]=Developer&role[focus]=PHP&tags[0]=person&tags[1]=employee', $uri->query()->decode()); - line 174: $uri = $uri->withQueryIfMissing([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 204: public function test_with_query_prevents_empty_query_string() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 204: public function test_with_query_prevents_empty_query_string() - line 206: $uri = Uri::of('https://laravel.com'); - line 209: $this->assertEquals('https://laravel.com', (string) $uri->withQuery([])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 212: public function test_path_segments() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 212: public function test_path_segments() - line 214: $uri = Uri::of('https://laravel.com'); - line 216: $this->assertEquals([], $uri->pathSegments()->toArray()); - line 220: $this->assertEquals(['one', 'two', 'three'], $uri->pathSegments()->toArray()); - line 221: $this->assertEquals('one', $uri->pathSegments()->first()); - line 225: $this->assertEquals(3, $uri->pathSegments()->count()); - line 229: $this->assertEquals(3, $uri->pathSegments()->count()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 236: public function test_macroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 236: public function test_macroable() - line 239: return $this->withPath('foobar'); - line 244: $this->assertSame('https://laravel.com/foobar', (string) $uri->myMacro()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Support/SupportViewErrorBagTest.php - Test @ line 11: public function testHasBagTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 11: public function testHasBagTrue() - line 14: $viewErrorBag->put('default', new MessageBag(['msg1', 'msg2'])); - line 15: $this->assertTrue($viewErrorBag->hasBag()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 24: public function testGet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 24: public function testGet() - line 28: $viewErrorBag = $viewErrorBag->put('default', $messageBag); - line 29: $this->assertEquals($messageBag, $viewErrorBag->getBag('default')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 32: public function testGetBagWithNew() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 32: public function testGetBagWithNew() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 38: public function testGetBags() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 38: public function testGetBags() - line 43: $viewErrorBag->put('default', $messageBag1); - line 44: $viewErrorBag->put('default2', $messageBag2); - line 48: ], $viewErrorBag->getBags()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 51: public function testPut() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 51: public function testPut() - line 55: $viewErrorBag = $viewErrorBag->put('default', $messageBag); - line 56: $this->assertEquals(['default' => $messageBag], $viewErrorBag->getBags()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 59: public function testAnyTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 59: public function testAnyTrue() - line 62: $viewErrorBag->put('default', new MessageBag(['message'])); - line 63: $this->assertTrue($viewErrorBag->any()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 66: public function testAnyFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 66: public function testAnyFalse() - line 69: $viewErrorBag->put('default', new MessageBag); - line 70: $this->assertFalse($viewErrorBag->any()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 79: public function testCount() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 79: public function testCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 86: public function testCountWithNoMessagesInMessageBag() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 86: public function testCountWithNoMessagesInMessageBag() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 93: public function testCountWithNoMessageBags() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 93: public function testCountWithNoMessageBags() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 93: public function testCountWithNoMessageBags() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 99: public function testDynamicCallToDefaultMessageBag() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 99: public function testDynamicCallToDefaultMessageBag() - line 102: $viewErrorBag->put('default', new MessageBag(['message', 'second'])); - line 103: $this->assertEquals(['message', 'second'], $viewErrorBag->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 122: public function testToString() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 122: public function testToString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Support/ValidatedInputTest.php - Test @ line 14: public function test_can_access_input() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 14: public function test_can_access_input() - line 20: $this->assertEquals(['name' => 'Taylor'], $input->all(['name'])); - line 21: $this->assertEquals(['name' => 'Taylor'], $input->only(['name'])); - line 22: $this->assertEquals(['name' => 'Taylor'], $input->except(['votes'])); - line 23: $this->assertEquals(['name' => 'Taylor', 'votes' => 100], $input->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 26: public function test_can_merge_items() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 26: public function test_can_merge_items() - line 30: $input = $input->merge(['votes' => 100]); - line 34: $this->assertEquals(['name' => 'Taylor'], $input->only(['name'])); - line 35: $this->assertEquals(['name' => 'Taylor'], $input->except(['votes'])); - line 36: $this->assertEquals(['name' => 'Taylor', 'votes' => 100], $input->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 39: public function test_input_existence() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 39: public function test_input_existence() - line 43: $this->assertTrue($inputA->has('name')); - line 44: $this->assertTrue($inputA->missing('votes')); - line 45: $this->assertTrue($inputA->missing(['votes'])); - line 46: $this->assertFalse($inputA->missing('name')); - line 50: $this->assertTrue($inputB->has(['name', 'votes'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 53: public function test_exists_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 53: public function test_exists_method() - line 57: $this->assertTrue($input->exists('name')); - line 58: $this->assertTrue($input->exists('surname')); - line 59: $this->assertTrue($input->exists(['name', 'surname'])); - line 60: $this->assertTrue($input->exists('foo.bar')); - line 61: $this->assertTrue($input->exists(['name', 'foo.baz'])); - line 62: $this->assertTrue($input->exists(['name', 'foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 70: public function test_has_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 70: public function test_has_method() - line 74: $this->assertTrue($input->has('name')); - line 75: $this->assertTrue($input->has('surname')); - line 76: $this->assertTrue($input->has(['name', 'surname'])); - line 77: $this->assertTrue($input->has('foo.bar')); - line 78: $this->assertTrue($input->has(['name', 'foo.baz'])); - line 79: $this->assertTrue($input->has(['name', 'foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 87: public function test_has_any_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 87: public function test_has_any_method() - line 91: $this->assertTrue($input->hasAny('name')); - line 92: $this->assertTrue($input->hasAny('surname')); - line 93: $this->assertTrue($input->hasAny('foo.bar')); - line 94: $this->assertTrue($input->hasAny(['name', 'surname'])); - line 95: $this->assertTrue($input->hasAny(['name', 'foo.bat'])); - line 96: $this->assertTrue($input->hasAny(['votes', 'foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 102: public function test_when_has_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 102: public function test_when_has_method() - line 108: $input->whenHas('name', function ($value) use (&$name) { - line 112: $input->whenHas('age', function ($value) use (&$age) { - line 116: $input->whenHas('city', function ($value) use (&$city) { - line 120: $input->whenHas('foo', function ($value) use (&$foo) { - line 124: $input->whenHas('foo.bar', function ($value) use (&$bar) { - line 128: $input->whenHas('foo.baz', function () use (&$baz) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 102: public function test_when_has_method() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 142: public function test_filled_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 142: public function test_filled_method() - line 146: $this->assertTrue($input->filled('name')); - line 147: $this->assertTrue($input->filled('surname')); - line 148: $this->assertTrue($input->filled(['name', 'surname'])); - line 149: $this->assertTrue($input->filled(['name', 'foo'])); - line 150: $this->assertTrue($input->filled('foo')); - line 152: $this->assertFalse($input->filled('foo.bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 159: public function test_is_not_filled_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 159: public function test_is_not_filled_method() - line 163: $this->assertFalse($input->isNotFilled('name')); - line 164: $this->assertFalse($input->isNotFilled('surname')); - line 165: $this->assertFalse($input->isNotFilled(['name', 'surname'])); - line 166: $this->assertFalse($input->isNotFilled(['name', 'foo'])); - line 167: $this->assertFalse($input->isNotFilled('foo')); - line 168: $this->assertFalse($input->isNotFilled(['name', 'foo.baz'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 176: public function test_any_filled_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 176: public function test_any_filled_method() - line 180: $this->assertTrue($input->anyFilled('name')); - line 181: $this->assertTrue($input->anyFilled('surname')); - line 182: $this->assertTrue($input->anyFilled(['name', 'surname'])); - line 183: $this->assertTrue($input->anyFilled(['name', 'foo'])); - line 184: $this->assertTrue($input->anyFilled('foo')); - line 185: $this->assertTrue($input->anyFilled(['name', 'foo.baz'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 193: public function test_when_filled_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 193: public function test_when_filled_method() - line 199: $input->whenFilled('name', function ($value) use (&$name) { - line 203: $input->whenFilled('age', function ($value) use (&$age) { - line 207: $input->whenFilled('city', function ($value) use (&$city) { - line 211: $input->whenFilled('foo', function ($value) use (&$foo) { - line 215: $input->whenFilled('foo.bar', function ($value) use (&$bar) { - line 219: $input->whenFilled('foo.baz', function () use (&$baz) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 193: public function test_when_filled_method() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 233: public function test_missing_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 233: public function test_missing_method() - line 237: $this->assertFalse($input->missing('name')); - line 238: $this->assertFalse($input->missing('surname')); - line 239: $this->assertFalse($input->missing(['name', 'surname'])); - line 240: $this->assertFalse($input->missing('foo.bar')); - line 241: $this->assertFalse($input->missing(['name', 'foo.baz'])); - line 242: $this->assertFalse($input->missing(['name', 'foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 250: public function test_when_missing_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 250: public function test_when_missing_method() - line 256: $input->whenMissing('name', function () use (&$name) { - line 260: $input->whenMissing('age', function () use (&$age) { - line 264: $input->whenMissing('city', function () use (&$city) { - line 268: $input->whenMissing('foo', function ($value) use (&$foo) { - line 272: $input->whenMissing('foo.baz', function () use (&$baz) { - line 276: $input->whenMissing('foo.bar', function () use (&$bar) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 250: public function test_when_missing_method() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 304: public function test_input_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 304: public function test_input_method() - line 308: $this->assertSame('Fatih', $input->input('name')); - line 309: $this->assertSame(null, $input->input('foo.bar')); - line 310: $this->assertSame('test', $input->input('foo.bat', 'test')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 313: public function test_str_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 313: public function test_str_method() - line 327: $this->assertTrue($input->str('int') instanceof Stringable); - line 328: $this->assertTrue($input->str('int') instanceof Stringable); - line 329: $this->assertTrue($input->str('unknown_key') instanceof Stringable); - line 330: $this->assertSame('123', $input->str('int')->value()); - line 331: $this->assertSame('456', $input->str('int_str')->value()); - line 332: $this->assertSame('123.456', $input->str('float')->value()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 341: public function test_string_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 341: public function test_string_method() - line 355: $this->assertTrue($input->string('int') instanceof Stringable); - line 356: $this->assertTrue($input->string('int') instanceof Stringable); - line 357: $this->assertTrue($input->string('unknown_key') instanceof Stringable); - line 358: $this->assertSame('123', $input->string('int')->value()); - line 359: $this->assertSame('456', $input->string('int_str')->value()); - line 360: $this->assertSame('123.456', $input->string('float')->value()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 369: public function test_boolean_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 369: public function test_boolean_method() - line 380: $this->assertTrue($input->boolean('checked')); - line 381: $this->assertTrue($input->boolean('download')); - line 382: $this->assertFalse($input->boolean('unchecked')); - line 383: $this->assertFalse($input->boolean('with_trashed')); - line 384: $this->assertFalse($input->boolean('some_undefined_key')); - line 385: $this->assertTrue($input->boolean('with_on')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 389: public function test_integer_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 389: public function test_integer_method() - line 402: $this->assertSame(123, $input->integer('int')); - line 403: $this->assertSame(456, $input->integer('raw_int')); - line 404: $this->assertSame(78, $input->integer('zero_padded')); - line 405: $this->assertSame(901, $input->integer('space_padded')); - line 406: $this->assertSame(0, $input->integer('nan')); - line 407: $this->assertSame(1, $input->integer('mixed')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 414: public function test_float_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 414: public function test_float_method() - line 428: $this->assertSame(1.23, $input->float('float')); - line 429: $this->assertSame(45.6, $input->float('raw_float')); - line 430: $this->assertSame(.6, $input->float('decimal_only')); - line 431: $this->assertSame(0.78, $input->float('zero_padded')); - line 432: $this->assertSame(90.1, $input->float('space_padded')); - line 433: $this->assertSame(0.0, $input->float('nan')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 441: public function test_date_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 441: public function test_date_method() - line 457: $this->assertNull($input->date('as_null')); - line 458: $this->assertNull($input->date('doesnt_exists')); - line 460: $this->assertEquals($current, $input->date('as_datetime')); - line 461: $this->assertEquals($current->format('Y-m-d H:i:s P'), $input->date('as_format', 'U')->format('Y-m-d H:i:s P')); - line 462: $this->assertEquals($current, $input->date('as_timezone', null, 'America/Santiago')); - line 464: $this->assertTrue($input->date('as_date')->isSameDay($current)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 468: public function test_enum_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 468: public function test_enum_method() - line 475: $this->assertNull($input->enum('doesnt_exists', StringBackedEnum::class)); - line 477: $this->assertEquals(StringBackedEnum::HELLO_WORLD, $input->enum('valid_enum_value', StringBackedEnum::class)); - line 479: $this->assertNull($input->enum('invalid_enum_value', StringBackedEnum::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 482: public function test_enums_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 482: public function test_enums_method() - line 489: $this->assertEmpty($input->enums('doesnt_exists', StringBackedEnum::class)); - line 491: $this->assertEquals([StringBackedEnum::HELLO_WORLD], $input->enums('valid_enum_value', StringBackedEnum::class)); - line 493: $this->assertEmpty($input->enums('invalid_enum_value', StringBackedEnum::class)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 496: public function test_collect_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 496: public function test_collect_method() - line 500: $this->assertInstanceOf(Collection::class, $input->collect('users')); - line 501: $this->assertTrue($input->collect('developers')->isEmpty()); - line 502: $this->assertEquals([1, 2, 3], $input->collect('users')->all()); - line 503: $this->assertEquals(['users' => [1, 2, 3]], $input->collect()->all()); - line 506: $this->assertEquals(['text-payload'], $input->collect()->all()); - line 509: $this->assertEquals(['test@example.com'], $input->collect('email')->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 525: public function test_only_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 525: public function test_only_method() - line 529: $this->assertEquals(['name' => 'Fatih', 'surname' => 'AYDIN', 'foo' => ['bar' => null]], $input->only('name', 'surname', 'foo.bar')); - line 530: $this->assertEquals(['name' => 'Fatih', 'foo' => ['bar' => null, 'baz' => '']], $input->only('name', 'foo')); - line 531: $this->assertEquals(['foo' => ['baz' => '']], $input->only('foo.baz')); - line 532: $this->assertEquals(['name' => 'Fatih'], $input->only('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 535: public function test_except_method() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 535: public function test_except_method() - line 539: $this->assertEquals(['name' => 'Fatih', 'surname' => 'AYDIN', 'foo' => ['bar' => null]], $input->except('foo.baz')); - line 540: $this->assertEquals(['surname' => 'AYDIN'], $input->except('name', 'foo')); - line 541: $this->assertEquals([], $input->except('name', 'surname', 'foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Testing/AssertTest.php - Test @ line 13: public function testArraySubset() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 13: public function testArraySubset() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 13: public function testArraySubset() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Testing/Concerns/InteractsWithDatabaseTest.php - Test @ line 26: public function testCastToJsonSqlite() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 26: public function testCastToJsonSqlite() - line 33: $this->castAsJson(['foo', 'bar'], $grammar) - line 39: $this->castAsJson(collect(['foo', 'bar']), $grammar) - line 45: $this->castAsJson((object) ['foo' => 'bar'], $grammar) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 49: public function testCastToJsonPostgres() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 49: public function testCastToJsonPostgres() - line 56: $this->castAsJson(['foo', 'bar'], $grammar) - line 62: $this->castAsJson(collect(['foo', 'bar']), $grammar) - line 68: $this->castAsJson((object) ['foo' => 'bar'], $grammar) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 72: public function testCastToJsonSqlServer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 72: public function testCastToJsonSqlServer() - line 79: $this->castAsJson(['foo', 'bar'], $grammar) - line 85: $this->castAsJson(collect(['foo', 'bar']), $grammar) - line 91: $this->castAsJson((object) ['foo' => 'bar'], $grammar) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 95: public function testCastToJsonMySql() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 95: public function testCastToJsonMySql() - line 102: $this->castAsJson(['foo', 'bar'], $grammar) - line 108: $this->castAsJson(collect(['foo', 'bar']), $grammar) - line 114: $this->castAsJson((object) ['foo' => 'bar'], $grammar) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 118: public function testCastToJsonMariaDb() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 118: public function testCastToJsonMariaDb() - line 125: $this->castAsJson(['foo', 'bar'], $grammar) - line 131: $this->castAsJson(collect(['foo', 'bar']), $grammar) - line 137: $this->castAsJson((object) ['foo' => 'bar'], $grammar) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Testing/Concerns/InteractsWithDeprecationHandlingTest.php - Test @ line 34: public function testWithDeprecationHandling() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function testWithDeprecationHandling() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 43: public function testWithoutDeprecationHandling() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 43: public function testWithoutDeprecationHandling() - line 45: $this->withoutDeprecationHandling(); - line 47: $this->expectException(ErrorException::class); - line 48: $this->expectExceptionMessage('Something is deprecated'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 43: public function testWithoutDeprecationHandling() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Testing/Concerns/TestDatabasesTest.php - Test @ line 34: public function testSwitchToDatabaseWithoutUrl() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 34: public function testSwitchToDatabaseWithoutUrl() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 51: public function testSwitchToDatabaseWithUrl($testDatabase, $url, $testUrl) Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 51: public function testSwitchToDatabaseWithUrl($testDatabase, $url, $testUrl) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Testing/Console/ConfigShowCommandTest.php - Test @ line 17: public function testDisplayConfig() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 17: public function testDisplayConfig() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 47: public function testDisplayNestedConfigItems() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 47: public function testDisplayNestedConfigItems() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 61: public function testDisplaySingleValue() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 61: public function testDisplaySingleValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 70: public function testDisplayErrorIfConfigDoesNotExist() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 70: public function testDisplayErrorIfConfigDoesNotExist() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Testing/Console/RouteListCommandTest.php - Test @ line 40: public function testDisplayRoutesForCli() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 40: public function testDisplayRoutesForCli() - line 47: return new RedirectResponse($this->urlGenerator->signedRoute('signed-route')); - line 51: $this->router->post('controller-invokable', FooController::class); - line 52: $this->router->domain('{account}.example.com')->group(function () { - line 60: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 40: public function testDisplayRoutesForCli() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 76: public function testDisplayRoutesForCliInVerboseMode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 76: public function testDisplayRoutesForCliInVerboseMode() - line 79: return new RedirectResponse($this->urlGenerator->signedRoute('signed-route')); - line 83: $this->router->post('controller-invokable', FooController::class); - line 84: $this->router->domain('{account}.example.com')->group(function () { - line 88: }); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 76: public function testDisplayRoutesForCliInVerboseMode() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 103: public function testRouteCanBeFilteredByName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 103: public function testRouteCanBeFilteredByName() - line 105: $this->withoutDeprecationHandling(); - line 112: })->name('foo.show'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 103: public function testRouteCanBeFilteredByName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 123: public function testRouteCanBeFilteredByAction() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 123: public function testRouteCanBeFilteredByAction() - line 125: $this->withoutDeprecationHandling(); - line 134: $this->router->get('foo/{user}', [FooController::class, 'show']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 123: public function testRouteCanBeFilteredByAction() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 148: public function testDisplayRoutesExceptVendor() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 148: public function testDisplayRoutesExceptVendor() - line 151: $this->router->view('view', 'blade.path'); - line 152: $this->router->redirect('redirect', 'destination'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 148: public function testDisplayRoutesExceptVendor() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Testing/Fluent/AssertTest.php - Test @ line 15: public function testAssertHas() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 15: public function testAssertHas() - line 17: $assert = AssertableJson::fromArray([ - line 21: $assert->has('prop'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 15: public function testAssertHas() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 24: public function testAssertHasFailsWhenPropMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 24: public function testAssertHasFailsWhenPropMissing() - line 26: $assert = AssertableJson::fromArray([ - line 30: $this->expectException(AssertionFailedError::class); - line 31: $this->expectExceptionMessage('Property [prop] does not exist.'); - line 33: $assert->has('prop'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 24: public function testAssertHasFailsWhenPropMissing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 36: public function testAssertHasNestedProp() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 36: public function testAssertHasNestedProp() - line 38: $assert = AssertableJson::fromArray([ - line 44: $assert->has('example.nested'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 36: public function testAssertHasNestedProp() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 47: public function testAssertHasFailsWhenNestedPropMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 47: public function testAssertHasFailsWhenNestedPropMissing() - line 49: $assert = AssertableJson::fromArray([ - line 55: $this->expectException(AssertionFailedError::class); - line 56: $this->expectExceptionMessage('Property [example.another] does not exist.'); - line 58: $assert->has('example.another'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 47: public function testAssertHasFailsWhenNestedPropMissing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 61: public function testAssertHasCountItemsInProp() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 61: public function testAssertHasCountItemsInProp() - line 63: $assert = AssertableJson::fromArray([ - line 70: $assert->has('bar', 2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 61: public function testAssertHasCountItemsInProp() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 73: public function testAssertHasCountFailsWhenAmountOfItemsDoesNotMatch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 73: public function testAssertHasCountFailsWhenAmountOfItemsDoesNotMatch() - line 75: $assert = AssertableJson::fromArray([ - line 82: $this->expectException(AssertionFailedError::class); - line 83: $this->expectExceptionMessage('Property [bar] does not have the expected size.'); - line 85: $assert->has('bar', 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 73: public function testAssertHasCountFailsWhenAmountOfItemsDoesNotMatch() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 88: public function testAssertHasCountFailsWhenPropMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 88: public function testAssertHasCountFailsWhenPropMissing() - line 90: $assert = AssertableJson::fromArray([ - line 97: $this->expectException(AssertionFailedError::class); - line 98: $this->expectExceptionMessage('Property [baz] does not exist.'); - line 100: $assert->has('baz', 1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 88: public function testAssertHasCountFailsWhenPropMissing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 103: public function testAssertHasFailsWhenSecondArgumentUnsupportedType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 103: public function testAssertHasFailsWhenSecondArgumentUnsupportedType() - line 105: $assert = AssertableJson::fromArray([ - line 109: $this->expectException(TypeError::class); - line 111: $assert->has('bar', 'invalid'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 103: public function testAssertHasFailsWhenSecondArgumentUnsupportedType() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 114: public function testAssertHasOnlyCounts() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 114: public function testAssertHasOnlyCounts() - line 116: $assert = AssertableJson::fromArray([ - line 122: $assert->has(3); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 114: public function testAssertHasOnlyCounts() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 125: public function testAssertHasOnlyCountFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 125: public function testAssertHasOnlyCountFails() - line 127: $assert = AssertableJson::fromArray([ - line 133: $this->expectException(AssertionFailedError::class); - line 134: $this->expectExceptionMessage('Root level does not have the expected size.'); - line 136: $assert->has(2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 125: public function testAssertHasOnlyCountFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 139: public function testAssertHasOnlyCountFailsScoped() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 139: public function testAssertHasOnlyCountFailsScoped() - line 141: $assert = AssertableJson::fromArray([ - line 148: $this->expectException(AssertionFailedError::class); - line 149: $this->expectExceptionMessage('Property [bar] does not have the expected size.'); - line 151: $assert->has('bar', function ($bar) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 139: public function testAssertHasOnlyCountFailsScoped() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 156: public function testAssertHasWithWhereNotDoesNotFail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 156: public function testAssertHasWithWhereNotDoesNotFail() - line 158: $assert = AssertableJson::fromArray([ - line 171: $assert->has('data', function ($bar) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 156: public function testAssertHasWithWhereNotDoesNotFail() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 177: public function testAssertHasWithWhereNotFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 177: public function testAssertHasWithWhereNotFails() - line 179: $assert = AssertableJson::fromArray([ - line 192: $this->expectException(AssertionFailedError::class); - line 193: $this->expectExceptionMessage('Property [data.1.id] contains a value that should be missing: [id, 2]'); - line 195: $assert->has('data', function ($bar) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 177: public function testAssertHasWithWhereNotFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 201: public function testAssertHasWithWhereNotDoesNotFailClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 201: public function testAssertHasWithWhereNotDoesNotFailClosure() - line 203: $assert = AssertableJson::fromArray([ - line 216: $assert->has('data', function ($bar) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 201: public function testAssertHasWithWhereNotDoesNotFailClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 222: public function testAssertHasWithWhereNotFailsClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 222: public function testAssertHasWithWhereNotFailsClosure() - line 224: $assert = AssertableJson::fromArray([ - line 237: $this->expectException(AssertionFailedError::class); - line 238: $this->expectExceptionMessage('Property [data.1.id] was marked as invalid using a closure.'); - line 240: $assert->has('data', function ($bar) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 222: public function testAssertHasWithWhereNotFailsClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 246: public function testAssertCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 246: public function testAssertCount() - line 248: $assert = AssertableJson::fromArray([ - line 254: $assert->count(3); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 246: public function testAssertCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 257: public function testAssertCountFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 257: public function testAssertCountFails() - line 259: $assert = AssertableJson::fromArray([ - line 265: $this->expectException(AssertionFailedError::class); - line 266: $this->expectExceptionMessage('Root level does not have the expected size.'); - line 268: $assert->count(2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 257: public function testAssertCountFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 271: public function testAssertCountFailsScoped() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 271: public function testAssertCountFailsScoped() - line 273: $assert = AssertableJson::fromArray([ - line 280: $this->expectException(AssertionFailedError::class); - line 281: $this->expectExceptionMessage('Property [bar] does not have the expected size.'); - line 283: $assert->has('bar', function ($bar) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 271: public function testAssertCountFailsScoped() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 288: public function testAssertBetween() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 288: public function testAssertBetween() - line 290: $assert = AssertableJson::fromArray([ - line 296: $assert->countBetween(1, 3); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 288: public function testAssertBetween() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 299: public function testAssertBetweenFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 299: public function testAssertBetweenFails() - line 301: $assert = AssertableJson::fromArray([ - line 307: $this->expectException(AssertionFailedError::class); - line 308: $this->expectExceptionMessage('Root level size is not less than or equal to [2].'); - line 310: $assert->countBetween(1, 2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 299: public function testAssertBetweenFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 313: public function testAssertBetweenLowestValueFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 313: public function testAssertBetweenLowestValueFails() - line 315: $assert = AssertableJson::fromArray([ - line 321: $this->expectException(AssertionFailedError::class); - line 322: $this->expectExceptionMessage('Root level size is not greater than or equal to [4].'); - line 324: $assert->countBetween(4, 3); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 313: public function testAssertBetweenLowestValueFails() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 327: public function testAssertBetweenFailsScoped() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 327: public function testAssertBetweenFailsScoped() - line 329: $assert = AssertableJson::fromArray([ - line 337: $this->expectException(AssertionFailedError::class); - line 338: $this->expectExceptionMessage('Property [bar] size is not less than or equal to [2].'); - line 340: $assert->has('bar', function (AssertableJson $bar) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 327: public function testAssertBetweenFailsScoped() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 345: public function testAssertMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 345: public function testAssertMissing() - line 347: $assert = AssertableJson::fromArray([ - line 353: $assert->missing('foo.baz'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 345: public function testAssertMissing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 356: public function testAssertMissingFailsWhenPropExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 356: public function testAssertMissingFailsWhenPropExists() - line 358: $assert = AssertableJson::fromArray([ - line 365: $this->expectException(AssertionFailedError::class); - line 366: $this->expectExceptionMessage('Property [foo.bar] was found while it was expected to be missing.'); - line 368: $assert->missing('foo.bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 356: public function testAssertMissingFailsWhenPropExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 371: public function testAssertMissingAll() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 371: public function testAssertMissingAll() - line 373: $assert = AssertableJson::fromArray([ - line 377: $assert->missingAll([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 371: public function testAssertMissingAll() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 383: public function testAssertMissingAllFailsWhenAtLeastOnePropExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 383: public function testAssertMissingAllFailsWhenAtLeastOnePropExists() - line 385: $assert = AssertableJson::fromArray([ - line 389: $this->expectException(AssertionFailedError::class); - line 390: $this->expectExceptionMessage('Property [baz] was found while it was expected to be missing.'); - line 392: $assert->missingAll([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 383: public function testAssertMissingAllFailsWhenAtLeastOnePropExists() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 398: public function testAssertMissingAllAcceptsMultipleArgumentsInsteadOfArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 398: public function testAssertMissingAllAcceptsMultipleArgumentsInsteadOfArray() - line 400: $assert = AssertableJson::fromArray([ - line 404: $assert->missingAll('foo', 'bar'); - line 406: $this->expectException(AssertionFailedError::class); - line 407: $this->expectExceptionMessage('Property [baz] was found while it was expected to be missing.'); - line 409: $assert->missingAll('bar', 'baz'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 398: public function testAssertMissingAllAcceptsMultipleArgumentsInsteadOfArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 412: public function testAssertWhereMatchesValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 412: public function testAssertWhereMatchesValue() - line 414: $assert = AssertableJson::fromArray([ - line 418: $assert->where('bar', 'value'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 412: public function testAssertWhereMatchesValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 421: public function testAssertWhereFailsWhenDoesNotMatchValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 421: public function testAssertWhereFailsWhenDoesNotMatchValue() - line 423: $assert = AssertableJson::fromArray([ - line 427: $this->expectException(AssertionFailedError::class); - line 428: $this->expectExceptionMessage('Property [bar] does not match the expected value.'); - line 430: $assert->where('bar', 'invalid'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 421: public function testAssertWhereFailsWhenDoesNotMatchValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 433: public function testAssertWhereFailsWhenMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 433: public function testAssertWhereFailsWhenMissing() - line 435: $assert = AssertableJson::fromArray([ - line 439: $this->expectException(AssertionFailedError::class); - line 440: $this->expectExceptionMessage('Property [baz] does not exist.'); - line 442: $assert->where('baz', 'invalid'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 433: public function testAssertWhereFailsWhenMissing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 445: public function testAssertWhereFailsWhenMatchingLoosely() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 445: public function testAssertWhereFailsWhenMatchingLoosely() - line 447: $assert = AssertableJson::fromArray([ - line 451: $this->expectException(AssertionFailedError::class); - line 452: $this->expectExceptionMessage('Property [bar] does not match the expected value.'); - line 454: $assert->where('bar', true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 445: public function testAssertWhereFailsWhenMatchingLoosely() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 457: public function testAssertWhereUsingClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 457: public function testAssertWhereUsingClosure() - line 459: $assert = AssertableJson::fromArray([ - line 463: $assert->where('bar', function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 457: public function testAssertWhereUsingClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 468: public function testAssertWhereFailsWhenDoesNotMatchValueUsingClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 468: public function testAssertWhereFailsWhenDoesNotMatchValueUsingClosure() - line 470: $assert = AssertableJson::fromArray([ - line 474: $this->expectException(AssertionFailedError::class); - line 475: $this->expectExceptionMessage('Property [bar] was marked as invalid using a closure.'); - line 477: $assert->where('bar', function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 468: public function testAssertWhereFailsWhenDoesNotMatchValueUsingClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 482: public function testAssertWhereClosureArrayValuesAreAutomaticallyCastedToCollections() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 482: public function testAssertWhereClosureArrayValuesAreAutomaticallyCastedToCollections() - line 484: $assert = AssertableJson::fromArray([ - line 491: $assert->where('bar', function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 482: public function testAssertWhereClosureArrayValuesAreAutomaticallyCastedToCollections() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 498: public function testAssertWhereMatchesValueUsingArrayable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 498: public function testAssertWhereMatchesValueUsingArrayable() - line 500: $stub = ArrayableStubObject::make(['foo' => 'bar']); - line 503: 'bar' => $stub->toArray(), - line 506: $assert->where('bar', $stub); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 498: public function testAssertWhereMatchesValueUsingArrayable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 509: public function testAssertWhereMatchesValueUsingArrayableWhenSortedDifferently() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 509: public function testAssertWhereMatchesValueUsingArrayableWhenSortedDifferently() - line 511: $assert = AssertableJson::fromArray([ - line 521: $assert->where('data', [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 509: public function testAssertWhereMatchesValueUsingArrayableWhenSortedDifferently() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 530: public function testAssertWhereFailsWhenDoesNotMatchValueUsingArrayable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 530: public function testAssertWhereFailsWhenDoesNotMatchValueUsingArrayable() - line 532: $assert = AssertableJson::fromArray([ - line 545: ->where('bar', ArrayableStubObject::make(['name' => 'Example', 'id' => 1])) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 530: public function testAssertWhereFailsWhenDoesNotMatchValueUsingArrayable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 556: public function testAssertWhereUsingBackedEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 556: public function testAssertWhereUsingBackedEnum() - line 558: $assert = AssertableJson::fromArray([ - line 562: $assert->where('bar', BackedEnum::test); - line 568: $assert->where('bar', BackedEnum::test_empty); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 556: public function testAssertWhereUsingBackedEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 571: public function testAssertWhereFailsUsingBackedEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 571: public function testAssertWhereFailsUsingBackedEnum() - line 573: $assert = AssertableJson::fromArray([ - line 577: $this->expectException(AssertionFailedError::class); - line 578: $this->expectExceptionMessage('Property [bar] does not match the expected value.'); - line 580: $assert->where('bar', BackedEnum::test_empty); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 571: public function testAssertWhereFailsUsingBackedEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 583: public function testAssertWhereNullMatchesValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 583: public function testAssertWhereNullMatchesValue() - line 585: $assert = AssertableJson::fromArray([ - line 589: $assert->whereNull('bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 583: public function testAssertWhereNullMatchesValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 592: public function testAssertWhereNullFailsWhenNotNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 592: public function testAssertWhereNullFailsWhenNotNull() - line 594: $assert = AssertableJson::fromArray([ - line 598: $this->expectException(AssertionFailedError::class); - line 599: $this->expectExceptionMessage('Property [bar] should be null.'); - line 601: $assert->whereNull('bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 592: public function testAssertWhereNullFailsWhenNotNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 604: public function testAssertWhereNullFailsWhenMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 604: public function testAssertWhereNullFailsWhenMissing() - line 606: $assert = AssertableJson::fromArray([ - line 610: $this->expectException(AssertionFailedError::class); - line 611: $this->expectExceptionMessage('Property [baz] does not exist.'); - line 613: $assert->whereNull('baz'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 604: public function testAssertWhereNullFailsWhenMissing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 616: public function testAssertWhereNotNullMatchesValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 616: public function testAssertWhereNotNullMatchesValue() - line 618: $assert = AssertableJson::fromArray([ - line 622: $assert->whereNotNull('bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 616: public function testAssertWhereNotNullMatchesValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 625: public function testAssertWhereNotNullFailsWhenNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 625: public function testAssertWhereNotNullFailsWhenNull() - line 627: $assert = AssertableJson::fromArray([ - line 631: $this->expectException(AssertionFailedError::class); - line 632: $this->expectExceptionMessage('Property [bar] should not be null.'); - line 634: $assert->whereNotNull('bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 625: public function testAssertWhereNotNullFailsWhenNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 637: public function testAssertWhereNotNullFailsWhenMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 637: public function testAssertWhereNotNullFailsWhenMissing() - line 639: $assert = AssertableJson::fromArray([ - line 643: $this->expectException(AssertionFailedError::class); - line 644: $this->expectExceptionMessage('Property [baz] does not exist.'); - line 646: $assert->whereNotNull('baz'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 637: public function testAssertWhereNotNullFailsWhenMissing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 649: public function testAssertWhereContainsFailsWithEmptyValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 649: public function testAssertWhereContainsFailsWithEmptyValue() - line 651: $assert = AssertableJson::fromArray([]); - line 653: $this->expectException(AssertionFailedError::class); - line 654: $this->expectExceptionMessage('Property [foo] does not contain [1].'); - line 656: $assert->whereContains('foo', ['1']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 649: public function testAssertWhereContainsFailsWithEmptyValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 659: public function testAssertWhereContainsFailsWithMissingValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 659: public function testAssertWhereContainsFailsWithMissingValue() - line 661: $assert = AssertableJson::fromArray([ - line 665: $this->expectException(AssertionFailedError::class); - line 666: $this->expectExceptionMessage('Property [foo] does not contain [invalid].'); - line 668: $assert->whereContains('foo', ['bar', 'baz', 'invalid']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 659: public function testAssertWhereContainsFailsWithMissingValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 671: public function testAssertWhereContainsFailsWithMissingNestedValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 671: public function testAssertWhereContainsFailsWithMissingNestedValue() - line 673: $assert = AssertableJson::fromArray([ - line 680: $this->expectException(AssertionFailedError::class); - line 681: $this->expectExceptionMessage('Property [id] does not contain [5].'); - line 683: $assert->whereContains('id', [1, 2, 3, 4, 5]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 671: public function testAssertWhereContainsFailsWithMissingNestedValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 686: public function testAssertWhereContainsFailsWhenDoesNotMatchType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 686: public function testAssertWhereContainsFailsWhenDoesNotMatchType() - line 688: $assert = AssertableJson::fromArray([ - line 692: $this->expectException(AssertionFailedError::class); - line 693: $this->expectExceptionMessage('Property [foo] does not contain [1].'); - line 695: $assert->whereContains('foo', ['1']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 686: public function testAssertWhereContainsFailsWhenDoesNotMatchType() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 698: public function testAssertWhereContainsFailsWhenDoesNotSatisfyClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 698: public function testAssertWhereContainsFailsWhenDoesNotSatisfyClosure() - line 700: $assert = AssertableJson::fromArray([ - line 704: $this->expectException(AssertionFailedError::class); - line 705: $this->expectExceptionMessage('Property [foo] does not contain a value that passes the truth test within the given closure.'); - line 707: $assert->whereContains('foo', [function ($actual) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 698: public function testAssertWhereContainsFailsWhenDoesNotSatisfyClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 712: public function testAssertWhereContainsFailsWhenHavingExpectedValueButDoesNotSatisfyClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 712: public function testAssertWhereContainsFailsWhenHavingExpectedValueButDoesNotSatisfyClosure() - line 714: $assert = AssertableJson::fromArray([ - line 718: $this->expectException(AssertionFailedError::class); - line 719: $this->expectExceptionMessage('Property [foo] does not contain a value that passes the truth test within the given closure.'); - line 721: $assert->whereContains('foo', [1, function ($actual) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 712: public function testAssertWhereContainsFailsWhenHavingExpectedValueButDoesNotSatisfyClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 726: public function testAssertWhereContainsFailsWhenSatisfiesClosureButDoesNotHaveExpectedValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 726: public function testAssertWhereContainsFailsWhenSatisfiesClosureButDoesNotHaveExpectedValue() - line 728: $assert = AssertableJson::fromArray([ - line 732: $this->expectException(AssertionFailedError::class); - line 733: $this->expectExceptionMessage('Property [foo] does not contain [5].'); - line 735: $assert->whereContains('foo', [5, function ($actual) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 726: public function testAssertWhereContainsFailsWhenSatisfiesClosureButDoesNotHaveExpectedValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 740: public function testAssertWhereContainsWithNestedValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 740: public function testAssertWhereContainsWithNestedValue() - line 742: $assert = AssertableJson::fromArray([ - line 749: $assert->whereContains('id', 1); - line 750: $assert->whereContains('id', [1, 2, 3, 4]); - line 751: $assert->whereContains('id', [4, 3, 2, 1]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 740: public function testAssertWhereContainsWithNestedValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 754: public function testAssertWhereContainsWithMatchingType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 754: public function testAssertWhereContainsWithMatchingType() - line 756: $assert = AssertableJson::fromArray([ - line 760: $assert->whereContains('foo', 1); - line 761: $assert->whereContains('foo', [1]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 754: public function testAssertWhereContainsWithMatchingType() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 764: public function testAssertWhereContainsWithNullValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 764: public function testAssertWhereContainsWithNullValue() - line 766: $assert = AssertableJson::fromArray([ - line 770: $assert->whereContains('foo', null); - line 771: $assert->whereContains('foo', [null]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 764: public function testAssertWhereContainsWithNullValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 774: public function testAssertWhereContainsWithOutOfOrderMatchingType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 774: public function testAssertWhereContainsWithOutOfOrderMatchingType() - line 776: $assert = AssertableJson::fromArray([ - line 780: $assert->whereContains('foo', [1, 7, 4, 3]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 774: public function testAssertWhereContainsWithOutOfOrderMatchingType() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 783: public function testAssertWhereContainsWithOutOfOrderNestedMatchingType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 783: public function testAssertWhereContainsWithOutOfOrderNestedMatchingType() - line 785: $assert = AssertableJson::fromArray([ - line 791: $assert->whereContains('baz', 4); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 783: public function testAssertWhereContainsWithOutOfOrderNestedMatchingType() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 794: public function testAssertWhereContainsWithClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 794: public function testAssertWhereContainsWithClosure() - line 796: $assert = AssertableJson::fromArray([ - line 800: $assert->whereContains('foo', function ($actual) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 794: public function testAssertWhereContainsWithClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 805: public function testAssertWhereContainsWithNestedClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 805: public function testAssertWhereContainsWithNestedClosure() - line 807: $assert = AssertableJson::fromArray([ - line 813: $assert->whereContains('baz', function ($actual) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 805: public function testAssertWhereContainsWithNestedClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 818: public function testAssertWhereContainsWithMultipleClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 818: public function testAssertWhereContainsWithMultipleClosure() - line 820: $assert = AssertableJson::fromArray([ - line 824: $assert->whereContains('foo', [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 818: public function testAssertWhereContainsWithMultipleClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 834: public function testAssertWhereContainsWithNullExpectation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 834: public function testAssertWhereContainsWithNullExpectation() - line 836: $assert = AssertableJson::fromArray([ - line 840: $assert->whereContains('foo', null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 834: public function testAssertWhereContainsWithNullExpectation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 843: public function testAssertWhereContainsUsingBackedEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 843: public function testAssertWhereContainsUsingBackedEnum() - line 845: $assert = AssertableJson::fromArray([ - line 849: $assert->whereContains('bar', BackedEnum::test); - line 855: $assert->whereContains('bar', BackedEnum::test_empty); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 843: public function testAssertWhereContainsUsingBackedEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 858: public function testAssertWhereContainsFailsUsingBackedEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 858: public function testAssertWhereContainsFailsUsingBackedEnum() - line 860: $assert = AssertableJson::fromArray([ - line 864: $this->expectException(AssertionFailedError::class); - line 865: $this->expectExceptionMessage('Property [bar] does not contain [test].'); - line 867: $assert->whereContains('bar', BackedEnum::test); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 858: public function testAssertWhereContainsFailsUsingBackedEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 870: public function testAssertNestedWhereMatchesValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 870: public function testAssertNestedWhereMatchesValue() - line 872: $assert = AssertableJson::fromArray([ - line 878: $assert->where('example.nested', 'nested-value'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 870: public function testAssertNestedWhereMatchesValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 881: public function testAssertNestedWhereFailsWhenDoesNotMatchValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 881: public function testAssertNestedWhereFailsWhenDoesNotMatchValue() - line 883: $assert = AssertableJson::fromArray([ - line 889: $this->expectException(AssertionFailedError::class); - line 890: $this->expectExceptionMessage('Property [example.nested] does not match the expected value.'); - line 892: $assert->where('example.nested', 'another-value'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 881: public function testAssertNestedWhereFailsWhenDoesNotMatchValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 895: public function testAssertNestedWhereUsingBackedEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 895: public function testAssertNestedWhereUsingBackedEnum() - line 897: $assert = AssertableJson::fromArray([ - line 903: $assert->where('example.nested', BackedEnum::test); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 895: public function testAssertNestedWhereUsingBackedEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 906: public function testAssertNestedWhereFailsUsingBackedEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 906: public function testAssertNestedWhereFailsUsingBackedEnum() - line 908: $assert = AssertableJson::fromArray([ - line 914: $this->expectException(AssertionFailedError::class); - line 915: $this->expectExceptionMessage('Property [example.nested] does not match the expected value.'); - line 917: $assert->where('example.nested', BackedEnum::test); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 906: public function testAssertNestedWhereFailsUsingBackedEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 920: public function testAssertWhereDoesNotMatchValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 920: public function testAssertWhereDoesNotMatchValue() - line 922: $assert = AssertableJson::fromArray([ - line 926: $assert->whereNot('bar', 'different_value'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 920: public function testAssertWhereDoesNotMatchValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 929: public function testAssertWhereNotFailsWhenMatchingValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 929: public function testAssertWhereNotFailsWhenMatchingValue() - line 931: $assert = AssertableJson::fromArray([ - line 935: $this->expectException(AssertionFailedError::class); - line 936: $this->expectExceptionMessage('Property [bar] contains a value that should be missing: [bar, value]'); - line 938: $assert->whereNot('bar', 'value'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 929: public function testAssertWhereNotFailsWhenMatchingValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 941: public function testAssertWhereNotFailsWhenNotMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 941: public function testAssertWhereNotFailsWhenNotMissing() - line 943: $assert = AssertableJson::fromArray([ - line 947: $this->expectException(AssertionFailedError::class); - line 948: $this->expectExceptionMessage('Property [baz] does not exist.'); - line 950: $assert->whereNot('baz', 'value'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 941: public function testAssertWhereNotFailsWhenNotMissing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 953: public function testAssertWhereNotUsingClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 953: public function testAssertWhereNotUsingClosure() - line 955: $assert = AssertableJson::fromArray([ - line 959: $assert->whereNot('bar', function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 953: public function testAssertWhereNotUsingClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 964: public function testAssertWhereNotFailsWhenMatchesValueUsingClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 964: public function testAssertWhereNotFailsWhenMatchesValueUsingClosure() - line 966: $assert = AssertableJson::fromArray([ - line 970: $this->expectException(AssertionFailedError::class); - line 971: $this->expectExceptionMessage('Property [bar] was marked as invalid using a closure.'); - line 973: $assert->whereNot('bar', function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 964: public function testAssertWhereNotFailsWhenMatchesValueUsingClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 978: public function testAssertWhereNotUsingBackedEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 978: public function testAssertWhereNotUsingBackedEnum() - line 980: $assert = AssertableJson::fromArray([ - line 984: $assert->whereNot('bar', BackedEnum::test_empty); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 978: public function testAssertWhereNotUsingBackedEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 987: public function testAssertWhereNotFailsUsingBackedEnum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 987: public function testAssertWhereNotFailsUsingBackedEnum() - line 989: $assert = AssertableJson::fromArray([ - line 993: $this->expectException(AssertionFailedError::class); - line 994: $this->expectExceptionMessage('Property [bar] contains a value that should be missing: [bar, test]'); - line 996: $assert->whereNot('bar', BackedEnum::test); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 987: public function testAssertWhereNotFailsUsingBackedEnum() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 999: public function testScope() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 999: public function testScope() - line 1001: $assert = AssertableJson::fromArray([ - line 1009: $assert->has('bar', function (AssertableJson $assert) use (&$called) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 999: public function testScope() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1019: public function testScopeFailsWhenPropMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1019: public function testScopeFailsWhenPropMissing() - line 1021: $assert = AssertableJson::fromArray([ - line 1028: $this->expectException(AssertionFailedError::class); - line 1029: $this->expectExceptionMessage('Property [baz] does not exist.'); - line 1031: $assert->has('baz', function (AssertableJson $item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1019: public function testScopeFailsWhenPropMissing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1036: public function testScopeFailsWhenPropSingleValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1036: public function testScopeFailsWhenPropSingleValue() - line 1038: $assert = AssertableJson::fromArray([ - line 1042: $this->expectException(AssertionFailedError::class); - line 1043: $this->expectExceptionMessage('Property [bar] is not scopeable.'); - line 1045: $assert->has('bar', function (AssertableJson $item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1036: public function testScopeFailsWhenPropSingleValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1050: public function testScopeShorthand() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1050: public function testScopeShorthand() - line 1052: $assert = AssertableJson::fromArray([ - line 1060: $assert->has('bar', 2, function (AssertableJson $item) use (&$called) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1050: public function testScopeShorthand() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1068: public function testScopeShorthandWithoutCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1068: public function testScopeShorthandWithoutCount() - line 1070: $assert = AssertableJson::fromArray([ - line 1078: $assert->has('bar', null, function (AssertableJson $item) use (&$called) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1068: public function testScopeShorthandWithoutCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1086: public function testScopeShorthandFailsWhenAssertingZeroItems() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1086: public function testScopeShorthandFailsWhenAssertingZeroItems() - line 1088: $assert = AssertableJson::fromArray([ - line 1095: $this->expectException(AssertionFailedError::class); - line 1096: $this->expectExceptionMessage('Property [bar] does not have the expected size.'); - line 1098: $assert->has('bar', 0, function (AssertableJson $item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1086: public function testScopeShorthandFailsWhenAssertingZeroItems() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1103: public function testScopeShorthandFailsWhenAmountOfItemsDoesNotMatch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1103: public function testScopeShorthandFailsWhenAmountOfItemsDoesNotMatch() - line 1105: $assert = AssertableJson::fromArray([ - line 1112: $this->expectException(AssertionFailedError::class); - line 1113: $this->expectExceptionMessage('Property [bar] does not have the expected size.'); - line 1115: $assert->has('bar', 1, function (AssertableJson $item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1103: public function testScopeShorthandFailsWhenAmountOfItemsDoesNotMatch() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1120: public function testScopeShorthandFailsWhenAssertingEmptyArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1120: public function testScopeShorthandFailsWhenAssertingEmptyArray() - line 1122: $assert = AssertableJson::fromArray([ - line 1126: $this->expectException(AssertionFailedError::class); - line 1127: $this->expectExceptionMessage( - line 1131: $assert->has('bar', 0, function (AssertableJson $item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1120: public function testScopeShorthandFailsWhenAssertingEmptyArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1136: public function testScopeShorthandFailsWhenAssertingEmptyArrayWithoutCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1136: public function testScopeShorthandFailsWhenAssertingEmptyArrayWithoutCount() - line 1138: $assert = AssertableJson::fromArray([ - line 1142: $this->expectException(AssertionFailedError::class); - line 1143: $this->expectExceptionMessage( - line 1147: $assert->has('bar', null, function (AssertableJson $item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1136: public function testScopeShorthandFailsWhenAssertingEmptyArrayWithoutCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1152: public function testScopeShorthandFailsWhenSecondArgumentUnsupportedType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1152: public function testScopeShorthandFailsWhenSecondArgumentUnsupportedType() - line 1154: $assert = AssertableJson::fromArray([ - line 1161: $this->expectException(TypeError::class); - line 1163: $assert->has('bar', 'invalid', function (AssertableJson $item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1152: public function testScopeShorthandFailsWhenSecondArgumentUnsupportedType() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1168: public function testFirstScope() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1168: public function testFirstScope() - line 1170: $assert = AssertableJson::fromArray([ - line 1179: $assert->first(function (AssertableJson $item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1168: public function testFirstScope() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1184: public function testFirstScopeFailsWhenNoProps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1184: public function testFirstScopeFailsWhenNoProps() - line 1186: $assert = AssertableJson::fromArray([]); - line 1188: $this->expectException(AssertionFailedError::class); - line 1189: $this->expectExceptionMessage('Cannot scope directly onto the first element of the root level because it is empty.'); - line 1191: $assert->first(function (AssertableJson $item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1184: public function testFirstScopeFailsWhenNoProps() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1196: public function testFirstNestedScopeFailsWhenNoProps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1196: public function testFirstNestedScopeFailsWhenNoProps() - line 1198: $assert = AssertableJson::fromArray([ - line 1202: $this->expectException(AssertionFailedError::class); - line 1203: $this->expectExceptionMessage('Cannot scope directly onto the first element of property [foo] because it is empty.'); - line 1205: $assert->has('foo', function (AssertableJson $assert) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1196: public function testFirstNestedScopeFailsWhenNoProps() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1212: public function testFirstScopeFailsWhenPropSingleValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1212: public function testFirstScopeFailsWhenPropSingleValue() - line 1214: $assert = AssertableJson::fromArray([ - line 1218: $this->expectException(AssertionFailedError::class); - line 1219: $this->expectExceptionMessage('Property [foo] is not scopeable.'); - line 1221: $assert->first(function (AssertableJson $item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1212: public function testFirstScopeFailsWhenPropSingleValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1226: public function testEachScope() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1226: public function testEachScope() - line 1228: $assert = AssertableJson::fromArray([ - line 1237: $assert->each(function (AssertableJson $item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1226: public function testEachScope() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1242: public function testEachScopeFailsWhenNoProps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1242: public function testEachScopeFailsWhenNoProps() - line 1244: $assert = AssertableJson::fromArray([]); - line 1246: $this->expectException(AssertionFailedError::class); - line 1247: $this->expectExceptionMessage('Cannot scope directly onto each element of the root level because it is empty.'); - line 1249: $assert->each(function (AssertableJson $item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1242: public function testEachScopeFailsWhenNoProps() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1254: public function testEachNestedScopeFailsWhenNoProps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1254: public function testEachNestedScopeFailsWhenNoProps() - line 1256: $assert = AssertableJson::fromArray([ - line 1260: $this->expectException(AssertionFailedError::class); - line 1261: $this->expectExceptionMessage('Cannot scope directly onto each element of property [foo] because it is empty.'); - line 1263: $assert->has('foo', function (AssertableJson $assert) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1254: public function testEachNestedScopeFailsWhenNoProps() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1270: public function testEachScopeFailsWhenPropSingleValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1270: public function testEachScopeFailsWhenPropSingleValue() - line 1272: $assert = AssertableJson::fromArray([ - line 1276: $this->expectException(AssertionFailedError::class); - line 1277: $this->expectExceptionMessage('Property [foo] is not scopeable.'); - line 1279: $assert->each(function (AssertableJson $item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1270: public function testEachScopeFailsWhenPropSingleValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1284: public function testFailsWhenNotInteractingWithAllPropsInScope() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1284: public function testFailsWhenNotInteractingWithAllPropsInScope() - line 1286: $assert = AssertableJson::fromArray([ - line 1293: $this->expectException(AssertionFailedError::class); - line 1294: $this->expectExceptionMessage('Unexpected properties were found in scope [bar].'); - line 1296: $assert->has('bar', function (AssertableJson $item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1284: public function testFailsWhenNotInteractingWithAllPropsInScope() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1301: public function testDisableInteractionCheckForCurrentScope() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1301: public function testDisableInteractionCheckForCurrentScope() - line 1303: $assert = AssertableJson::fromArray([ - line 1310: $assert->has('bar', function (AssertableJson $item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1301: public function testDisableInteractionCheckForCurrentScope() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1315: public function testCannotDisableInteractionCheckForDifferentScopes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1315: public function testCannotDisableInteractionCheckForDifferentScopes() - line 1317: $assert = AssertableJson::fromArray([ - line 1327: $this->expectException(AssertionFailedError::class); - line 1328: $this->expectExceptionMessage('Unexpected properties were found in scope [bar.baz].'); - line 1330: $assert->has('bar', function (AssertableJson $item) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1315: public function testCannotDisableInteractionCheckForDifferentScopes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1339: public function testTopLevelPropInteractionDisabledByDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1339: public function testTopLevelPropInteractionDisabledByDefault() - line 1341: $assert = AssertableJson::fromArray([ - line 1346: $assert->has('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1339: public function testTopLevelPropInteractionDisabledByDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1349: public function testTopLevelInteractionEnabledWhenInteractedFlagSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1349: public function testTopLevelInteractionEnabledWhenInteractedFlagSet() - line 1351: $assert = AssertableJson::fromArray([ - line 1356: $this->expectException(AssertionFailedError::class); - line 1357: $this->expectExceptionMessage('Unexpected properties were found on the root level.'); - line 1360: ->has('foo') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1349: public function testTopLevelInteractionEnabledWhenInteractedFlagSet() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1364: public function testAssertWhereAllMatchesValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1364: public function testAssertWhereAllMatchesValues() - line 1366: $assert = AssertableJson::fromArray([ - line 1374: $assert->whereAll([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1364: public function testAssertWhereAllMatchesValues() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1383: public function testAssertWhereAllFailsWhenAtLeastOnePropDoesNotMatchValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1383: public function testAssertWhereAllFailsWhenAtLeastOnePropDoesNotMatchValue() - line 1385: $assert = AssertableJson::fromArray([ - line 1390: $this->expectException(AssertionFailedError::class); - line 1391: $this->expectExceptionMessage('Property [baz] was marked as invalid using a closure.'); - line 1393: $assert->whereAll([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1383: public function testAssertWhereAllFailsWhenAtLeastOnePropDoesNotMatchValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1401: public function testAssertWhereTypeString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1401: public function testAssertWhereTypeString() - line 1403: $assert = AssertableJson::fromArray([ - line 1407: $assert->whereType('foo', 'string'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1401: public function testAssertWhereTypeString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1410: public function testAssertWhereTypeInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1410: public function testAssertWhereTypeInteger() - line 1412: $assert = AssertableJson::fromArray([ - line 1416: $assert->whereType('foo', 'integer'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1410: public function testAssertWhereTypeInteger() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1419: public function testAssertWhereTypeBoolean() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1419: public function testAssertWhereTypeBoolean() - line 1421: $assert = AssertableJson::fromArray([ - line 1425: $assert->whereType('foo', 'boolean'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1419: public function testAssertWhereTypeBoolean() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1428: public function testAssertWhereTypeDouble() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1428: public function testAssertWhereTypeDouble() - line 1430: $assert = AssertableJson::fromArray([ - line 1434: $assert->whereType('foo', 'double'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1428: public function testAssertWhereTypeDouble() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1437: public function testAssertWhereTypeArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1437: public function testAssertWhereTypeArray() - line 1439: $assert = AssertableJson::fromArray([ - line 1444: $assert->whereType('foo', 'array'); - line 1445: $assert->whereType('bar', 'array'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1437: public function testAssertWhereTypeArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1448: public function testAssertWhereTypeNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1448: public function testAssertWhereTypeNull() - line 1450: $assert = AssertableJson::fromArray([ - line 1454: $assert->whereType('foo', 'null'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1448: public function testAssertWhereTypeNull() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1457: public function testAssertWhereAllType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1457: public function testAssertWhereAllType() - line 1459: $assert = AssertableJson::fromArray([ - line 1469: $assert->whereAllType([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1457: public function testAssertWhereAllType() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1480: public function testAssertWhereTypeWhenWrongTypeIsGiven() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1480: public function testAssertWhereTypeWhenWrongTypeIsGiven() - line 1482: $assert = AssertableJson::fromArray([ - line 1486: $this->expectException(AssertionFailedError::class); - line 1487: $this->expectExceptionMessage('Property [foo] is not of expected type [integer].'); - line 1489: $assert->whereType('foo', 'integer'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1480: public function testAssertWhereTypeWhenWrongTypeIsGiven() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1492: public function testAssertWhereTypeWithUnionTypes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1492: public function testAssertWhereTypeWithUnionTypes() - line 1494: $firstAssert = AssertableJson::fromArray([ - line 1502: $firstAssert->whereType('foo', ['string', 'null']); - line 1503: $secondAssert->whereType('foo', ['string', 'null']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1492: public function testAssertWhereTypeWithUnionTypes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1506: public function testAssertWhereTypeWhenWrongUnionTypeIsGiven() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1506: public function testAssertWhereTypeWhenWrongUnionTypeIsGiven() - line 1508: $assert = AssertableJson::fromArray([ - line 1512: $this->expectException(AssertionFailedError::class); - line 1513: $this->expectExceptionMessage('Property [foo] is not of expected type [string|null].'); - line 1515: $assert->whereType('foo', ['string', 'null']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1506: public function testAssertWhereTypeWhenWrongUnionTypeIsGiven() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1518: public function testAssertWhereTypeWithPipeInUnionType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1518: public function testAssertWhereTypeWithPipeInUnionType() - line 1520: $assert = AssertableJson::fromArray([ - line 1524: $assert->whereType('foo', 'string|null'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1518: public function testAssertWhereTypeWithPipeInUnionType() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1527: public function testAssertWhereTypeWithPipeInWrongUnionType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1527: public function testAssertWhereTypeWithPipeInWrongUnionType() - line 1529: $assert = AssertableJson::fromArray([ - line 1533: $this->expectException(AssertionFailedError::class); - line 1534: $this->expectExceptionMessage('Property [foo] is not of expected type [integer|null].'); - line 1536: $assert->whereType('foo', 'integer|null'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1527: public function testAssertWhereTypeWithPipeInWrongUnionType() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1539: public function testAssertHasAll() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1539: public function testAssertHasAll() - line 1541: $assert = AssertableJson::fromArray([ - line 1549: $assert->hasAll([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1539: public function testAssertHasAll() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1556: public function testAssertHasAllFailsWhenAtLeastOnePropMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1556: public function testAssertHasAllFailsWhenAtLeastOnePropMissing() - line 1558: $assert = AssertableJson::fromArray([ - line 1566: $this->expectException(AssertionFailedError::class); - line 1567: $this->expectExceptionMessage('Property [foo.baz] does not exist.'); - line 1569: $assert->hasAll([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1556: public function testAssertHasAllFailsWhenAtLeastOnePropMissing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1576: public function testAssertHasAllAcceptsMultipleArgumentsInsteadOfArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1576: public function testAssertHasAllAcceptsMultipleArgumentsInsteadOfArray() - line 1578: $assert = AssertableJson::fromArray([ - line 1586: $assert->hasAll('foo.bar', 'foo.example', 'baz'); - line 1588: $this->expectException(AssertionFailedError::class); - line 1589: $this->expectExceptionMessage('Property [foo.baz] does not exist.'); - line 1591: $assert->hasAll('foo.bar', 'foo.baz', 'baz'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1576: public function testAssertHasAllAcceptsMultipleArgumentsInsteadOfArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1594: public function testAssertCountMultipleProps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1594: public function testAssertCountMultipleProps() - line 1596: $assert = AssertableJson::fromArray([ - line 1606: $assert->hasAll([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1594: public function testAssertCountMultipleProps() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1612: public function testAssertCountMultiplePropsFailsWhenPropMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1612: public function testAssertCountMultiplePropsFailsWhenPropMissing() - line 1614: $assert = AssertableJson::fromArray([ - line 1621: $this->expectException(AssertionFailedError::class); - line 1622: $this->expectExceptionMessage('Property [baz] does not exist.'); - line 1624: $assert->hasAll([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1612: public function testAssertCountMultiplePropsFailsWhenPropMissing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1630: public function testMacroable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1630: public function testMacroable() - line 1632: AssertableJson::macro('myCustomMacro', function () { - line 1636: $this->expectException(RuntimeException::class); - line 1637: $this->expectExceptionMessage('My Custom Macro was called!'); - line 1640: $assert->myCustomMacro(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1630: public function testMacroable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1643: public function testTappable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 1643: public function testTappable() - line 1645: $assert = AssertableJson::fromArray([ - line 1653: $assert->has('bar', function (AssertableJson $assert) use (&$called) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1643: public function testTappable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Translation/TranslationFileLoaderTest.php - Test @ line 17: public function testLoadMethodLoadsTranslationsFromAddedPath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 17: public function testLoadMethodLoadsTranslationsFromAddedPath() - line 19: $files = m::mock(Filesystem::class); - line 21: $loader->addPath(__DIR__.'/another'); - line 29: $this->assertEquals(['foo' => 'bar', 'baz' => 'backagesplash'], $loader->load('en', 'messages')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 19: $files = m::mock(Filesystem::class); - Test @ line 32: public function testLoadMethodHandlesMissingAddedPath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 32: public function testLoadMethodHandlesMissingAddedPath() - line 34: $files = m::mock(Filesystem::class); - line 36: $loader->addPath(__DIR__.'/missing'); - line 43: $this->assertEquals(['foo' => 'bar'], $loader->load('en', 'messages')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 34: $files = m::mock(Filesystem::class); - Test @ line 46: public function testLoadMethodOverwritesExistingKeysFromAddedPath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 46: public function testLoadMethodOverwritesExistingKeysFromAddedPath() - line 48: $files = m::mock(Filesystem::class); - line 50: $loader->addPath(__DIR__.'/another'); - line 58: $this->assertEquals(['foo' => 'baz'], $loader->load('en', 'messages')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 48: $files = m::mock(Filesystem::class); - Test @ line 61: public function testLoadMethodLoadsTranslationsFromMultipleAddedPaths() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 61: public function testLoadMethodLoadsTranslationsFromMultipleAddedPaths() - line 63: $files = m::mock(Filesystem::class); - line 65: $loader->addPath(__DIR__.'/another'); - line 66: $loader->addPath(__DIR__.'/yet-another'); - line 77: $this->assertEquals(['foo' => 'bar', 'baz' => 'backagesplash', 'qux' => 'quux'], $loader->load('en', 'messages')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 63: $files = m::mock(Filesystem::class); - Test @ line 80: public function testLoadMethodWithoutNamespacesProperlyCallsLoader() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 80: public function testLoadMethodWithoutNamespacesProperlyCallsLoader() - line 82: $loader = new FileLoader($files = m::mock(Filesystem::class), __DIR__); - line 86: $this->assertEquals(['messages'], $loader->load('en', 'foo', null)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 82: $loader = new FileLoader($files = m::mock(Filesystem::class), __DIR__); - Test @ line 89: public function testLoadMethodWithoutNamespacesProperlyCallsLoaderWithMultiplePaths() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 89: public function testLoadMethodWithoutNamespacesProperlyCallsLoaderWithMultiplePaths() - line 91: $loader = new FileLoader($files = m::mock(Filesystem::class), [__DIR__, __DIR__.'/second']); - line 97: $this->assertEquals(['messages' => 'second'], $loader->load('en', 'foo', null)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 91: $loader = new FileLoader($files = m::mock(Filesystem::class), [__DIR__, __DIR__.'/second']); - Test @ line 100: public function testLoadMethodWithNamespacesProperlyCallsLoader() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 100: public function testLoadMethodWithNamespacesProperlyCallsLoader() - line 102: $loader = new FileLoader($files = m::mock(Filesystem::class), __DIR__); - line 106: $loader->addNamespace('namespace', 'bar'); - line 108: $this->assertEquals(['foo' => 'bar'], $loader->load('en', 'foo', 'namespace')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 102: $loader = new FileLoader($files = m::mock(Filesystem::class), __DIR__); - Test @ line 111: public function testLoadMethodWithNamespacesProperlyCallsLoaderWithMultiplePaths() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 111: public function testLoadMethodWithNamespacesProperlyCallsLoaderWithMultiplePaths() - line 113: $loader = new FileLoader($files = m::mock(Filesystem::class), [__DIR__, __DIR__.'/second']); - line 118: $loader->addNamespace('namespace', 'test-namespace-dir'); - line 120: $this->assertEquals(['foo' => 'bar'], $loader->load('en', 'foo', 'namespace')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 113: $loader = new FileLoader($files = m::mock(Filesystem::class), [__DIR__, __DIR__.'/second']); - Test @ line 123: public function testLoadMethodWithNamespacesProperlyCallsLoaderAndLoadsLocalOverrides() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 123: public function testLoadMethodWithNamespacesProperlyCallsLoaderAndLoadsLocalOverrides() - line 125: $loader = new FileLoader($files = m::mock(Filesystem::class), __DIR__); - line 130: $loader->addNamespace('namespace', 'bar'); - line 132: $this->assertEquals(['foo' => 'override', 'baz' => 'boom'], $loader->load('en', 'foo', 'namespace')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 125: $loader = new FileLoader($files = m::mock(Filesystem::class), __DIR__); - Test @ line 135: public function testLoadMethodWithNamespacesProperlyCallsLoaderAndLoadsLocalOverridesWithMultiplePaths() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 135: public function testLoadMethodWithNamespacesProperlyCallsLoaderAndLoadsLocalOverridesWithMultiplePaths() - line 137: $loader = new FileLoader($files = m::mock(Filesystem::class), [__DIR__, __DIR__.'/second']); - line 144: $loader->addNamespace('namespace', 'test-namespace-dir'); - line 146: $this->assertEquals(['foo' => 'override-2', 'baz' => 'boom-2'], $loader->load('en', 'foo', 'namespace')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 137: $loader = new FileLoader($files = m::mock(Filesystem::class), [__DIR__, __DIR__.'/second']); - Test @ line 149: public function testLoadMethodWithNamespacesProperlyCallsLoaderAndLoadsLocalOverridesWithMultiplePathsWithMissingKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 149: public function testLoadMethodWithNamespacesProperlyCallsLoaderAndLoadsLocalOverridesWithMultiplePathsWithMissingKey() - line 151: $loader = new FileLoader($files = m::mock(Filesystem::class), [__DIR__, __DIR__.'/second']); - line 158: $loader->addNamespace('namespace', 'test-namespace-dir'); - line 160: $this->assertEquals(['foo' => 'override', 'baz' => 'boom-2'], $loader->load('en', 'foo', 'namespace')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 151: $loader = new FileLoader($files = m::mock(Filesystem::class), [__DIR__, __DIR__.'/second']); - Test @ line 163: public function testEmptyArraysReturnedWhenFilesDontExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 163: public function testEmptyArraysReturnedWhenFilesDontExist() - line 165: $loader = new FileLoader($files = m::mock(Filesystem::class), __DIR__); - line 167: $files->shouldReceive('getRequire')->never(); - line 169: $this->assertEquals([], $loader->load('en', 'foo', null)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 165: $loader = new FileLoader($files = m::mock(Filesystem::class), __DIR__); - Test @ line 172: public function testEmptyArraysReturnedWhenFilesDontExistForNamespacedItems() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 172: public function testEmptyArraysReturnedWhenFilesDontExistForNamespacedItems() - line 174: $loader = new FileLoader($files = m::mock(Filesystem::class), __DIR__); - line 175: $files->shouldReceive('getRequire')->never(); - line 177: $this->assertEquals([], $loader->load('en', 'foo', 'bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 174: $loader = new FileLoader($files = m::mock(Filesystem::class), __DIR__); - Test @ line 180: public function testLoadMethodForJSONProperlyCallsLoader() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 180: public function testLoadMethodForJSONProperlyCallsLoader() - line 182: $loader = new FileLoader($files = m::mock(Filesystem::class), __DIR__); - line 186: $this->assertEquals(['foo' => 'bar'], $loader->load('en', '*', '*')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 182: $loader = new FileLoader($files = m::mock(Filesystem::class), __DIR__); - Test @ line 189: public function testLoadMethodForJSONProperlyCallsLoaderForMultiplePaths() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 189: public function testLoadMethodForJSONProperlyCallsLoaderForMultiplePaths() - line 191: $loader = new FileLoader($files = m::mock(Filesystem::class), __DIR__); - line 192: $loader->addJsonPath(__DIR__.'/another'); - line 199: $this->assertEquals(['foo' => 'bar', 'baz' => 'backagesplash'], $loader->load('en', '*', '*')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 191: $loader = new FileLoader($files = m::mock(Filesystem::class), __DIR__); - Test @ line 202: public function testLoadMethodThrowExceptionWhenProvideInvalidJSON() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 202: public function testLoadMethodThrowExceptionWhenProvideInvalidJSON() - line 204: $loader = new FileLoader($files = m::mock(Filesystem::class), __DIR__); - line 205: $loader->addJsonPath(__DIR__.'/invalid'); - line 211: $this->expectException(\RuntimeException::class); - line 212: $loader->load('en', '*', '*'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 204: $loader = new FileLoader($files = m::mock(Filesystem::class), __DIR__); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 202: public function testLoadMethodThrowExceptionWhenProvideInvalidJSON() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 215: public function testAllRegisteredNamespaceReturnProperly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 215: public function testAllRegisteredNamespaceReturnProperly() - line 217: $loader = new FileLoader(m::mock(Filesystem::class), __DIR__); - line 218: $loader->addNamespace('namespace', 'foo'); - line 219: $loader->addNamespace('namespace2', 'bar'); - line 220: $this->assertEquals(['namespace' => 'foo', 'namespace2' => 'bar'], $loader->namespaces()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 217: $loader = new FileLoader(m::mock(Filesystem::class), __DIR__); - Test @ line 223: public function testAllAddedJsonPathsReturnProperly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 223: public function testAllAddedJsonPathsReturnProperly() - line 225: $loader = new FileLoader(m::mock(Filesystem::class), __DIR__); - line 228: $loader->addJsonPath($path1); - line 229: $loader->addJsonPath($path2); - line 230: $this->assertEquals([$path1, $path2], $loader->jsonPaths()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 225: $loader = new FileLoader(m::mock(Filesystem::class), __DIR__); - Test @ line 233: public function testAllAddedPathsReturnProperly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 233: public function testAllAddedPathsReturnProperly() - line 235: $loader = new FileLoader(m::mock(Filesystem::class), __DIR__); - line 238: $loader->addPath($path1); - line 239: $loader->addPath($path2); - line 240: $this->assertEquals([$path1, $path2], array_slice($loader->paths(), 1)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 235: $loader = new FileLoader(m::mock(Filesystem::class), __DIR__); ❌ tests/Translation/TranslationTranslatorTest.php - Test @ line 23: public function testHasMethodReturnsFalseWhenReturnedTranslationIsNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 20. Evidence: - line 23: public function testHasMethodReturnsFalseWhenReturnedTranslationIsNull() - line 25: $t = $this->getMockBuilder(Translator::class)->onlyMethods(['get'])->setConstructorArgs([$this->getLoader(), 'en'])->getMock(); - line 26: $t->expects($this->once())->method('get')->with($this->equalTo('foo'), $this->equalTo([]), $this->equalTo('bar'))->willReturn('foo'); - line 27: $this->assertFalse($t->has('foo', 'bar')); - line 29: $t = $this->getMockBuilder(Translator::class)->onlyMethods(['get'])->setConstructorArgs([$this->getLoader(), 'en', 'sp'])->getMock(); - line 30: $t->expects($this->once())->method('get')->with($this->equalTo('foo'), $this->equalTo([]), $this->equalTo('bar'))->willReturn('bar'); - line 31: $this->assertTrue($t->has('foo', 'bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 52: public function testGetMethodProperlyLoadsAndRetrievesItem() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 52: public function testGetMethodProperlyLoadsAndRetrievesItem() - line 54: $t = new Translator($this->getLoader(), 'en'); - line 55: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn([]); - line 56: $t->getLoader()->shouldReceive('load')->once()->with('en', 'bar', 'foo')->andReturn(['foo' => 'foo', 'baz' => 'breeze :foo', 'qux' => ['tree :foo', 'breeze :foo']]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 62: public function testGetMethodProperlyLoadsAndRetrievesArrayItem() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 62: public function testGetMethodProperlyLoadsAndRetrievesArrayItem() - line 64: $t = new Translator($this->getLoader(), 'en'); - line 65: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn([]); - line 66: $t->getLoader()->shouldReceive('load')->once()->with('en', 'bar', 'foo')->andReturn(['foo' => 'foo', 'baz' => 'breeze :foo', 'qux' => ['tree :foo', 'breeze :foo', 'beep' => ['rock' => 'tree :foo']]]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 72: public function testGetMethodForNonExistingReturnsSameKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 72: public function testGetMethodForNonExistingReturnsSameKey() - line 74: $t = new Translator($this->getLoader(), 'en'); - line 75: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn([]); - line 76: $t->getLoader()->shouldReceive('load')->once()->with('en', 'bar', 'foo')->andReturn(['foo' => 'foo', 'baz' => 'breeze :foo', 'qux' => ['tree :foo', 'breeze :foo']]); - line 77: $t->getLoader()->shouldReceive('load')->once()->with('en', 'unknown', 'foo')->andReturn([]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 83: public function testTransMethodProperlyLoadsAndRetrievesItemWithHTMLInTheMessage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 83: public function testTransMethodProperlyLoadsAndRetrievesItemWithHTMLInTheMessage() - line 85: $t = new Translator($this->getLoader(), 'en'); - line 86: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn([]); - line 87: $t->getLoader()->shouldReceive('load')->once()->with('en', 'foo', '*')->andReturn(['bar' => 'breeze

test

']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 91: public function testGetMethodProperlyLoadsAndRetrievesItemWithCapitalization() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 91: public function testGetMethodProperlyLoadsAndRetrievesItemWithCapitalization() - line 93: $t = $this->getMockBuilder(Translator::class)->onlyMethods([])->setConstructorArgs([$this->getLoader(), 'en'])->getMock(); - line 94: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn([]); - line 95: $t->getLoader()->shouldReceive('load')->once()->with('en', 'bar', 'foo')->andReturn(['foo' => 'foo', 'baz' => 'breeze :0 :Foo :BAR']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 100: public function testGetMethodProperlyLoadsAndRetrievesItemWithLongestReplacementsFirst() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 100: public function testGetMethodProperlyLoadsAndRetrievesItemWithLongestReplacementsFirst() - line 102: $t = new Translator($this->getLoader(), 'en'); - line 103: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn([]); - line 104: $t->getLoader()->shouldReceive('load')->once()->with('en', 'bar', 'foo')->andReturn(['foo' => 'foo', 'baz' => 'breeze :foo :foobar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 110: public function testGetMethodProperlyLoadsAndRetrievesItemForFallback() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 110: public function testGetMethodProperlyLoadsAndRetrievesItemForFallback() - line 112: $t = new Translator($this->getLoader(), 'en'); - line 113: $t->setFallback('lv'); - line 114: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn([]); - line 115: $t->getLoader()->shouldReceive('load')->once()->with('en', 'bar', 'foo')->andReturn([]); - line 116: $t->getLoader()->shouldReceive('load')->once()->with('lv', 'bar', 'foo')->andReturn(['foo' => 'foo', 'baz' => 'breeze :foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 121: public function testGetMethodProperlyLoadsAndRetrievesItemForGlobalNamespace() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 121: public function testGetMethodProperlyLoadsAndRetrievesItemForGlobalNamespace() - line 123: $t = new Translator($this->getLoader(), 'en'); - line 124: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn([]); - line 125: $t->getLoader()->shouldReceive('load')->once()->with('en', 'foo', '*')->andReturn(['bar' => 'breeze :foo']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 129: public function testChoiceMethodProperlyLoadsAndRetrievesItemForAnInt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 129: public function testChoiceMethodProperlyLoadsAndRetrievesItemForAnInt() - line 131: $t = $this->getMockBuilder(Translator::class)->onlyMethods(['get', 'localeForChoice'])->setConstructorArgs([$this->getLoader(), 'en'])->getMock(); - line 132: $t->expects($this->once())->method('get')->with($this->equalTo('foo'), $this->equalTo([]), $this->equalTo('en'))->willReturn('line'); - line 133: $t->expects($this->once())->method('localeForChoice')->with($this->equalTo('foo'), $this->equalTo(null))->willReturn('en'); - line 134: $t->setSelector($selector = m::mock(MessageSelector::class)); - line 137: $t->choice('foo', 10, ['replace']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 134: $t->setSelector($selector = m::mock(MessageSelector::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 129: public function testChoiceMethodProperlyLoadsAndRetrievesItemForAnInt() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 140: public function testChoiceMethodProperlyLoadsAndRetrievesItemForAFloat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 140: public function testChoiceMethodProperlyLoadsAndRetrievesItemForAFloat() - line 142: $t = $this->getMockBuilder(Translator::class)->onlyMethods(['get', 'localeForChoice'])->setConstructorArgs([$this->getLoader(), 'en'])->getMock(); - line 143: $t->expects($this->once())->method('get')->with($this->equalTo('foo'), $this->equalTo([]), $this->equalTo('en'))->willReturn('line'); - line 144: $t->expects($this->once())->method('localeForChoice')->with($this->equalTo('foo'), $this->equalTo(null))->willReturn('en'); - line 145: $t->setSelector($selector = m::mock(MessageSelector::class)); - line 148: $t->choice('foo', 1.2, ['replace']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 145: $t->setSelector($selector = m::mock(MessageSelector::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 140: public function testChoiceMethodProperlyLoadsAndRetrievesItemForAFloat() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 151: public function testChoiceMethodProperlyCountsCollectionsAndLoadsAndRetrievesItem() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 151: public function testChoiceMethodProperlyCountsCollectionsAndLoadsAndRetrievesItem() - line 153: $t = $this->getMockBuilder(Translator::class)->onlyMethods(['get', 'localeForChoice'])->setConstructorArgs([$this->getLoader(), 'en'])->getMock(); - line 154: $t->expects($this->exactly(2))->method('get')->with($this->equalTo('foo'), $this->equalTo([]), $this->equalTo('en'))->willReturn('line'); - line 155: $t->expects($this->exactly(2))->method('localeForChoice')->with($this->equalTo('foo'), $this->equalTo(null))->willReturn('en'); - line 156: $t->setSelector($selector = m::mock(MessageSelector::class)); - line 160: $t->choice('foo', $values, ['replace']); - line 163: $t->choice('foo', $values, ['replace']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 156: $t->setSelector($selector = m::mock(MessageSelector::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 151: public function testChoiceMethodProperlyCountsCollectionsAndLoadsAndRetrievesItem() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 166: public function testChoiceMethodProperlySelectsLocaleForChoose() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 166: public function testChoiceMethodProperlySelectsLocaleForChoose() - line 168: $t = $this->getMockBuilder(Translator::class)->onlyMethods(['get', 'hasForLocale'])->setConstructorArgs([$this->getLoader(), 'cs'])->getMock(); - line 169: $t->setFallback('en'); - line 170: $t->expects($this->once())->method('get')->with($this->equalTo('foo'), $this->equalTo([]), $this->equalTo('en'))->willReturn('line'); - line 171: $t->expects($this->once())->method('hasForLocale')->with($this->equalTo('foo'), $this->equalTo('cs'))->willReturn(false); - line 172: $t->setSelector($selector = m::mock(MessageSelector::class)); - line 175: $t->choice('foo', 10, ['replace']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 172: $t->setSelector($selector = m::mock(MessageSelector::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 166: public function testChoiceMethodProperlySelectsLocaleForChoose() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 178: public function testChoiceMethodProperlyUsesCustomCountReplacement() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 178: public function testChoiceMethodProperlyUsesCustomCountReplacement() - line 180: $t = $this->getMockBuilder(Translator::class)->onlyMethods(['get', 'localeForChoice'])->setConstructorArgs([$this->getLoader(), 'en'])->getMock(); - line 181: $t->expects($this->once())->method('get')->with($this->equalTo(':count foos'), $this->equalTo([]), $this->equalTo('en'))->willReturn('{1} :count foos|[2,*] :count foos'); - line 182: $t->expects($this->once())->method('localeForChoice')->with($this->equalTo(':count foos'), $this->equalTo(null))->willReturn('en'); - line 183: $t->setSelector($selector = m::mock(MessageSelector::class)); - line 186: $this->assertEquals('1,234 foos', $t->choice(':count foos', 1234, ['count' => '1,234'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 183: $t->setSelector($selector = m::mock(MessageSelector::class)); - Test @ line 189: public function testGetJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 189: public function testGetJson() - line 191: $t = new Translator($this->getLoader(), 'en'); - line 192: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn(['foo' => 'one']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 196: public function testGetJsonReplaces() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 196: public function testGetJsonReplaces() - line 198: $t = new Translator($this->getLoader(), 'en'); - line 199: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn(['foo :i:c :u' => 'bar :i:c :u']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 203: public function testGetJsonHasAtomicReplacements() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 203: public function testGetJsonHasAtomicReplacements() - line 205: $t = new Translator($this->getLoader(), 'en'); - line 206: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn(['Hello :foo!' => 'Hello :foo!']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 210: public function testGetJsonReplacesForAssociativeInput() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 210: public function testGetJsonReplacesForAssociativeInput() - line 212: $t = new Translator($this->getLoader(), 'en'); - line 213: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn(['foo :i :c' => 'bar :i :c']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 217: public function testGetJsonPreservesOrder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 217: public function testGetJsonPreservesOrder() - line 219: $t = new Translator($this->getLoader(), 'en'); - line 220: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn(['to :name I give :greeting' => ':greeting :name']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 224: public function testGetJsonForNonExistingJsonKeyLooksForRegularKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 224: public function testGetJsonForNonExistingJsonKeyLooksForRegularKeys() - line 226: $t = new Translator($this->getLoader(), 'en'); - line 227: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn([]); - line 228: $t->getLoader()->shouldReceive('load')->once()->with('en', 'foo', '*')->andReturn(['bar' => 'one']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 232: public function testGetJsonForNonExistingJsonKeyLooksForRegularKeysAndReplace() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 232: public function testGetJsonForNonExistingJsonKeyLooksForRegularKeysAndReplace() - line 234: $t = new Translator($this->getLoader(), 'en'); - line 235: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn([]); - line 236: $t->getLoader()->shouldReceive('load')->once()->with('en', 'foo', '*')->andReturn(['bar' => 'one :message']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 240: public function testGetJsonForNonExistingReturnsSameKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 240: public function testGetJsonForNonExistingReturnsSameKey() - line 242: $t = new Translator($this->getLoader(), 'en'); - line 243: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn([]); - line 244: $t->getLoader()->shouldReceive('load')->once()->with('en', 'Foo that bar', '*')->andReturn([]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 248: public function testGetJsonForNonExistingReturnsSameKeyAndReplaces() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 248: public function testGetJsonForNonExistingReturnsSameKeyAndReplaces() - line 250: $t = new Translator($this->getLoader(), 'en'); - line 251: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn([]); - line 252: $t->getLoader()->shouldReceive('load')->once()->with('en', 'foo :message', '*')->andReturn([]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 256: public function testEmptyFallbacks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 256: public function testEmptyFallbacks() - line 258: $t = new Translator($this->getLoader(), 'en'); - line 259: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn([]); - line 260: $t->getLoader()->shouldReceive('load')->once()->with('en', 'foo :message', '*')->andReturn([]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 264: public function testGetJsonReplacesWithStringable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 264: public function testGetJsonReplacesWithStringable() - line 266: $t = new Translator($this->getLoader(), 'en'); - line 267: $t->getLoader() - line 280: $t->stringable(function (\Illuminate\Support\Carbon $carbon) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 289: public function testGetJsonReplacesWithEnums() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 289: public function testGetJsonReplacesWithEnums() - line 291: $t = new Translator($this->getLoader(), 'en'); - line 292: $t->getLoader() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 318: public function testTagReplacements() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 318: public function testTagReplacements() - line 320: $t = new Translator($this->getLoader(), 'en'); - line 322: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn([]); - line 323: $t->getLoader()->shouldReceive('load')->once()->with('en', 'We have some nice documentation', '*')->andReturn([]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 336: public function testTagReplacementsHandleMultipleOfSameTag() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 336: public function testTagReplacementsHandleMultipleOfSameTag() - line 338: $t = new Translator($this->getLoader(), 'en'); - line 340: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn([]); - line 341: $t->getLoader()->shouldReceive('load')->once()->with('en', 'bold something else also bold', '*')->andReturn([]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 354: public function testDetermineLocalesUsingMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 354: public function testDetermineLocalesUsingMethod() - line 356: $t = new Translator($this->getLoader(), 'en'); - line 357: $t->determineLocalesUsing(function ($locales) { - line 362: $t->getLoader()->shouldReceive('load')->once()->with('en', '*', '*')->andReturn([]); - line 363: $t->getLoader()->shouldReceive('load')->once()->with('en', 'foo', '*')->andReturn([]); - line 364: $t->getLoader()->shouldReceive('load')->once()->with('lz', 'foo', '*')->andReturn([]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationAddFailureTest.php - Test @ line 31: public function testAddFailureIsFunctional() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 31: public function testAddFailureIsFunctional() - line 34: $validator = $this->makeValidator(); - line 35: $validator->addFailure($attribute, 'not_in'); - line 36: $messages = json_decode($validator->messages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 31: public function testAddFailureIsFunctional() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Validation/ValidationAnyOfRuleTest.php - Test @ line 26: public function testBasicValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 26: public function testBasicValidation() - line 28: $rule = Rule::anyOf([ - line 38: $this->assertTrue($validator->passes()); - line 41: $this->assertTrue($validator->passes()); - line 44: $this->assertFalse($validator->passes()); - line 49: $this->assertTrue($validator->passes()); - line 54: $this->assertFalse($validator->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 72: public function testBasicStringValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 72: public function testBasicStringValidation() - line 74: $rule = Rule::anyOf([ - line 84: $this->assertTrue($validator->passes()); - line 87: $this->assertTrue($validator->passes()); - line 90: $this->assertFalse($validator->passes()); - line 95: $this->assertTrue($validator->passes()); - line 100: $this->assertFalse($validator->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 118: public function testTaggedUnionObjects() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 118: public function testTaggedUnionObjects() - line 125: ], ['data' => Rule::anyOf($this->taggedUnionRules)]); - line 126: $this->assertTrue($validator->passes()); - line 134: $this->assertFalse($validator->passes()); - line 142: $this->assertTrue($validator->passes()); - line 150: $this->assertFalse($validator->passes()); - line 158: $this->assertFalse($validator->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 169: public function testNestedValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 169: public function testNestedValidation() - line 180: $this->assertTrue($validator->passes()); - line 181: $validator->setRules($this->dotNotationNestedRules); - line 182: $this->assertTrue($validator->passes()); - line 194: $this->assertTrue($validator->passes()); - line 195: $validator->setRules($this->dotNotationNestedRules); - line 196: $this->assertTrue($validator->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 224: public function testStarRuleSimple() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 224: public function testStarRuleSimple() - line 227: 'persons.*.age' => ['required', Rule::anyOf([ - line 239: $this->assertFalse($validator->passes()); - line 247: $this->assertFalse($validator->passes()); - line 255: $this->assertTrue($validator->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 258: public function testStarRuleNested() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 258: public function testStarRuleNested() - line 261: 'persons.*.birth' => ['required', Rule::anyOf([ - line 272: $this->assertFalse($validator->passes()); - line 279: $this->assertFalse($validator->passes()); - line 286: $this->assertTrue($validator->passes()); - line 296: $this->assertTrue($validator->passes()); - line 306: $this->assertFalse($validator->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 352: public function testCustomMessageUsingDotNotationAndFqcnWorks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 352: public function testCustomMessageUsingDotNotationAndFqcnWorks() - line 361: 'string' => Rule::anyOf(['string']), - line 370: $this->assertTrue($v->fails()); - line 375: ], $v->messages()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationArrayRuleTest.php - Test @ line 15: public function testItCorrectlyFormatsAStringVersionOfTheRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 15: public function testItCorrectlyFormatsAStringVersionOfTheRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 51: public function testArrayValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 51: public function testArrayValidation() - line 55: $v = new Validator($trans, ['foo' => 'not an array'], ['foo' => Rule::array()]); - line 56: $this->assertTrue($v->fails()); - line 59: $this->assertTrue($v->fails()); - line 62: $this->assertTrue($v->passes()); - line 65: $this->assertTrue($v->passes()); - line 68: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationDatabasePresenceVerifierTest.php - Test @ line 19: public function testBasicCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 19: public function testBasicCount() - line 21: $verifier = new DatabasePresenceVerifier($db = m::mock(ConnectionResolverInterface::class)); - line 22: $verifier->setConnection('connection'); - line 35: $this->assertEquals(100, $verifier->getCount('table', 'column', 'value', null, null, $extra)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 21: $verifier = new DatabasePresenceVerifier($db = m::mock(ConnectionResolverInterface::class)); - line 23: $db->shouldReceive('connection')->once()->with('connection')->andReturn($conn = m::mock(stdClass::class)); - line 24: $conn->shouldReceive('table')->once()->with('table')->andReturn($builder = m::mock(stdClass::class)); - Test @ line 38: public function testBasicCountWithClosures() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 38: public function testBasicCountWithClosures() - line 40: $verifier = new DatabasePresenceVerifier($db = m::mock(ConnectionResolverInterface::class)); - line 41: $verifier->setConnection('connection'); - line 47: $query->where('closure', 1); - line 55: $builder->shouldReceive('where')->with(m::type(Closure::class))->andReturnUsing(function () use ($builder, $closure) { - line 61: $this->assertEquals(100, $verifier->getCount('table', 'column', 'value', null, null, $extra)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 40: $verifier = new DatabasePresenceVerifier($db = m::mock(ConnectionResolverInterface::class)); - line 42: $db->shouldReceive('connection')->once()->with('connection')->andReturn($conn = m::mock(stdClass::class)); - line 43: $conn->shouldReceive('table')->once()->with('table')->andReturn($builder = m::mock(stdClass::class)); - Test @ line 64: public function testGetCountWithValidExcludeId() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 64: public function testGetCountWithValidExcludeId() - line 66: $verifier = new DatabasePresenceVerifier($db = m::mock(ConnectionResolverInterface::class)); - line 67: $verifier->setConnection('connection'); - line 75: $this->assertEquals(100, $verifier->getCount('table', 'column', 'value', 123, 'id', [])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 66: $verifier = new DatabasePresenceVerifier($db = m::mock(ConnectionResolverInterface::class)); - line 68: $db->shouldReceive('connection')->once()->with('connection')->andReturn($conn = m::mock(stdClass::class)); - line 69: $conn->shouldReceive('table')->once()->with('table')->andReturn($builder = m::mock(stdClass::class)); ❌ tests/Validation/ValidationDateRuleTest.php - Test @ line 15: public function testDefaultDateRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 15: public function testDefaultDateRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 24: public function testDateFormatRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 24: public function testDateFormatRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 30: public function testAfterTodayRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 30: public function testAfterTodayRule() - line 32: $rule = Rule::date()->afterToday(); - line 35: $rule = Rule::date()->todayOrAfter(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 30: public function testAfterTodayRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 39: public function testBeforeTodayRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 39: public function testBeforeTodayRule() - line 41: $rule = Rule::date()->beforeToday(); - line 44: $rule = Rule::date()->todayOrBefore(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 39: public function testBeforeTodayRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 48: public function testAfterSpecificDateRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 48: public function testAfterSpecificDateRule() - line 50: $rule = Rule::date()->after(Carbon::parse('2024-01-01')); - line 53: $rule = Rule::date()->format('d/m/Y')->after(Carbon::parse('2024-01-01')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 48: public function testAfterSpecificDateRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 57: public function testBeforeSpecificDateRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 57: public function testBeforeSpecificDateRule() - line 59: $rule = Rule::date()->before(Carbon::parse('2024-01-01')); - line 62: $rule = Rule::date()->format('d/m/Y')->before(Carbon::parse('2024-01-01')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 57: public function testBeforeSpecificDateRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 66: public function testAfterOrEqualSpecificDateRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 66: public function testAfterOrEqualSpecificDateRule() - line 68: $rule = Rule::date()->afterOrEqual(Carbon::parse('2024-01-01')); - line 71: $rule = Rule::date()->format('d/m/Y')->afterOrEqual(Carbon::parse('2024-01-01')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 66: public function testAfterOrEqualSpecificDateRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 75: public function testBeforeOrEqualSpecificDateRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 75: public function testBeforeOrEqualSpecificDateRule() - line 77: $rule = Rule::date()->beforeOrEqual(Carbon::parse('2024-01-01')); - line 80: $rule = Rule::date()->format('d/m/Y')->beforeOrEqual(Carbon::parse('2024-01-01')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 75: public function testBeforeOrEqualSpecificDateRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 84: public function testBetweenDatesRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 84: public function testBetweenDatesRule() - line 86: $rule = Rule::date()->between(Carbon::parse('2024-01-01'), Carbon::parse('2024-02-01')); - line 89: $rule = Rule::date()->format('d/m/Y')->between(Carbon::parse('2024-01-01'), Carbon::parse('2024-02-01')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 84: public function testBetweenDatesRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 93: public function testBetweenOrEqualDatesRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 93: public function testBetweenOrEqualDatesRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 99: public function testChainedRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 99: public function testChainedRules() - line 102: ->format('Y-m-d') - line 108: ->format('Y-m-d') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 99: public function testChainedRules() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 118: public function testDateValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 118: public function testDateValidation() - line 122: $rule = Rule::date(); - line 132: $validator->errors()->first('date') - line 141: $this->assertEmpty($validator->errors()->first('date')); - line 143: $rule = Rule::date()->between('2024-01-01', '2025-01-01'); - line 151: $this->assertEmpty($validator->errors()->first('date')); - line 153: $rule = Rule::date()->between('2024/01/01', '2024/02/01')->format('Y/m/d'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationDimensionsRuleTest.php - Test @ line 15: public function testItCorrectlyFormatsAStringVersionOfTheRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 15: public function testItCorrectlyFormatsAStringVersionOfTheRule() - line 21: $rule = Rule::dimensions()->width(200)->height(100); - line 25: $rule = Rule::dimensions()->maxWidth(1000)->maxHeight(500)->ratio(3 / 2); - line 33: $rule = Rule::dimensions()->minWidth(300)->minHeight(400); - line 38: ->when(true, function ($rule) { - line 47: ->minRatio(1 / 2) - line 52: ->ratioBetween(min: 1 / 2, max: 1 / 3); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 15: public function testItCorrectlyFormatsAStringVersionOfTheRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 56: public function testItCorrectlyFormatsWithSpecialValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 56: public function testItCorrectlyFormatsWithSpecialValues() - line 62: $rule = Rule::dimensions()->width(-100)->height(-200); - line 66: $rule = Rule::dimensions()->width('300')->height('400'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 56: public function testItCorrectlyFormatsWithSpecialValues() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 71: public function testDimensionsRuleMaintainsCorrectOrder() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 71: public function testDimensionsRuleMaintainsCorrectOrder() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 78: public function testOverridingValues() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 78: public function testOverridingValues() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 85: public function testRatioBetweenOverridesMinAndMaxRatio() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 85: public function testRatioBetweenOverridesMinAndMaxRatio() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 92: public function testGeneratesTheCorrectValidationMessages() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 92: public function testGeneratesTheCorrectValidationMessages() - line 95: ->width(100)->height(100) - line 110: $validator->errors()->first('image') - line 121: $validator->errors()->first('image') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationEmailRuleTest.php - Test @ line 23: public function testBasic() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 23: public function testBasic() - line 25: $this->fails( - line 31: $this->fails( - line 37: $this->fails( - line 43: $this->fails( - line 49: $this->passes( - line 54: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testBasic() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 128: public function testRfcCompliantStrict() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 128: public function testRfcCompliantStrict() - line 134: $this->fails( - line 140: $this->fails( - line 146: $this->fails( - line 152: $this->fails( - line 158: $this->passes( - line 163: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 128: public function testRfcCompliantStrict() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 170: public function testValidateMxRecord() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 170: public function testValidateMxRecord() - line 172: $this->fails( - line 178: $this->fails( - line 184: $this->passes( - line 189: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 170: public function testValidateMxRecord() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 195: public function testPreventSpoofing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 195: public function testPreventSpoofing() - line 197: $this->fails( - line 203: $this->fails( - line 210: $this->fails( - line 216: $this->fails( - line 222: $this->passes( - line 227: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 195: public function testPreventSpoofing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 243: public function testWithNativeValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 243: public function testWithNativeValidation() - line 245: $this->fails( - line 251: $this->fails( - line 257: $this->passes( - line 262: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 243: public function testWithNativeValidation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 268: public function testWithNativeValidationAllowUnicode() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 268: public function testWithNativeValidationAllowUnicode() - line 270: $this->fails( - line 276: $this->fails( - line 282: $this->passes( - line 287: $this->passes( - line 292: $this->passes( - line 297: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 268: public function testWithNativeValidationAllowUnicode() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 303: public function testRfcCompliantNonStrict() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 303: public function testRfcCompliantNonStrict() - line 305: $this->fails( - line 311: $this->fails( - line 317: $this->fails( - line 323: $this->fails( - line 329: $this->passes( - line 334: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 303: public function testRfcCompliantNonStrict() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 361: public function testEmailsThatPassOnRfcCompliantButFailOnStrict($email) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 361: public function testEmailsThatPassOnRfcCompliantButFailOnStrict($email) - line 363: $this->passes( - line 368: $this->fails( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 361: public function testEmailsThatPassOnRfcCompliantButFailOnStrict($email) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 390: public function testEmailsThatPassOnBothRfcCompliantAndStrict($email) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 390: public function testEmailsThatPassOnBothRfcCompliantAndStrict($email) - line 392: $this->passes( - line 397: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 390: public function testEmailsThatPassOnBothRfcCompliantAndStrict($email) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 420: public function testEmailsThatFailOnBothRfcCompliantAndStrict($email) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 420: public function testEmailsThatFailOnBothRfcCompliantAndStrict($email) - line 422: $this->fails( - line 428: $this->fails( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 420: public function testEmailsThatFailOnBothRfcCompliantAndStrict($email) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 450: public function testEmailsThatPassOnBothRfcCompliantAndRfcCompliantStrict($email) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 450: public function testEmailsThatPassOnBothRfcCompliantAndRfcCompliantStrict($email) - line 452: $this->passes( - line 457: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 450: public function testEmailsThatPassOnBothRfcCompliantAndRfcCompliantStrict($email) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 465: public function testEmailsThatFailWithNativeValidationAsciiPassUnicode($email) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 465: public function testEmailsThatFailWithNativeValidationAsciiPassUnicode($email) - line 467: $this->fails( - line 473: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 465: public function testEmailsThatFailWithNativeValidationAsciiPassUnicode($email) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 486: public function testEmailsThatFailOnBothWithNativeValidationAsciiAndUnicode($email) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 486: public function testEmailsThatFailOnBothWithNativeValidationAsciiAndUnicode($email) - line 488: $this->fails( - line 494: $this->fails( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 486: public function testEmailsThatFailOnBothWithNativeValidationAsciiAndUnicode($email) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 506: public function testEmailsThatPassBothWithNativeValidationAsciiAndUnicode($email) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 506: public function testEmailsThatPassBothWithNativeValidationAsciiAndUnicode($email) - line 508: $this->passes( - line 513: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 506: public function testEmailsThatPassBothWithNativeValidationAsciiAndUnicode($email) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 530: public function testEmailsThatFailWithNativeValidationAsciiPassRfcCompliant($email) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 530: public function testEmailsThatFailWithNativeValidationAsciiPassRfcCompliant($email) - line 532: $this->fails( - line 538: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 530: public function testEmailsThatFailWithNativeValidationAsciiPassRfcCompliant($email) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 565: public function testEmailsThatPassWithNativeValidationAndRfcCompliant($email) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 565: public function testEmailsThatPassWithNativeValidationAndRfcCompliant($email) - line 567: $this->passes( - line 572: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 565: public function testEmailsThatPassWithNativeValidationAndRfcCompliant($email) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 587: public function testEmailsThatFailWithNativeValidationAndRfcCompliant($email) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 587: public function testEmailsThatFailWithNativeValidationAndRfcCompliant($email) - line 589: $this->fails( - line 595: $this->fails( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 587: public function testEmailsThatFailWithNativeValidationAndRfcCompliant($email) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 602: public function testNativeValidationVsRfcCompliant() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 602: public function testNativeValidationVsRfcCompliant() - line 609: $this->passes( - line 614: $this->fails( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 602: public function testNativeValidationVsRfcCompliant() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 627: public function testEmailsThatPassNativeValidationFailRfcCompliantStrict($email) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 627: public function testEmailsThatPassNativeValidationFailRfcCompliantStrict($email) - line 629: $this->passes( - line 634: $this->fails( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 627: public function testEmailsThatPassNativeValidationFailRfcCompliantStrict($email) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 644: public function testEmailsThatFailNativeValidationPassRfcCompliantStrict($email) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 644: public function testEmailsThatFailNativeValidationPassRfcCompliantStrict($email) - line 646: $this->fails( - line 652: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 644: public function testEmailsThatFailNativeValidationPassRfcCompliantStrict($email) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 661: public function testEmailsThatPassBothNativeValidationAndRfcCompliantStrict($email) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 661: public function testEmailsThatPassBothNativeValidationAndRfcCompliantStrict($email) - line 663: $this->passes( - line 668: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 661: public function testEmailsThatPassBothNativeValidationAndRfcCompliantStrict($email) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 686: public function testEmailsThatFailBothNativeValidationAndRfcCompliantStrict($email) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 686: public function testEmailsThatFailBothNativeValidationAndRfcCompliantStrict($email) - line 688: $this->fails( - line 694: $this->fails( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 686: public function testEmailsThatFailBothNativeValidationAndRfcCompliantStrict($email) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 702: public function testCombiningRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 702: public function testCombiningRules() - line 704: $this->passes( - line 709: $this->passes( - line 714: $this->fails( - line 720: $this->fails( - line 726: $this->passes( - line 731: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 702: public function testCombiningRules() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 773: public function testMacro() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 773: public function testMacro() - line 776: return static::default()->rules('ends_with:@laravel.com'); - line 779: $this->fails( - line 785: $this->fails( - line 791: $this->passes( - line 796: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 773: public function testMacro() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 802: public function testItCanSetDefaultUsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 802: public function testItCanSetDefaultUsing() - line 804: $this->assertInstanceOf(Email::class, Email::default()); - line 808: $this->passes( - line 814: return (new Email())->preventSpoofing(); - line 817: $this->fails( - line 824: return Rule::email()->rfcCompliant(); - line 827: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 802: public function testItCanSetDefaultUsing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 843: public function testValidationMessages() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 843: public function testValidationMessages() - line 846: return Rule::email()->preventSpoofing(); - line 851: $this->fails( - line 857: $this->fails( - line 864: $this->fails( - line 871: $this->fails( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 843: public function testValidationMessages() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Validation/ValidationEnumRuleTest.php - Test @ line 69: public function testValidationFailsWhenProvidingNoExistingCases() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 69: public function testValidationFailsWhenProvidingNoExistingCases() - line 81: $this->assertTrue($v->fails()); - line 82: $this->assertEquals(['The selected status is invalid.'], $v->messages()->get('status')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 85: public function testValidationPassesForAllCasesUntilEitherOnlyOrExceptIsPassed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 85: public function testValidationPassesForAllCasesUntilEitherOnlyOrExceptIsPassed() - line 96: 'status_2' => (new Enum(PureEnum::class))->only([])->except([]), - line 101: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 105: public function testValidationPassesWhenOnlyCasesProvided( Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 105: public function testValidationPassesWhenOnlyCasesProvided( - line 116: 'status' => (new Enum(IntegerStatus::class))->only($only), - line 120: $this->assertSame($expected, $v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 124: public function testValidationPassesWhenExceptCasesProvided( Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 124: public function testValidationPassesWhenExceptCasesProvided( - line 135: 'status' => (new Enum(IntegerStatus::class))->except($except), - line 139: $this->assertSame($expected, $v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 142: public function testOnlyHasHigherOrderThanExcept() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 142: public function testOnlyHasHigherOrderThanExcept() - line 151: ->only(PureEnum::one) - line 156: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 159: public function testValidationFailsWhenProvidingDifferentType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 159: public function testValidationFailsWhenProvidingDifferentType() - line 171: $this->assertTrue($v->fails()); - line 172: $this->assertEquals(['The selected status is invalid.'], $v->messages()->get('status')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 190: public function testValidationFailsWhenProvidingNull() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 190: public function testValidationFailsWhenProvidingNull() - line 202: $this->assertTrue($v->fails()); - line 203: $this->assertEquals(['The selected status is invalid.'], $v->messages()->get('status')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 236: public function testValidationFailsWhenProvidingStringToIntegerType() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 236: public function testValidationFailsWhenProvidingStringToIntegerType() - line 248: $this->assertTrue($v->fails()); - line 249: $this->assertEquals(['The selected status is invalid.'], $v->messages()->get('status')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 252: public function testValidationFailsWhenUsingDifferentCase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 252: public function testValidationFailsWhenUsingDifferentCase() - line 264: $this->assertTrue($v->fails()); - line 265: $this->assertEquals(['The selected status is invalid.'], $v->messages()->get('status')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 280: public function testCustomMessageUsingDotNotationAndFqcnWorks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 280: public function testCustomMessageUsingDotNotationAndFqcnWorks() - line 298: $this->assertTrue($v->fails()); - line 303: ], $v->messages()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationExceptionTest.php - Test @ line 13: public function testExceptionSummarizesZeroErrors() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 13: public function testExceptionSummarizesZeroErrors() - line 15: $exception = $this->getException([], []); - line 17: $this->assertSame('The given data was invalid.', $exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 20: public function testExceptionSummarizesOneError() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 20: public function testExceptionSummarizesOneError() - line 22: $exception = $this->getException([], ['foo' => 'required']); - line 24: $this->assertSame('validation.required', $exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 27: public function testExceptionSummarizesTwoErrors() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 27: public function testExceptionSummarizesTwoErrors() - line 29: $exception = $this->getException([], ['foo' => 'required', 'bar' => 'required']); - line 31: $this->assertSame('validation.required (and 1 more error)', $exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 34: public function testExceptionSummarizesThreeOrMoreErrors() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 34: public function testExceptionSummarizesThreeOrMoreErrors() - line 36: $exception = $this->getException([], [ - line 42: $this->assertSame('validation.required (and 2 more errors)', $exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 45: public function testExceptionTranslatedSummarizesTwoErrors() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 45: public function testExceptionTranslatedSummarizesTwoErrors() - line 47: $translator = $this->getTranslator('uk', [ - line 58: $exception = $this->getException([], [ - line 63: $this->assertSame('validation.required (та ще 1 помилка)', $exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 66: public function testExceptionTranslatedSummarizesThreeOrMoreErrors() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 66: public function testExceptionTranslatedSummarizesThreeOrMoreErrors() - line 68: $translator = $this->getTranslator('uk', [ - line 79: $exception = $this->getException([], [ - line 85: $this->assertSame('validation.required (та ще 2 помилки)', $exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 88: public function testExceptionTranslatedSummarizesFiveOrMoreErrors() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 88: public function testExceptionTranslatedSummarizesFiveOrMoreErrors() - line 90: $translator = $this->getTranslator('uk', [ - line 101: $exception = $this->getException([], [ - line 110: $this->assertSame('validation.required (та ще 5 помилок)', $exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 113: public function testExceptionErrorZeroErrors() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 113: public function testExceptionErrorZeroErrors() - line 115: $exception = $this->getException([], []); - line 117: $this->assertSame([], $exception->errors()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 120: public function testExceptionErrorOneError() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 120: public function testExceptionErrorOneError() - line 122: $exception = $this->getException([], ['foo' => 'required']); - line 124: $this->assertSame(['foo' => ['validation.required']], $exception->errors()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 127: public function testExceptionStatusOneError() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 127: public function testExceptionStatusOneError() - line 129: $exception = $this->getException([], ['foo' => 'required']); - line 130: $exception->status(500); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 135: public function testExceptionErrorBagOneError() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 135: public function testExceptionErrorBagOneError() - line 137: $exception = $this->getException([], ['foo' => 'required']); - line 138: $exception->errorBag('milwad'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 143: public function testExceptionRedirectToOneError() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 143: public function testExceptionRedirectToOneError() - line 145: $exception = $this->getException([], ['foo' => 'required']); - line 146: $exception->redirectTo('https://google.com'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 151: public function testExceptionGetResponseOneError() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 151: public function testExceptionGetResponseOneError() - line 153: $exception = $this->getException([], ['foo' => 'required']); - line 155: $this->assertNull($exception->getResponse()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 151: public function testExceptionGetResponseOneError() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 158: public function testGetExceptionClassFromValidator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 158: public function testGetExceptionClassFromValidator() - line 160: $validator = $this->getValidator(); - line 162: $exception = $validator->getException(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 158: public function testGetExceptionClassFromValidator() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Validation/ValidationExcludeIfTest.php - Test @ line 16: public function testItReturnsStringVersionOfRuleWhenCast() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 16: public function testItReturnsStringVersionOfRuleWhenCast() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 16: public function testItReturnsStringVersionOfRuleWhenCast() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 39: public function testItValidatesCallableAndBooleanAreAcceptableArguments() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 39: public function testItValidatesCallableAndBooleanAreAcceptableArguments() - line 48: $this->fail('The ExcludeIf constructor must not accept '.gettype($condition)); - line 50: $this->assertEquals('The provided condition must be a callable or boolean.', $exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 55: public function testItThrowsExceptionIfRuleIsNotSerializable() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 55: public function testItThrowsExceptionIfRuleIsNotSerializable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 64: public function testExcludeIfRuleValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 64: public function testExcludeIfRuleValidation() - line 75: $this->assertTrue($v->passes()); - line 76: $this->assertSame(['bar' => 'BAR'], $v->validated()); - line 79: $this->assertTrue($v->passes()); - line 80: $this->assertSame(['bar' => 'BAR'], $v->validated()); - line 83: $this->assertTrue($v->passes()); - line 84: $this->assertSame(['bar' => 'BAR'], $v->validated()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationExistsRuleTest.php - Test @ line 36: public function testItCorrectlyFormatsAStringVersionOfTheRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 36: public function testItCorrectlyFormatsAStringVersionOfTheRule() - line 39: $rule->where('foo', 'bar'); - line 43: $rule->where('foo', 'bar'); - line 47: $rule->where('foo', 'bar'); - line 51: $rule->where('foo', 'bar'); - line 55: $rule->where('foo', 'bar'); - line 59: $rule->where('foo', 'bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 36: public function testItCorrectlyFormatsAStringVersionOfTheRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 75: public function testItChoosesValidRecordsUsingWhereInRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 75: public function testItChoosesValidRecordsUsingWhereInRule() - line 78: $rule->whereIn('type', ['foo', 'bar']); - line 85: $trans = $this->getIlluminateArrayTranslator(); - line 87: $v->setPresenceVerifier(new DatabasePresenceVerifier(Eloquent::getConnectionResolver())); - line 89: $v->setData(['id' => 1]); - line 90: $this->assertTrue($v->passes()); - line 91: $v->setData(['id' => 2]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 105: public function testItChoosesValidRecordsUsingWhereNotInRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 105: public function testItChoosesValidRecordsUsingWhereNotInRule() - line 108: $rule->whereNotIn('type', ['foo', 'bar']); - line 115: $trans = $this->getIlluminateArrayTranslator(); - line 117: $v->setPresenceVerifier(new DatabasePresenceVerifier(Eloquent::getConnectionResolver())); - line 119: $v->setData(['id' => 1]); - line 120: $this->assertFalse($v->passes()); - line 121: $v->setData(['id' => 2]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 135: public function testItChoosesValidRecordsUsingConditionalModifiers() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 135: public function testItChoosesValidRecordsUsingConditionalModifiers() - line 138: $rule->when(true, function ($rule) { - line 141: $rule->unless(true, function ($rule) { - line 150: $trans = $this->getIlluminateArrayTranslator(); - line 152: $v->setPresenceVerifier(new DatabasePresenceVerifier(Eloquent::getConnectionResolver())); - line 154: $v->setData(['id' => 1]); - line 155: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 170: public function testItChoosesValidRecordsUsingWhereNotInAndWhereNotInRulesTogether() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 17. Evidence: - line 170: public function testItChoosesValidRecordsUsingWhereNotInAndWhereNotInRulesTogether() - line 173: $rule->whereIn('type', ['foo', 'bar', 'baz'])->whereNotIn('type', ['foo', 'bar']); - line 181: $trans = $this->getIlluminateArrayTranslator(); - line 183: $v->setPresenceVerifier(new DatabasePresenceVerifier(Eloquent::getConnectionResolver())); - line 185: $v->setData(['id' => 1]); - line 186: $this->assertFalse($v->passes()); - line 187: $v->setData(['id' => 2]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 203: public function testItChoosesValidRecordsUsingWhereNotRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 203: public function testItChoosesValidRecordsUsingWhereNotRule() - line 207: $rule->whereNot('type', 'baz'); - line 215: $trans = $this->getIlluminateArrayTranslator(); - line 217: $v->setPresenceVerifier(new DatabasePresenceVerifier(Eloquent::getConnectionResolver())); - line 219: $v->setData(['id' => 3]); - line 220: $this->assertFalse($v->passes()); - line 222: $v->setData(['id' => 4]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 226: public function testItIgnoresSoftDeletes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 226: public function testItIgnoresSoftDeletes() - line 229: $rule->withoutTrashed(); - line 233: $rule->withoutTrashed('softdeleted_at'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 226: public function testItIgnoresSoftDeletes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 237: public function testItOnlyTrashedSoftDeletes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 237: public function testItOnlyTrashedSoftDeletes() - line 240: $rule->onlyTrashed(); - line 244: $rule->onlyTrashed('softdeleted_at'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 237: public function testItOnlyTrashedSoftDeletes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 248: public function testItIsAPartOfListRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 248: public function testItIsAPartOfListRules() - line 252: User::create(['id' => '1', 'type' => 'foo']); - line 256: $trans = $this->getIlluminateArrayTranslator(); - line 258: $v->setPresenceVerifier(new DatabasePresenceVerifier(Eloquent::getConnectionResolver())); - line 260: $v->setData(['id' => 1]); - line 261: $this->assertTrue($v->passes()); - line 262: $v->setData(['id' => 2]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationFactoryTest.php - Test @ line 20: public function testMakeMethodCreatesValidValidator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 18. Evidence: - line 20: public function testMakeMethodCreatesValidValidator() - line 22: $translator = m::mock(TranslatorInterface::class); - line 24: $validator = $factory->make(['foo' => 'bar'], ['baz' => 'boom']); - line 25: $this->assertEquals($translator, $validator->getTranslator()); - line 26: $this->assertEquals(['foo' => 'bar'], $validator->getData()); - line 27: $this->assertEquals(['baz' => ['boom']], $validator->getRules()); - line 39: $factory->extend('foo', $noop1); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 22: $translator = m::mock(TranslatorInterface::class); - line 29: $presence = m::mock(PresenceVerifierInterface::class); - line 49: $presence = m::mock(PresenceVerifierInterface::class); - Test @ line 60: public function testValidateCallsValidateOnTheValidator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 60: public function testValidateCallsValidateOnTheValidator() - line 62: $validator = m::mock(Validator::class); - line 72: $validated = $factory->validate( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 62: $validator = m::mock(Validator::class); - line 63: $translator = m::mock(TranslatorInterface::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 60: public function testValidateCallsValidateOnTheValidator() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 80: public function testCustomResolverIsCalled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 80: public function testCustomResolverIsCalled() - line 83: $translator = m::mock(TranslatorInterface::class); - line 85: $factory->resolver(function ($translator, $data, $rules) { - line 90: $validator = $factory->make(['foo' => 'bar'], ['baz' => 'boom']); - line 93: $this->assertEquals($translator, $validator->getTranslator()); - line 94: $this->assertEquals(['foo' => 'bar'], $validator->getData()); - line 95: $this->assertEquals(['baz' => ['boom']], $validator->getRules()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 86: $_SERVER['__validator.factory'] = true; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 82: unset($_SERVER['__validator.factory']); - line 96: unset($_SERVER['__validator.factory']); - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 83: $translator = m::mock(TranslatorInterface::class); - Test @ line 99: public function testValidateMethodCanBeCalledPublicly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 99: public function testValidateMethodCanBeCalledPublicly() - line 101: $translator = m::mock(TranslatorInterface::class); - line 103: $factory->extend('foo', function ($attribute, $value, $parameters, $validator) { - line 107: $validator = $factory->make(['bar' => ['baz']], ['bar' => 'foo']); - line 108: $this->assertTrue($validator->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 101: $translator = m::mock(TranslatorInterface::class); - Test @ line 111: public function testExcludeAndIncludeUnvalidatedArrayKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 111: public function testExcludeAndIncludeUnvalidatedArrayKeys() - line 113: $translator = m::mock(TranslatorInterface::class); - line 117: $validator1 = $factory->make(['key' => ['val']], ['key' => 'required']); - line 120: $factory->excludeUnvalidatedArrayKeys(); - line 121: $validator2 = $factory->make(['key' => ['val']], ['key' => 'required']); - line 124: $factory->includeUnvalidatedArrayKeys(); - line 125: $validator3 = $factory->make(['key' => ['val']], ['key' => 'required']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 113: $translator = m::mock(TranslatorInterface::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 111: public function testExcludeAndIncludeUnvalidatedArrayKeys() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 144: public function testSetContainer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 144: public function testSetContainer() - line 146: $translator = m::mock(TranslatorInterface::class); - line 150: $this->assertNull($factory->getContainer()); - line 152: $this->assertSame($container, $factory->setContainer($container)->getContainer()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 146: $translator = m::mock(TranslatorInterface::class); ❌ tests/Validation/ValidationFileRuleTest.php - Test @ line 19: public function testBasic() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 19: public function testBasic() - line 21: $this->fails( - line 27: $this->passes( - line 32: $this->passes(File::default(), null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 19: public function testBasic() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 65: public function testSingleMimetype() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 65: public function testSingleMimetype() - line 67: $this->fails( - line 73: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 65: public function testSingleMimetype() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 79: public function testMultipleMimeTypes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 79: public function testMultipleMimeTypes() - line 81: $this->fails( - line 87: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 79: public function testMultipleMimeTypes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 93: public function testSingleMime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 93: public function testSingleMime() - line 95: $this->fails( - line 101: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 93: public function testSingleMime() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 107: public function testMultipleMimes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 107: public function testMultipleMimes() - line 109: $this->fails( - line 115: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 107: public function testMultipleMimes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 124: public function testMixOfMimetypesAndMimes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 124: public function testMixOfMimetypesAndMimes() - line 126: $this->fails( - line 132: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 124: public function testMixOfMimetypesAndMimes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 138: public function testSingleExtension() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 138: public function testSingleExtension() - line 140: $this->fails( - line 146: $this->fails( - line 152: $this->fails( - line 158: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 138: public function testSingleExtension() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 164: public function testMultipleExtensions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 164: public function testMultipleExtensions() - line 166: $this->fails( - line 172: $this->fails( - line 178: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 164: public function testMultipleExtensions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 184: public function testImage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 184: public function testImage() - line 186: $this->fails( - line 192: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 184: public function testImage() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 198: public function testImageFailsOnSvgByDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 198: public function testImageFailsOnSvgByDefault() - line 200: $maliciousSvgFileWithXSS = UploadedFile::fake()->createWithContent( - line 210: $this->fails( - line 215: $this->fails( - line 221: $this->passes( - line 225: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 198: public function testImageFailsOnSvgByDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 231: public function testSize() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 231: public function testSize() - line 233: $this->fails( - line 242: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 231: public function testSize() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 248: public function testBetween() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 248: public function testBetween() - line 250: $this->fails( - line 259: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 248: public function testBetween() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 270: public function testMin() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 270: public function testMin() - line 272: $this->fails( - line 278: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 270: public function testMin() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 288: public function testMinWithHumanReadableSize() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 288: public function testMinWithHumanReadableSize() - line 290: $this->fails( - line 296: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 288: public function testMinWithHumanReadableSize() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 306: public function testMax() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 306: public function testMax() - line 308: $this->fails( - line 314: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 306: public function testMax() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 324: public function testMaxWithHumanReadableSize() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 324: public function testMaxWithHumanReadableSize() - line 326: $this->fails( - line 332: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 324: public function testMaxWithHumanReadableSize() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 342: public function testMaxWithHumanReadableSizeAndMultipleValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 342: public function testMaxWithHumanReadableSizeAndMultipleValue() - line 344: $this->fails( - line 350: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 342: public function testMaxWithHumanReadableSizeAndMultipleValue() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 360: public function testEncoding() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 360: public function testEncoding() - line 363: $this->fails( - line 370: $this->fails( - line 376: $this->passes( - line 381: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 360: public function testEncoding() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 390: public function testEncodingWithInvalidParameter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 390: public function testEncodingWithInvalidParameter() - line 392: $this->expectException(\InvalidArgumentException::class); - line 393: $this->expectExceptionMessage('Validation rule encoding parameter [FOOBAR] is not a valid encoding.'); - line 396: $this->fails( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 390: public function testEncodingWithInvalidParameter() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 403: public function testMacro() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 403: public function testMacro() - line 406: return static::default()->rules('mimes:txt,csv'); - line 409: $this->fails( - line 415: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 403: public function testMacro() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 439: public function testItCanSetDefaultUsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 439: public function testItCanSetDefaultUsing() - line 441: $this->assertInstanceOf(File::class, File::default()); - line 444: return File::types('txt')->max(12 * 1024); - line 447: $this->fails( - line 456: File::defaults(File::image()->between(1024, 2048)); - line 458: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 439: public function testItCanSetDefaultUsing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 464: public function testFileSizeConversionWithDifferentUnits() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 464: public function testFileSizeConversionWithDifferentUnits() - line 466: $this->passes( - line 471: $this->passes( - line 476: $this->passes( - line 481: $this->expectException(\InvalidArgumentException::class); - line 482: File::image()->size('10xyz'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 464: public function testFileSizeConversionWithDifferentUnits() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Validation/ValidationForEachTest.php - Test @ line 13: public function testForEachCallbacksCanProperlySegmentRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 13: public function testForEachCallbacksCanProperlySegmentRules() - line 24: 'items.*' => Rule::forEach(function () { - line 29: $trans = $this->getIlluminateArrayTranslator(); - line 33: $this->assertFalse($v->passes()); - line 38: ], $v->getMessageBag()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 41: public function testForEachCallbacksCanBeRecursivelyNested() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 41: public function testForEachCallbacksCanBeRecursivelyNested() - line 52: 'items.*' => Rule::forEach(function () { - line 61: $trans = $this->getIlluminateArrayTranslator(); - line 65: $this->assertFalse($v->passes()); - line 70: ], $v->getMessageBag()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 73: public function testForEachCallbacksCanReturnMultipleValidationRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 73: public function testForEachCallbacksCanReturnMultipleValidationRules() - line 94: 'items.*' => Rule::forEach(function () { - line 108: $trans = $this->getIlluminateArrayTranslator(); - line 112: $this->assertFalse($v->passes()); - line 123: ], $v->getMessageBag()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 126: public function testForEachCallbacksCanReturnArraysOfValidationRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 126: public function testForEachCallbacksCanReturnArraysOfValidationRules() - line 137: 'items.*' => Rule::forEach(function () { - line 142: $trans = $this->getIlluminateArrayTranslator(); - line 146: $this->assertFalse($v->passes()); - line 152: ], $v->getMessageBag()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 155: public function testForEachCallbacksCanReturnDifferentRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 155: public function testForEachCallbacksCanReturnDifferentRules() - line 176: 'items.*' => Rule::forEach(function () { - line 189: $trans = $this->getIlluminateArrayTranslator(); - line 193: $this->assertFalse($v->passes()); - line 200: ], $v->getMessageBag()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 203: public function testForEachCallbacksDoNotBreakRegexRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 203: public function testForEachCallbacksDoNotBreakRegexRules() - line 212: 'items.*' => Rule::forEach(function () { - line 217: $trans = $this->getIlluminateArrayTranslator(); - line 221: $this->assertFalse($v->passes()); - line 225: ], $v->getMessageBag()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 228: public function testForEachCallbacksCanContainMultipleRegexRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 228: public function testForEachCallbacksCanContainMultipleRegexRules() - line 237: 'items.*' => Rule::forEach(function () { - line 245: $trans = $this->getIlluminateArrayTranslator(); - line 249: $this->assertFalse($v->passes()); - line 256: ], $v->getMessageBag()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 259: public function testConditionalRulesCanBeAddedToForEachWithAssociativeArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 259: public function testConditionalRulesCanBeAddedToForEachWithAssociativeArray() - line 262: $this->getIlluminateArrayTranslator(), - line 278: ], $v->getMessageBag()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 281: public function testConditionalRulesCanBeAddedToForEachWithList() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 281: public function testConditionalRulesCanBeAddedToForEachWithList() - line 284: $this->getIlluminateArrayTranslator(), - line 299: ], $v->getMessageBag()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 302: public function testConditionalRulesCanBeAddedToForEachWithObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 302: public function testConditionalRulesCanBeAddedToForEachWithObject() - line 305: $this->getIlluminateArrayTranslator(), - line 319: ], $v->getMessageBag()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 322: public function testForEachWithEmptyAndNullValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 322: public function testForEachWithEmptyAndNullValues() - line 333: 'items.*' => Rule::forEach(function () { - line 341: $v = new Validator($this->getIlluminateArrayTranslator(), $data, $rules); - line 342: $this->assertFalse($v->passes()); - line 349: $v->getMessageBag()->toArray() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationImageFileRuleTest.php - Test @ line 19: public function testDimensions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 19: public function testDimensions() - line 21: $this->fails( - line 27: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 19: public function testDimensions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 33: public function testDimensionsWithCustomImageSizeMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 33: public function testDimensionsWithCustomImageSizeMethod() - line 35: $this->fails( - line 41: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 33: public function testDimensionsWithCustomImageSizeMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 47: public function testDimensionWithTheRatioMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 47: public function testDimensionWithTheRatioMethod() - line 49: $this->fails( - line 55: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 47: public function testDimensionWithTheRatioMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 61: public function testDimensionWithTheMinRatioMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 61: public function testDimensionWithTheMinRatioMethod() - line 63: $this->fails( - line 69: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 61: public function testDimensionWithTheMinRatioMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 75: public function testDimensionWithTheMaxRatioMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 75: public function testDimensionWithTheMaxRatioMethod() - line 77: $this->fails( - line 83: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 75: public function testDimensionWithTheMaxRatioMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 89: public function testDimensionWithTheRatioBetweenMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 89: public function testDimensionWithTheRatioBetweenMethod() - line 91: $this->fails( - line 97: $this->passes( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 89: public function testDimensionWithTheRatioBetweenMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Validation/ValidationInArrayKeysTest.php - Test @ line 12: public function testInArrayKeysValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 12: public function testInArrayKeysValidation() - line 14: $trans = $this->getIlluminateArrayTranslator(); - line 18: $this->assertTrue($v->passes()); - line 22: $this->assertTrue($v->passes()); - line 26: $this->assertTrue($v->fails()); - line 30: $this->assertTrue($v->fails()); - line 34: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 37: public function testInArrayKeysValidationWithNestedArrays() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 37: public function testInArrayKeysValidationWithNestedArrays() - line 39: $trans = $this->getIlluminateArrayTranslator(); - line 48: $this->assertTrue($v->passes()); - line 58: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 61: public function testInArrayKeysValidationErrorMessage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 61: public function testInArrayKeysValidationErrorMessage() - line 63: $trans = $this->getIlluminateArrayTranslator(); - line 64: $trans->addLines([ - line 69: $this->assertFalse($v->passes()); - line 72: $v->messages()->first('foo') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationInRuleTest.php - Test @ line 17: public function testItCorrectlyFormatsAStringVersionOfTheRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 17: public function testItCorrectlyFormatsAStringVersionOfTheRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 76: public function testInRuleValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 76: public function testInRuleValidation() - line 80: $v = new Validator($trans, ['x' => 'foo'], ['x' => Rule::in('foo', 'bar')]); - line 81: $this->assertTrue($v->passes()); - line 84: $this->assertTrue($v->passes()); - line 87: $this->assertFalse($v->passes()); - line 90: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationInvokableRuleTest.php - Test @ line 16: public function testItCanPass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 16: public function testItCanPass() - line 18: $trans = $this->getIlluminateArrayTranslator(); - line 29: $this->assertTrue($validator->passes()); - line 30: $this->assertSame([], $validator->messages()->messages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 33: public function testItCanFail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 33: public function testItCanFail() - line 35: $trans = $this->getIlluminateArrayTranslator(); - line 46: $this->assertTrue($validator->fails()); - line 51: ], $validator->messages()->messages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 54: public function testItCanReturnMultipleErrorMessages() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 54: public function testItCanReturnMultipleErrorMessages() - line 56: $trans = $this->getIlluminateArrayTranslator(); - line 68: $this->assertTrue($validator->fails()); - line 74: ], $validator->messages()->messages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 77: public function testItCanTranslateMessages() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 77: public function testItCanTranslateMessages() - line 79: $trans = $this->getIlluminateArrayTranslator(); - line 80: $trans->addLines(['validation.translated-error' => 'Translated error message.'], 'en'); - line 85: $fail('validation.translated-error')->translate(); - line 91: $this->assertTrue($validator->fails()); - line 96: ], $validator->messages()->messages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 99: public function testItPerformsReplacementsWhenTranslating() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 99: public function testItPerformsReplacementsWhenTranslating() - line 101: $trans = $this->getIlluminateArrayTranslator(); - line 102: $trans->addLines(['validation.translated-error' => 'attribute: :attribute input: :input position: :position index: :index baz: :baz'], 'en'); - line 108: $fail('validation.translated-error')->translate([ - line 117: $this->assertTrue($validator->fails()); - line 122: ], $validator->messages()->messages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 125: public function testItLooksForLanguageFileCustomisations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 125: public function testItLooksForLanguageFileCustomisations() - line 127: $trans = $this->getIlluminateArrayTranslator(); - line 128: $trans->addLines(['validation.translated-error' => 'attribute: :attribute'], 'en'); - line 129: $trans->addLines(['validation.attributes.foo' => 'email address'], 'en'); - line 135: $fail('validation.translated-error')->translate(); - line 142: $this->assertTrue($validator->fails()); - line 147: ], $validator->messages()->messages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 150: public function testItCanSpecifyLocaleWhenTranslating() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 150: public function testItCanSpecifyLocaleWhenTranslating() - line 152: $trans = $this->getIlluminateArrayTranslator(); - line 153: $trans->addLines(['validation.translated-error' => 'English'], 'en'); - line 154: $trans->addLines(['validation.translated-error' => 'French'], 'fr'); - line 159: $fail('validation.translated-error')->translate([], 'en'); - line 160: $fail('validation.translated-error')->translate([], 'fr'); - line 166: $this->assertTrue($validator->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 175: public function testItCanAccessDataDuringValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 175: public function testItCanAccessDataDuringValidation() - line 177: $trans = $this->getIlluminateArrayTranslator(); - line 197: $this->assertTrue($validator->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 204: public function testItCanAccessValidatorDuringValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 204: public function testItCanAccessValidatorDuringValidation() - line 206: $trans = $this->getIlluminateArrayTranslator(); - line 227: $this->assertTrue($validator->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 231: public function testItCanBeExplicit() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 231: public function testItCanBeExplicit() - line 233: $trans = $this->getIlluminateArrayTranslator(); - line 246: $this->assertTrue($validator->passes()); - line 247: $this->assertSame([], $validator->messages()->messages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 250: public function testItCanBeImplicit() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 250: public function testItCanBeImplicit() - line 252: $trans = $this->getIlluminateArrayTranslator(); - line 265: $this->assertFalse($validator->passes()); - line 270: ], $validator->messages()->messages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 273: public function testItIsExplicitByDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 273: public function testItIsExplicitByDefault() - line 275: $trans = $this->getIlluminateArrayTranslator(); - line 286: $this->assertTrue($validator->passes()); - line 287: $this->assertSame([], $validator->messages()->messages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 290: public function testItCanSpecifyTheValidationErrorKeyForTheErrorMessage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 290: public function testItCanSpecifyTheValidationErrorKeyForTheErrorMessage() - line 292: $trans = $this->getIlluminateArrayTranslator(); - line 304: $this->assertFalse($validator->passes()); - line 312: ], $validator->messages()->messages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 315: public function testItCanTranslateWithChoices() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 315: public function testItCanTranslateWithChoices() - line 317: $trans = $this->getIlluminateArrayTranslator(); - line 318: $trans->addLines(['validation.translated-error' => 'There is one error.|There are many errors.'], 'en'); - line 323: $fail('validation.translated-error')->translateChoice(2); - line 329: $this->assertTrue($validator->fails()); - line 334: ], $validator->messages()->messages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 337: public function testExplicitRuleCanUseInlineValidationMessages() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 337: public function testExplicitRuleCanUseInlineValidationMessages() - line 339: $trans = $this->getIlluminateArrayTranslator(); - line 352: $this->assertFalse($validator->passes()); - line 357: ], $validator->messages()->messages()); - line 361: $this->assertFalse($validator->passes()); - line 366: ], $validator->messages()->messages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 369: public function testImplicitRuleCanUseInlineValidationMessages() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 369: public function testImplicitRuleCanUseInlineValidationMessages() - line 371: $trans = $this->getIlluminateArrayTranslator(); - line 384: $this->assertFalse($validator->passes()); - line 389: ], $validator->messages()->messages()); - line 393: $this->assertFalse($validator->passes()); - line 398: ], $validator->messages()->messages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 401: public function testItCanReturnInvokableRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 401: public function testItCanReturnInvokableRule() - line 411: $invokableValidationRule = InvokableValidationRule::make($rule); - line 413: $this->assertSame($rule, $invokableValidationRule->invokable()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationNotInRuleTest.php - Test @ line 17: public function testItCorrectlyFormatsAStringVersionOfTheRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 17: public function testItCorrectlyFormatsAStringVersionOfTheRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 72: public function testNotInRuleValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 72: public function testNotInRuleValidation() - line 76: $v = new Validator($trans, ['x' => 'foo'], ['x' => Rule::notIn('bar', 'baz')]); - line 77: $this->assertTrue($v->passes()); - line 80: $this->assertTrue($v->passes()); - line 83: $this->assertFalse($v->passes()); - line 86: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationNotPwnedVerifierTest.php - Test @ line 23: public function testEmptyValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 23: public function testEmptyValues() - line 25: $httpFactory = m::mock(HttpFactory::class); - line 29: $this->assertFalse($verifier->verify([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 25: $httpFactory = m::mock(HttpFactory::class); - Test @ line 36: public function testApiResponseGoesWrong() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 36: public function testApiResponseGoesWrong() - line 38: $httpFactory = m::mock(HttpFactory::class); - line 69: $this->assertTrue($verifier->verify([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 38: $httpFactory = m::mock(HttpFactory::class); - line 39: $response = m::mock(Response::class); - line 41: $httpFactory = m::mock(HttpFactory::class); - Test @ line 75: public function testApiGoesDown() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 75: public function testApiGoesDown() - line 77: $httpFactory = m::mock(HttpFactory::class); - line 102: $this->assertTrue($verifier->verify([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 77: $httpFactory = m::mock(HttpFactory::class); - line 78: $response = m::mock(Response::class); - Test @ line 108: public function testDnsDown() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 108: public function testDnsDown() - line 110: $container = Container::getInstance(); - line 115: $container->bind(ExceptionHandler::class, function () use ($exceptionHandler) { - line 136: ->andThrow($exception); - line 139: $this->assertTrue($verifier->verify([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 113: $exceptionHandler = m::mock(ExceptionHandler::class); - line 119: $httpFactory = m::mock(HttpFactory::class); ❌ tests/Validation/ValidationNumericRuleTest.php - Test @ line 14: public function testDefaultNumericRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 14: public function testDefaultNumericRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 23: public function testBetweenRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 23: public function testBetweenRule() - line 25: $rule = Rule::numeric()->between(1, 10); - line 28: $rule = Rule::numeric()->between(1.5, 10.5); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testBetweenRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 32: public function testDecimalRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 32: public function testDecimalRule() - line 34: $rule = Rule::numeric()->decimal(2, 4); - line 37: $rule = Rule::numeric()->decimal(2); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 32: public function testDecimalRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 41: public function testDifferentRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 41: public function testDifferentRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 47: public function testDigitsRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 47: public function testDigitsRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 53: public function testDigitsBetweenRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 53: public function testDigitsBetweenRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 59: public function testGreaterThanRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 59: public function testGreaterThanRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 65: public function testGreaterThanOrEqualRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 65: public function testGreaterThanOrEqualRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 71: public function testIntegerRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 71: public function testIntegerRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 77: public function testLessThanRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 77: public function testLessThanRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 83: public function testLessThanOrEqualRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 83: public function testLessThanOrEqualRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 89: public function testMaxRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 89: public function testMaxRule() - line 91: $rule = Rule::numeric()->max(10); - line 94: $rule = Rule::numeric()->max(10.5); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 89: public function testMaxRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 98: public function testMaxDigitsRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 98: public function testMaxDigitsRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 104: public function testMinRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 104: public function testMinRule() - line 106: $rule = Rule::numeric()->min(10); - line 109: $rule = Rule::numeric()->min(10.5); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 104: public function testMinRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 113: public function testMinDigitsRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 113: public function testMinDigitsRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 119: public function testMultipleOfRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 119: public function testMultipleOfRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 125: public function testSameRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 125: public function testSameRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 131: public function testSizeRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 131: public function testSizeRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 137: public function testChainedRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 137: public function testChainedRules() - line 140: ->integer() - line 147: ->decimal(2) Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 137: public function testChainedRules() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 157: public function testNumericValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 37. Evidence: - line 157: public function testNumericValidation() - line 161: $rule = Rule::numeric(); - line 171: $validator->errors()->first('numeric') - line 180: $this->assertEmpty($validator->errors()->first('numeric')); - line 182: $rule = Rule::numeric()->between(10, 100); - line 190: $this->assertEmpty($validator->errors()->first('numeric')); - line 192: $rule = Rule::numeric()->different('some_field'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 353: public function testUniquenessValidation() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 353: public function testUniquenessValidation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Validation/ValidationPasswordRuleTest.php - Test @ line 17: public function testString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 17: public function testString() - line 19: $this->fails(Password::min(3), [['foo' => 'bar'], ['foo']], [ - line 24: $this->fails(Password::min(3), [1234567, 545], [ - line 28: $this->passes(Password::min(3), ['abcd', '454qb^', '接2133手田']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 17: public function testString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 31: public function testMin() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 31: public function testMin() - line 33: $this->fails(new Password(8), ['a', 'ff', '12'], [ - line 37: $this->fails(Password::min(3), ['a', 'ff', '12'], [ - line 41: $this->passes(Password::min(3), ['333', 'abcd']); - line 42: $this->passes(new Password(8), ['88888888']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 31: public function testMin() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 45: public function testMax() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 45: public function testMax() - line 47: $this->fails(Password::min(2)->max(4), ['aaaaa', '11111111'], [ - line 51: $this->passes(Password::min(2)->max(3), ['aa', '111']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 45: public function testMax() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 54: public function testConditional() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 54: public function testConditional() - line 57: $rule = (new Password(8))->when($is_privileged_user, function ($rule) { - line 61: $this->fails($rule, ['aaaaaaaa', '11111111'], [ - line 66: $rule = (new Password(8))->when($is_privileged_user, function ($rule) { - line 70: $this->passes($rule, ['aaaaaaaa', '11111111']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 54: public function testConditional() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 73: public function testMixedCase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 73: public function testMixedCase() - line 75: $this->fails(Password::min(2)->mixedCase(), ['nn', 'MM'], [ - line 79: $this->passes(Password::min(2)->mixedCase(), ['Nn', 'Mn', 'âA']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 73: public function testMixedCase() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 82: public function testLetters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 82: public function testLetters() - line 84: $this->fails(Password::min(2)->letters(), ['11', '22', '^^', '``', '**'], [ - line 88: $this->passes(Password::min(2)->letters(), ['1a', 'b2', 'â1', '1 京都府']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 82: public function testLetters() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 91: public function testNumbers() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 91: public function testNumbers() - line 93: $this->fails(Password::min(2)->numbers(), ['aa', 'bb', ' a', '京都府'], [ - line 97: $this->passes(Password::min(2)->numbers(), ['1a', 'b2', '00', '京都府 1']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 91: public function testNumbers() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 100: public function testDefaultRules() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 100: public function testDefaultRules() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 108: public function testSymbols() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 108: public function testSymbols() - line 110: $this->fails(Password::min(2)->symbols(), ['ab', '1v'], [ - line 114: $this->passes(Password::min(2)->symbols(), ['n^d', 'd^!', 'âè$', '金廿土弓竹中;']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 108: public function testSymbols() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 117: public function testUncompromised() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 117: public function testUncompromised() - line 119: $this->fails(Password::min(2)->uncompromised(), [ - line 131: $this->passes(Password::min(2)->uncompromised(9999999), [ - line 135: $this->passes(Password::min(2)->uncompromised(), [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 117: public function testUncompromised() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 146: public function testMessagesOrder() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 17. Evidence: - line 146: public function testMessagesOrder() - line 149: return ['required', Password::min(8)->mixedCase()->numbers()]; - line 152: $this->fails($makeRules(), [null], [ - line 156: $this->fails($makeRules(), ['foo', 'azdazd'], [ - line 162: $this->fails($makeRules(), ['1231231'], [ - line 167: $this->fails($makeRules(), ['4564654564564'], [ - line 171: $this->fails($makeRules(), ['aaaaaaaaa', 'TJQSJQSIUQHS'], [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 222: public function testItCanUseDefault() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 222: public function testItCanUseDefault() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 227: public function testItCanSetDefaultUsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 227: public function testItCanSetDefaultUsing() - line 229: $this->assertInstanceOf(Password::class, Password::default()); - line 232: $password2 = Password::min(2)->mixedCase(); - line 238: $this->passes(Password::default(), ['abcd', '454qb^', '接2133手田']); - line 244: $this->passes(Password::default(), ['Nn', 'Mn', 'âA']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 250: public function testItCannotSetDefaultUsingGivenString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 250: public function testItCannotSetDefaultUsingGivenString() - line 252: $this->expectException('InvalidArgumentException'); - line 253: $this->expectExceptionMessage('given callback should be callable'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 250: public function testItCannotSetDefaultUsingGivenString() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 258: public function testItPassesWithValidDataIfTheSameValidationRulesAreReused() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 258: public function testItPassesWithValidDataIfTheSameValidationRulesAreReused() - line 261: 'password' => Password::default(), - line 270: $this->assertFalse($v->passes()); - line 278: $this->assertTrue($v1->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 281: public function testCustomMessages() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 281: public function testCustomMessages() - line 284: 'my_password' => Password::min(6)->letters(), - line 299: $this->assertFalse($v->passes()); - line 303: $v->messages()->toArray() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 307: public function testPassesWithCustomRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 307: public function testPassesWithCustomRules() - line 328: $this->passes(Password::min(2)->rules($closureRule), ['aa']); - line 329: $this->passes(Password::min(2)->rules([$closureRule]), ['aa']); - line 330: $this->passes(Password::min(2)->rules($ruleObject), ['aa']); - line 331: $this->passes(Password::min(2)->rules([$closureRule, $ruleObject]), ['aa']); - line 333: $this->fails(Password::min(2)->rules($closureRule), ['ab'], [ - line 337: $this->fails(Password::min(2)->rules($ruleObject), ['ab'], [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 307: public function testPassesWithCustomRules() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 342: public function testCanRetrieveAllRulesApplied() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 342: public function testCanRetrieveAllRulesApplied() - line 345: ->max(4) - line 351: $this->assertSame($password->appliedRules(), [ - line 365: $this->assertSame($password->appliedRules(), [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 378: public function testRequired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 378: public function testRequired() - line 380: $this->fails(Password::required(), [null], [ - line 384: $this->passes(Password::required(), ['12345678', 'password123']); - line 386: $this->fails([Password::required()], ['short'], [ - line 390: $this->passes(Password::required()->mixedCase()->numbers(), ['Password1']); - line 393: $this->passes([Password::required()], ['12345678', 'password123']); - line 395: $this->fails([Password::required()], ['short'], [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 378: public function testRequired() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 414: public function testSometimes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 414: public function testSometimes() - line 416: $this->fails(Password::sometimes(), ['short'], [ - line 420: $this->passes(Password::sometimes(), ['12345678', 'password123']); - line 422: $this->fails([Password::sometimes()], ['12345'], [ - line 426: $this->passes(Password::sometimes()->mixedCase()->numbers(), ['Password1']); - line 429: $this->passes([Password::sometimes()], ['12345678', 'password123']); - line 431: $this->fails([Password::sometimes()], ['12345'], [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 414: public function testSometimes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 446: public function testRequiredWithMissingValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 446: public function testRequiredWithMissingValue() - line 451: ['password' => [Password::required()]] - line 454: $this->assertFalse($v->passes()); - line 455: $this->assertArrayHasKey('password', $v->messages()->toArray()); - line 456: $this->assertStringContainsString('required', $v->messages()->first('password')); - line 465: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 468: public function testNullableWithEmptyString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 468: public function testNullableWithEmptyString() - line 473: ['password' => ['nullable', Password::min(8)->letters()->numbers()]] - line 476: $this->assertTrue($v->passes()); - line 481: ['password' => ['nullable', Password::min(8)->letters()->numbers()]] - line 484: $this->assertTrue($v->passes()); - line 489: ['password' => ['nullable', Password::sometimes()->min(8)->letters()->numbers()]] - line 492: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationProhibitedIfTest.php - Test @ line 16: public function testItReturnsStringVersionOfRuleWhenCast() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 16: public function testItReturnsStringVersionOfRuleWhenCast() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 16: public function testItReturnsStringVersionOfRuleWhenCast() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 39: public function testItValidatesCallableAndBooleanAreAcceptableArguments() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 39: public function testItValidatesCallableAndBooleanAreAcceptableArguments() - line 48: $this->fail('The ProhibitedIf constructor must not accept '.gettype($condition)); - line 50: $this->assertEquals('The provided condition must be a callable or boolean.', $exception->getMessage()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 55: public function testItThrowsExceptionIfRuleIsNotSerializable() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 55: public function testItThrowsExceptionIfRuleIsNotSerializable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 64: public function testProhibitedIfRuleValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 64: public function testProhibitedIfRuleValidation() - line 71: $this->assertTrue($v->passes()); - line 74: $this->assertTrue($v->passes()); - line 77: $this->assertTrue($v->passes()); - line 80: $this->assertTrue($v->fails()); - line 85: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationRequiredIfTest.php - Test @ line 15: public function testItClosureReturnsFormatsAStringVersionOfTheRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 15: public function testItClosureReturnsFormatsAStringVersionOfTheRule() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 15: public function testItClosureReturnsFormatsAStringVersionOfTheRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 38: public function testItOnlyCallableAndBooleanAreAcceptableArgumentsOfTheRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 38: public function testItOnlyCallableAndBooleanAreAcceptableArgumentsOfTheRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 49: public function testItReturnedRuleIsNotSerializable() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 49: public function testItReturnedRuleIsNotSerializable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 58: public function testRequiredIfRuleValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 58: public function testRequiredIfRuleValidation() - line 65: $this->assertTrue($v->passes()); - line 68: $this->assertTrue($v->fails()); - line 71: $this->assertTrue($v->passes()); - line 74: $this->assertTrue($v->passes()); - line 79: $this->assertTrue($v->passes()); - line 84: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationRuleCanTest.php - Test @ line 57: public function testValidationFails() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 57: public function testValidationFails() - line 59: $this->gate()->define('update-company', function ($user, $value) { - line 71: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 74: public function testValidationPasses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 74: public function testValidationPasses() - line 76: $this->gate()->define('update-company', function ($user, $class, $model, $value) { - line 90: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 93: public function testCustomMessageUsingDotNotationAndFqcnWorks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 93: public function testCustomMessageUsingDotNotationAndFqcnWorks() - line 111: $this->assertTrue($v->fails()); - line 116: ], $v->messages()->all()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationRuleContainsTest.php - Test @ line 15: public function testItCorrectlyFormatsAStringVersionOfTheRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 15: public function testItCorrectlyFormatsAStringVersionOfTheRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 45: public function testContainsValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 45: public function testContainsValidation() - line 50: $v = new Validator($trans, ['roles' => 'admin'], ['roles' => Rule::contains('editor')]); - line 51: $this->assertTrue($v->fails()); - line 55: $this->assertTrue($v->passes()); - line 59: $this->assertTrue($v->fails()); - line 63: $this->assertTrue($v->fails()); - line 67: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationRuleDoesntContainTest.php - Test @ line 15: public function testItCorrectlyFormatsAStringVersionOfTheRule() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 15: public function testItCorrectlyFormatsAStringVersionOfTheRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 45: public function testDoesntContainValidation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 45: public function testDoesntContainValidation() - line 50: $v = new Validator($trans, ['roles' => 'admin'], ['roles' => Rule::doesntContain('admin')]); - line 51: $this->assertTrue($v->fails()); - line 55: $this->assertTrue($v->fails()); - line 59: $this->assertTrue($v->fails()); - line 63: $this->assertTrue($v->fails()); - line 67: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationRuleParserTest.php - Test @ line 72: public function testEmptyRulesCanBeExploded() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 72: public function testEmptyRulesCanBeExploded() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 315: public function testExplodeHandlesSegmentingNestedRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 315: public function testExplodeHandlesSegmentingNestedRules() - line 325: 'items.*' => Rule::forEach(function () { - line 330: $results = $parser->explode($rules); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 315: public function testExplodeHandlesSegmentingNestedRules() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 375: public function testExplodeHandlesDateRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 375: public function testExplodeHandlesDateRule() - line 382: 'date' => Rule::date(), - line 385: $results = $parser->explode($rules); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 375: public function testExplodeHandlesDateRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 394: public function testExplodeHandlesDateRuleWithAdditionalRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 394: public function testExplodeHandlesDateRuleWithAdditionalRules() - line 401: 'date' => Rule::date()->after('today'), - line 404: $results = $parser->explode($rules); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 394: public function testExplodeHandlesDateRuleWithAdditionalRules() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 434: public function testExplodeHandlesNumericRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 434: public function testExplodeHandlesNumericRule() - line 441: 'number' => Rule::numeric(), - line 444: $results = $parser->explode($rules); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 434: public function testExplodeHandlesNumericRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 453: public function testExplodeHandlesNumericRuleWithAdditionalRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 453: public function testExplodeHandlesNumericRuleWithAdditionalRules() - line 460: 'number' => Rule::numeric()->max(100), - line 463: $results = $parser->explode($rules); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 453: public function testExplodeHandlesNumericRuleWithAdditionalRules() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/Validation/ValidationUniqueRuleTest.php - Test @ line 29: public function testItCorrectlyFormatsAStringVersionOfTheRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 22. Evidence: - line 29: public function testItCorrectlyFormatsAStringVersionOfTheRule() - line 32: $rule->where('foo', 'bar'); - line 36: $rule->where('foo', 'bar'); - line 40: $rule->where('foo', 'bar'); - line 44: $rule->where('foo', 'bar'); - line 48: $rule->where('foo', 'bar'); - line 52: $rule->ignore('Taylor, Otwell', 'id_column'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 29: public function testItCorrectlyFormatsAStringVersionOfTheRule() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 107: public function testItIgnoresSoftDeletes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 107: public function testItIgnoresSoftDeletes() - line 110: $rule->withoutTrashed(); - line 114: $rule->withoutTrashed('softdeleted_at'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 107: public function testItIgnoresSoftDeletes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 118: public function testItOnlyTrashedSoftDeletes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 118: public function testItOnlyTrashedSoftDeletes() - line 121: $rule->onlyTrashed(); - line 125: $rule->onlyTrashed('softdeleted_at'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 118: public function testItOnlyTrashedSoftDeletes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 129: public function testItHandlesNullPrimaryKeyInIgnoreModel() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 129: public function testItHandlesNullPrimaryKeyInIgnoreModel() - line 134: $rule->ignore($model); - line 135: $rule->where('foo', 'bar'); - line 139: $rule->ignore($model, 'id_column'); - line 140: $rule->where('foo', 'bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 129: public function testItHandlesNullPrimaryKeyInIgnoreModel() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 144: public function testItHandlesWhereWithSpecialValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 144: public function testItHandlesWhereWithSpecialValues() - line 147: $rule->where('foo', null); - line 151: $rule->whereNot('foo', 'bar'); - line 155: $rule->whereNull('foo'); - line 159: $rule->whereNotNull('foo'); - line 163: $rule->where('foo', 0); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 144: public function testItHandlesWhereWithSpecialValues() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 167: public function testItValidatesUniqueRuleWithWhereInAndWhereNotIn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 167: public function testItValidatesUniqueRuleWithWhereInAndWhereNotIn() - line 169: EloquentModelStub::create(['id_column' => 1, 'type' => 'admin']); - line 175: $rule->whereIn(column: 'type', values: ['admin', 'moderator', 'editor']) - line 178: $trans = $this->getIlluminateArrayTranslator(); - line 180: $v->setPresenceVerifier(new DatabasePresenceVerifier(Model::getConnectionResolver())); - line 182: $v->setData(['id_column' => 1]); - line 183: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidationValidatorTest.php - Test @ line 53: public function testNestedErrorMessagesAreRetrievedFromLocalArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 53: public function testNestedErrorMessagesAreRetrievedFromLocalArray() - line 55: $trans = $this->getIlluminateArrayTranslator(); - line 75: $this->assertFalse($v->passes()); - line 76: $this->assertSame('post name is required', $v->errors()->all()[0]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 79: public function testNestedArrayErrorMessagesAreRetrievedFromLocalArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 79: public function testNestedArrayErrorMessagesAreRetrievedFromLocalArray() - line 81: $trans = $this->getIlluminateArrayTranslator(); - line 105: $this->assertFalse($v->passes()); - line 106: $this->assertSame('post name is required', $v->errors()->all()[0]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 109: public function testSometimesWorksOnNestedArrays() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 109: public function testSometimesWorksOnNestedArrays() - line 111: $trans = $this->getIlluminateArrayTranslator(); - line 113: $this->assertFalse($v->passes()); - line 114: $this->assertEquals(['foo.bar.baz' => ['Required' => []]], $v->failed()); - line 116: $trans = $this->getIlluminateArrayTranslator(); - line 118: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 121: public function testAfterCallbacksAreCalledWithValidatorInstance() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 121: public function testAfterCallbacksAreCalledWithValidatorInstance() - line 123: $trans = $this->getIlluminateArrayTranslator(); - line 125: $v->setContainer(new Container); - line 126: $v->after(function ($validator) { - line 133: $this->assertFalse($v->passes()); - line 135: $this->assertTrue($v->errors()->has('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 127: $_SERVER['__validator.after.test'] = true; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 137: unset($_SERVER['__validator.after.test']); - Test @ line 140: public function testSometimesWorksOnArrays() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 140: public function testSometimesWorksOnArrays() - line 142: $trans = $this->getIlluminateArrayTranslator(); - line 144: $this->assertFalse($v->passes()); - line 145: $this->assertNotEmpty($v->failed()); - line 147: $trans = $this->getIlluminateArrayTranslator(); - line 149: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 152: public function testValidateThrowsOnFail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 152: public function testValidateThrowsOnFail() - line 154: $this->expectException(ValidationException::class); - line 156: $trans = $this->getIlluminateArrayTranslator(); - line 159: $v->validate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 152: public function testValidateThrowsOnFail() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 162: public function testValidateDoesntThrowOnPass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 162: public function testValidateDoesntThrowOnPass() - line 164: $trans = $this->getIlluminateArrayTranslator(); - line 167: $this->assertSame(['foo' => 'bar'], $v->validate()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 170: public function testValidatedThrowsOnFail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 170: public function testValidatedThrowsOnFail() - line 172: $this->expectException(ValidationException::class); - line 174: $trans = $this->getIlluminateArrayTranslator(); - line 177: $v->validated(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 170: public function testValidatedThrowsOnFail() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 180: public function testValidatedThrowsOnFailEvenAfterPassesCall() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 180: public function testValidatedThrowsOnFailEvenAfterPassesCall() - line 182: $this->expectException(ValidationException::class); - line 184: $trans = $this->getIlluminateArrayTranslator(); - line 187: $v->passes(); - line 188: $v->validated(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 180: public function testValidatedThrowsOnFailEvenAfterPassesCall() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 205: public function testHasFailedValidationRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 205: public function testHasFailedValidationRules() - line 207: $trans = $this->getIlluminateArrayTranslator(); - line 209: $this->assertFalse($v->passes()); - line 210: $this->assertEquals(['foo' => ['Same' => ['baz']]], $v->failed()); - line 213: $this->assertTrue($v->passes()); - line 214: $this->assertEmpty($v->failed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 217: public function testFailingOnce() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 217: public function testFailingOnce() - line 219: $trans = $this->getIlluminateArrayTranslator(); - line 221: $this->assertFalse($v->passes()); - line 222: $this->assertEquals(['foo' => ['Same' => ['baz']]], $v->failed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 225: public function testHasNotFailedValidationRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 225: public function testHasNotFailedValidationRules() - line 227: $trans = $this->getTranslator(); - line 228: $trans->shouldReceive('get')->never(); - line 230: $this->assertTrue($v->passes()); - line 231: $this->assertEmpty($v->failed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 234: public function testSometimesCanSkipRequiredRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 234: public function testSometimesCanSkipRequiredRules() - line 236: $trans = $this->getTranslator(); - line 237: $trans->shouldReceive('get')->never(); - line 239: $this->assertTrue($v->passes()); - line 240: $this->assertEmpty($v->failed()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 243: public function testInValidatableRulesReturnsValid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 243: public function testInValidatableRulesReturnsValid() - line 245: $trans = $this->getTranslator(); - line 246: $trans->shouldReceive('get')->never(); - line 248: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 251: public function testValidateUsingNestedValidationRulesPasses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 251: public function testValidateUsingNestedValidationRulesPasses() - line 265: $trans = $this->getIlluminateArrayTranslator(); - line 268: $this->assertTrue($v->passes()); - line 276: $trans = $this->getIlluminateArrayTranslator(); - line 279: $this->assertSame('validation.in', $v->messages()->get('items.0.|name')[0]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 282: public function testValidateEmptyStringsAlwaysPasses() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 282: public function testValidateEmptyStringsAlwaysPasses() - line 284: $trans = $this->getIlluminateArrayTranslator(); - line 287: $this->assertTrue($v->passes()); - line 290: $this->assertTrue($v->passes()); - line 293: $this->assertTrue($v->passes()); - line 296: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 299: public function testEmptyExistingAttributesAreValidated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 299: public function testEmptyExistingAttributesAreValidated() - line 301: $trans = $this->getIlluminateArrayTranslator(); - line 304: $this->assertTrue($v->passes()); - line 307: $this->assertTrue($v->fails()); - line 310: $this->assertTrue($v->fails()); - line 313: $this->assertTrue($v->fails()); - line 316: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 322: public function testNullable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 322: public function testNullable() - line 324: $trans = $this->getIlluminateArrayTranslator(); - line 331: $this->assertTrue($v->passes()); - line 338: $this->assertTrue($v->fails()); - line 339: $this->assertSame('validation.string', $v->messages()->get('x')[0]); - line 340: $this->assertSame('validation.integer', $v->messages()->get('y')[0]); - line 341: $this->assertSame('validation.numeric', $v->messages()->get('z')[0]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 346: public function testArrayNullableWithUnvalidatedArrayKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 346: public function testArrayNullableWithUnvalidatedArrayKeys() - line 348: $trans = $this->getIlluminateArrayTranslator(); - line 356: $this->assertTrue($v->passes()); - line 357: $this->assertArrayHasKey('x', $v->validated()); - line 365: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 368: public function testNullableMakesNoDifferenceIfImplicitRuleExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 368: public function testNullableMakesNoDifferenceIfImplicitRuleExists() - line 370: $trans = $this->getIlluminateArrayTranslator(); - line 378: $this->assertTrue($v->passes()); - line 386: $this->assertTrue($v->fails()); - line 387: $this->assertSame('validation.integer', $v->messages()->get('x')[0]); - line 395: $this->assertTrue($v->fails()); - line 396: $this->assertSame('validation.required_with', $v->messages()->get('y')[0]); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 399: public function testProperLanguageLineIsSet() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 399: public function testProperLanguageLineIsSet() - line 401: $trans = $this->getIlluminateArrayTranslator(); - line 402: $trans->addLines(['validation.required' => 'required!'], 'en'); - line 404: $this->assertFalse($v->passes()); - line 405: $v->messages()->setFormat(':message'); - line 407: $this->assertSame('required!', $v->messages()->first('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 410: public function testCustomReplacersAreCalled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 410: public function testCustomReplacersAreCalled() - line 412: $trans = $this->getIlluminateArrayTranslator(); - line 413: $trans->addLines(['validation.required' => 'foo bar'], 'en'); - line 415: $v->addReplacer('required', function ($message, $attribute, $rule, $parameters) { - line 418: $this->assertFalse($v->passes()); - line 419: $v->messages()->setFormat(':message'); - line 420: $this->assertSame('foo taylor', $v->messages()->first('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 423: public function testClassBasedCustomReplacers() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 423: public function testClassBasedCustomReplacers() - line 425: $trans = $this->getIlluminateArrayTranslator(); - line 426: $trans->addLines(['validation.foo' => 'foo!'], 'en'); - line 428: $v->setContainer($container = m::mock(Container::class)); - line 429: $v->addReplacer('required', 'Foo@bar'); - line 432: $v->passes(); - line 433: $v->messages()->setFormat(':message'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 428: $v->setContainer($container = m::mock(Container::class)); - line 430: $container->shouldReceive('make')->once()->with('Foo')->andReturn($foo = m::mock(stdClass::class)); - Test @ line 437: public function testNestedAttributesAreReplacedInDimensions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 437: public function testNestedAttributesAreReplacedInDimensions() - line 442: $trans = $this->getIlluminateArrayTranslator(); - line 443: $trans->addLines(['validation.dimensions' => ':min_width :max_height :ratio'], 'en'); - line 445: $v->messages()->setFormat(':message'); - line 446: $this->assertTrue($v->fails()); - line 447: $this->assertSame('10 20 1', $v->messages()->first('x')); - line 449: $trans = $this->getIlluminateArrayTranslator(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 457: public function testAttributeNamesAreReplaced() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 32. Evidence: - line 457: public function testAttributeNamesAreReplaced() - line 459: $trans = $this->getIlluminateArrayTranslator(); - line 460: $trans->addLines(['validation.required' => ':attribute is required!'], 'en'); - line 462: $this->assertFalse($v->passes()); - line 463: $v->messages()->setFormat(':message'); - line 464: $this->assertSame('name is required!', $v->messages()->first('name')); - line 466: $trans = $this->getIlluminateArrayTranslator(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 506: public function testAttributeNamesAreReplacedInArrays() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 35. Evidence: - line 506: public function testAttributeNamesAreReplacedInArrays() - line 508: $trans = $this->getIlluminateArrayTranslator(); - line 509: $trans->addLines(['validation.required' => ':attribute is required!'], 'en'); - line 511: $this->assertFalse($v->passes()); - line 512: $v->messages()->setFormat(':message'); - line 513: $this->assertSame('users.1.country_code is required!', $v->messages()->first('users.1.country_code')); - line 515: $trans = $this->getIlluminateArrayTranslator(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 561: public function testInlineAttributeNamesAreReplacedInArraysFromNestedRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 561: public function testInlineAttributeNamesAreReplacedInArraysFromNestedRules() - line 563: $trans = $this->getIlluminateArrayTranslator(); - line 564: $trans->addLines(['validation.required' => ':attribute is required!'], 'en'); - line 572: $this->assertFalse($v->passes()); - line 573: $v->messages()->setFormat(':message'); - line 574: $this->assertSame('User ID is required!', $v->messages()->first('users.0.id')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 577: public function testTranslatedAttributeNamesAreReplacedInArraysFromNestedRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 577: public function testTranslatedAttributeNamesAreReplacedInArraysFromNestedRules() - line 579: $trans = $this->getIlluminateArrayTranslator(); - line 580: $trans->addLines([ - line 589: $this->assertFalse($v->passes()); - line 590: $v->messages()->setFormat(':message'); - line 591: $this->assertSame('User ID is required!', $v->messages()->first('users.0.id')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 594: public function testTranslatedAttributesCanBeMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 594: public function testTranslatedAttributesCanBeMissing() - line 596: $trans = $this->getIlluminateArrayTranslator(); - line 597: $trans->addLines(['validation.gt.numeric' => ':attribute must be greater than :value.'], 'en'); - line 598: $trans->addLines(['validation.attributes' => []], 'en'); - line 600: $this->assertSame('total must be greater than 0.', $v->messages()->first('total')); - line 602: $trans = $this->getIlluminateArrayTranslator(); - line 603: $trans->addLines(['validation.gt.numeric' => ':attribute must be greater than :value.'], 'en'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 608: public function testInputIsReplaced() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 608: public function testInputIsReplaced() - line 610: $trans = $this->getIlluminateArrayTranslator(); - line 611: $trans->addLines(['validation.email' => ':input is not a valid email'], 'en'); - line 613: $this->assertFalse($v->passes()); - line 614: $v->messages()->setFormat(':message'); - line 615: $this->assertSame('a@@s is not a valid email', $v->messages()->first('email')); - line 617: $trans = $this->getIlluminateArrayTranslator(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 625: public function testCapitalizedDisplayableValuesAreReplaced() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 92. Evidence: - line 625: public function testCapitalizedDisplayableValuesAreReplaced() - line 628: $trans = $this->getIlluminateArrayTranslator(); - line 629: $trans->addLines(['validation.accepted_if' => 'The :attribute field must be accepted when :Other is :Value.'], 'en'); - line 631: $this->assertFalse($v->passes()); - line 632: $v->messages()->setFormat(':message'); - line 633: $this->assertSame('The foo field must be accepted when Bar is Aaa.', $v->messages()->first('foo')); - line 635: $trans = $this->getIlluminateArrayTranslator(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 776: public function testInputIsReplacedByItsDisplayableValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 776: public function testInputIsReplacedByItsDisplayableValue() - line 784: $trans = $this->getIlluminateArrayTranslator(); - line 785: $trans->addLines(['validation.framework_php' => ':input is not a valid PHP Framework'], 'en'); - line 788: $v->addExtension('framework_php', function ($attribute, $value, $parameters, $validator) { - line 791: $v->addCustomValues(['framework' => $frameworks]); - line 793: $this->assertFalse($v->passes()); - line 794: $this->assertSame('Rails is not a valid PHP Framework', $v->messages()->first('framework')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 797: public function testDisplayableValuesAreReplaced() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 49. Evidence: - line 797: public function testDisplayableValuesAreReplaced() - line 800: $trans = $this->getIlluminateArrayTranslator(); - line 801: $trans->addLines(['validation.required_if' => 'The :attribute field is required when :other is :value.'], 'en'); - line 802: $trans->addLines(['validation.values.color.1' => 'red'], 'en'); - line 804: $this->assertFalse($v->passes()); - line 805: $v->messages()->setFormat(':message'); - line 806: $this->assertSame('The bar field is required when color is red.', $v->messages()->first('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 884: public function testDisplayableAttributesAreReplacedInCustomReplacers() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 19. Evidence: - line 884: public function testDisplayableAttributesAreReplacedInCustomReplacers() - line 886: $trans = $this->getIlluminateArrayTranslator(); - line 887: $trans->addLines(['validation.alliteration' => ':attribute needs to begin with the same letter as :other'], 'en'); - line 888: $trans->addLines(['validation.attributes.firstname' => 'Firstname'], 'en'); - line 889: $trans->addLines(['validation.attributes.lastname' => 'Lastname'], 'en'); - line 891: $v->addExtension('alliteration', function ($attribute, $value, $parameters, $validator) { - line 896: $v->addReplacer('alliteration', function ($message, $attribute, $rule, $parameters, $validator) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 925: public function testIndexValuesAreReplaced() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 925: public function testIndexValuesAreReplaced() - line 927: $trans = $this->getIlluminateArrayTranslator(); - line 934: $this->assertFalse($v->passes()); - line 935: $this->assertSame('Name 0 is required.', $v->messages()->first('input.*.name')); - line 937: $v->setAttributeNames([ - line 940: $this->assertFalse($v->passes()); - line 941: $this->assertSame('Name 0 is required.', $v->messages()->first('input.*.name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 971: public function testPositionValuesAreReplaced() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 971: public function testPositionValuesAreReplaced() - line 973: $trans = $this->getIlluminateArrayTranslator(); - line 980: $this->assertFalse($v->passes()); - line 981: $this->assertSame('Name 1 is required.', $v->messages()->first('input.*.name')); - line 983: $v->setAttributeNames([ - line 986: $this->assertFalse($v->passes()); - line 987: $this->assertSame('Name 1 is required.', $v->messages()->first('input.*.name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1004: public function testOrdinalPositionValuesAreReplaced() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 1004: public function testOrdinalPositionValuesAreReplaced() - line 1006: $trans = $this->getIlluminateArrayTranslator(); - line 1009: $this->assertFalse($v->passes()); - line 1010: $this->assertSame('The 1st Name is required.', $v->messages()->first('input.*.name')); - line 1012: $v->setAttributeNames([ - line 1015: $this->assertFalse($v->passes()); - line 1016: $this->assertSame('1st Name is required.', $v->messages()->first('input.*.name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1032: public function testCustomValidationLinesAreRespected() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1032: public function testCustomValidationLinesAreRespected() - line 1034: $trans = $this->getIlluminateArrayTranslator(); - line 1035: $trans->getLoader()->addMessages('en', 'validation', [ - line 1044: $this->assertFalse($v->passes()); - line 1045: $v->messages()->setFormat(':message'); - line 1046: $this->assertSame('really required!', $v->messages()->first('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1049: public function testCustomValidationLinesForSizeRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1049: public function testCustomValidationLinesForSizeRules() - line 1051: $trans = $this->getIlluminateArrayTranslator(); - line 1052: $trans->getLoader()->addMessages('en', 'validation', [ - line 1065: $this->assertFalse($v->passes()); - line 1066: $this->assertSame('Custom message for image filenames.', $v->messages()->first('image')); - line 1070: $this->assertFalse($v->passes()); - line 1071: $this->assertSame('Custom message for image files.', $v->messages()->first('image')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1074: public function testCustomValidationLinesAreRespectedWithAsterisks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 1074: public function testCustomValidationLinesAreRespectedWithAsterisks() - line 1076: $trans = $this->getIlluminateArrayTranslator(); - line 1077: $trans->getLoader()->addMessages('en', 'validation', [ - line 1094: $this->assertFalse($v->passes()); - line 1095: $v->messages()->setFormat(':message'); - line 1096: $this->assertSame('all are really required!', $v->messages()->first('name.0')); - line 1097: $this->assertSame('all are really required!', $v->messages()->first('name.1')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1101: public function testCustomException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1101: public function testCustomException() - line 1103: $trans = $this->getIlluminateArrayTranslator(); - line 1109: $v->setException($exception); - line 1112: $v->validate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1101: public function testCustomException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1118: public function testCustomExceptionMustExtendValidationException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1118: public function testCustomExceptionMustExtendValidationException() - line 1120: $trans = $this->getIlluminateArrayTranslator(); - line 1124: $this->expectException(InvalidArgumentException::class); - line 1125: $this->expectExceptionMessage('Exception [RuntimeException] is invalid. It must extend [Illuminate\Validation\ValidationException].'); - line 1127: $v->setException(RuntimeException::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 1118: public function testCustomExceptionMustExtendValidationException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 1130: public function testValidationDotCustomDotAnythingCanBeTranslated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1130: public function testValidationDotCustomDotAnythingCanBeTranslated() - line 1132: $trans = $this->getIlluminateArrayTranslator(); - line 1133: $trans->getLoader()->addMessages('en', 'validation', [ - line 1144: $this->assertFalse($v->passes()); - line 1145: $v->messages()->setFormat(':message'); - line 1146: $this->assertSame('should be integer!', $v->messages()->first('validation.custom.0')); - line 1147: $this->assertSame('should be integer!', $v->messages()->first('validation.custom.1')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1150: public function testInlineValidationMessagesAreRespected() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 1150: public function testInlineValidationMessagesAreRespected() - line 1152: $trans = $this->getIlluminateArrayTranslator(); - line 1154: $this->assertFalse($v->passes()); - line 1155: $v->messages()->setFormat(':message'); - line 1156: $this->assertSame('require it please!', $v->messages()->first('name')); - line 1158: $trans = $this->getIlluminateArrayTranslator(); - line 1160: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1171: public function testCustomValidationIsAppendedToMessages() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1171: public function testCustomValidationIsAppendedToMessages() - line 1173: $trans = $this->getIlluminateArrayTranslator(); - line 1181: $this->assertFalse($validator->passes()); - line 1182: $this->assertEquals($validator->errors()->messages(), [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1187: public function testInlineValidationMessagesAreRespectedWithAsterisks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1187: public function testInlineValidationMessagesAreRespectedWithAsterisks() - line 1189: $trans = $this->getIlluminateArrayTranslator(); - line 1191: $this->assertFalse($v->passes()); - line 1192: $v->messages()->setFormat(':message'); - line 1193: $this->assertSame('all must be required!', $v->messages()->first('name.0')); - line 1194: $this->assertSame('all must be required!', $v->messages()->first('name.1')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1197: public function testInlineValidationMessagesForRuleObjectsAreRespected() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 17. Evidence: - line 1197: public function testInlineValidationMessagesForRuleObjectsAreRespected() - line 1212: $trans = $this->getIlluminateArrayTranslator(); - line 1214: $this->assertFalse($v->passes()); - line 1215: $v->messages()->setFormat(':message'); - line 1216: $this->assertSame('my custom message', $v->messages()->first('name')); - line 1218: $trans = $this->getIlluminateArrayTranslator(); - line 1220: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1238: public function testIfRulesAreSuccessfullyAdded() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1238: public function testIfRulesAreSuccessfullyAdded() - line 1240: $trans = $this->getIlluminateArrayTranslator(); - line 1243: $this->assertTrue($v->hasRule('foo', 'Required')); - line 1245: $this->assertFalse($v->hasRule('foo', 'Array')); - line 1247: $this->assertFalse($v->hasRule('bar', 'Required')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1250: public function testValidateArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1250: public function testValidateArray() - line 1252: $trans = $this->getIlluminateArrayTranslator(); - line 1255: $this->assertTrue($v->passes()); - line 1258: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1261: public function testValidateList() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1261: public function testValidateList() - line 1263: $trans = $this->getIlluminateArrayTranslator(); - line 1266: $this->assertTrue($v->passes()); - line 1269: $this->assertFalse($v->passes()); - line 1272: $this->assertFalse($v->passes()); - line 1275: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1278: public function testValidateArrayKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1278: public function testValidateArrayKeys() - line 1280: $trans = $this->getIlluminateArrayTranslator(); - line 1284: $this->assertTrue($v->passes()); - line 1288: $this->assertTrue($v->passes()); - line 1292: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1295: public function testValidateCurrentPassword() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 17. Evidence: - line 1295: public function testValidateCurrentPassword() - line 1298: $auth = m::mock(Guard::class); - line 1308: $trans = $this->getTranslator(); - line 1309: $trans->shouldReceive('get')->andReturnArg(0); - line 1312: $v->setContainer($container); - line 1314: $this->assertFalse($v->passes()); - line 1332: $trans = $this->getTranslator(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 1298: $auth = m::mock(Guard::class); - line 1302: $hasher = m::mock(Hasher::class); - line 1304: $container = m::mock(Container::class); - line 1317: $user = m::mock(Authenticatable::class); - line 1320: $auth = m::mock(Guard::class); - line 1325: $hasher = m::mock(Hasher::class); - line 1328: $container = m::mock(Container::class); - line 1341: $user = m::mock(Authenticatable::class); - line 1344: $auth = m::mock(Guard::class); - line 1349: $hasher = m::mock(Hasher::class); - line 1352: $container = m::mock(Container::class); - line 1365: $user = m::mock(Authenticatable::class); - line 1368: $auth = m::mock(Guard::class); - line 1373: $hasher = m::mock(Hasher::class); - line 1376: $container = m::mock(Container::class); - Test @ line 1389: public function testValidateFilled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 1389: public function testValidateFilled() - line 1391: $trans = $this->getIlluminateArrayTranslator(); - line 1393: $this->assertTrue($v->passes()); - line 1396: $this->assertFalse($v->passes()); - line 1399: $this->assertTrue($v->passes()); - line 1402: $this->assertFalse($v->passes()); - line 1405: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1408: public function testValidationStopsAtFailedPresenceCheck() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 1408: public function testValidationStopsAtFailedPresenceCheck() - line 1410: $trans = $this->getIlluminateArrayTranslator(); - line 1413: $v->passes(); - line 1414: $this->assertEquals(['validation.required'], $v->errors()->get('name')); - line 1417: $v->passes(); - line 1418: $this->assertEquals(['validation.required_with'], $v->errors()->get('name')); - line 1421: $v->passes(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1429: public function testValidatePresent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 1429: public function testValidatePresent() - line 1431: $trans = $this->getIlluminateArrayTranslator(); - line 1433: $this->assertFalse($v->passes()); - line 1436: $this->assertFalse($v->passes()); - line 1439: $this->assertTrue($v->passes()); - line 1442: $this->assertTrue($v->passes()); - line 1445: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1457: public function testValidatePresentIf() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 1457: public function testValidatePresentIf() - line 1459: $trans = $this->getIlluminateArrayTranslator(); - line 1460: $trans->addLines(['validation.present_if' => 'The :attribute field must be present when :other is :value.'], 'en'); - line 1463: $this->assertFalse($v->passes()); - line 1464: $this->assertSame('The foo field must be present when bar is 1.', $v->errors()->first('foo')); - line 1467: $this->assertTrue($v->passes()); - line 1470: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1489: public function testValidatePresentUnless() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 1489: public function testValidatePresentUnless() - line 1491: $trans = $this->getIlluminateArrayTranslator(); - line 1492: $trans->addLines(['validation.present_unless' => 'The :attribute field must be present unless :other is :value.'], 'en'); - line 1495: $this->assertFalse($v->passes()); - line 1496: $this->assertSame('The foo field must be present unless bar is 1.', $v->errors()->first('foo')); - line 1499: $this->assertTrue($v->passes()); - line 1502: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1521: public function testValidatePresentWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 1521: public function testValidatePresentWith() - line 1523: $trans = $this->getIlluminateArrayTranslator(); - line 1524: $trans->addLines(['validation.present_with' => 'The :attribute field must be present when :values is present.'], 'en'); - line 1527: $this->assertTrue($v->passes()); - line 1530: $this->assertTrue($v->passes()); - line 1533: $this->assertTrue($v->passes()); - line 1536: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1553: public function testValidatePresentWithAll() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 1553: public function testValidatePresentWithAll() - line 1555: $trans = $this->getIlluminateArrayTranslator(); - line 1556: $trans->addLines(['validation.present_with_all' => 'The :attribute field must be present when :values are present.'], 'en'); - line 1559: $this->assertTrue($v->passes()); - line 1562: $this->assertTrue($v->passes()); - line 1565: $this->assertTrue($v->passes()); - line 1568: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1585: public function testValidateRequired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1585: public function testValidateRequired() - line 1587: $trans = $this->getIlluminateArrayTranslator(); - line 1589: $this->assertFalse($v->passes()); - line 1592: $this->assertFalse($v->passes()); - line 1595: $this->assertTrue($v->passes()); - line 1599: $this->assertFalse($v->passes()); - line 1603: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1614: public function testValidateRequiredWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 1614: public function testValidateRequiredWith() - line 1616: $trans = $this->getIlluminateArrayTranslator(); - line 1618: $this->assertFalse($v->passes()); - line 1621: $this->assertFalse($v->passes()); - line 1624: $this->assertTrue($v->passes()); - line 1627: $this->assertTrue($v->passes()); - line 1630: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1647: public function testRequiredWithAll() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1647: public function testRequiredWithAll() - line 1649: $trans = $this->getIlluminateArrayTranslator(); - line 1651: $this->assertTrue($v->passes()); - line 1654: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1657: public function testValidateRequiredWithout() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 1657: public function testValidateRequiredWithout() - line 1659: $trans = $this->getIlluminateArrayTranslator(); - line 1661: $this->assertTrue($v->passes()); - line 1664: $this->assertTrue($v->passes()); - line 1667: $this->assertFalse($v->passes()); - line 1670: $this->assertFalse($v->passes()); - line 1673: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1711: public function testRequiredWithoutMultiple() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 1711: public function testRequiredWithoutMultiple() - line 1713: $trans = $this->getIlluminateArrayTranslator(); - line 1722: $this->assertTrue($v->fails()); - line 1725: $this->assertTrue($v->fails()); - line 1728: $this->assertTrue($v->fails()); - line 1731: $this->assertTrue($v->fails()); - line 1734: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1746: public function testRequiredWithoutAll() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 1746: public function testRequiredWithoutAll() - line 1748: $trans = $this->getIlluminateArrayTranslator(); - line 1757: $this->assertTrue($v->fails()); - line 1760: $this->assertTrue($v->passes()); - line 1763: $this->assertTrue($v->passes()); - line 1766: $this->assertTrue($v->passes()); - line 1769: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1781: public function testRequiredIf() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 46. Evidence: - line 1781: public function testRequiredIf() - line 1783: $trans = $this->getIlluminateArrayTranslator(); - line 1785: $this->assertTrue($v->fails()); - line 1787: $trans = $this->getIlluminateArrayTranslator(); - line 1789: $this->assertTrue($v->passes()); - line 1791: $trans = $this->getIlluminateArrayTranslator(); - line 1793: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1889: public function testRequiredIfArrayToStringConversationErrorException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 1889: public function testRequiredIfArrayToStringConversationErrorException() - line 1891: $trans = $this->getIlluminateArrayTranslator(); - line 1899: $this->assertTrue($v->fails()); - line 1901: $trans = $this->getIlluminateArrayTranslator(); - line 1909: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1912: public function testRequiredUnless() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 34. Evidence: - line 1912: public function testRequiredUnless() - line 1914: $trans = $this->getIlluminateArrayTranslator(); - line 1916: $this->assertTrue($v->fails()); - line 1918: $trans = $this->getIlluminateArrayTranslator(); - line 1920: $this->assertTrue($v->passes()); - line 1922: $trans = $this->getIlluminateArrayTranslator(); - line 1924: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1982: public function testProhibited() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 1982: public function testProhibited() - line 1984: $trans = $this->getIlluminateArrayTranslator(); - line 1987: $this->assertTrue($v->passes()); - line 1990: $this->assertTrue($v->passes()); - line 1993: $this->assertTrue($v->fails()); - line 1997: $this->assertTrue($v->passes()); - line 2001: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2012: public function testProhibitedIf() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 2012: public function testProhibitedIf() - line 2014: $trans = $this->getIlluminateArrayTranslator(); - line 2016: $this->assertTrue($v->fails()); - line 2018: $trans = $this->getIlluminateArrayTranslator(); - line 2020: $this->assertTrue($v->passes()); - line 2022: $trans = $this->getIlluminateArrayTranslator(); - line 2024: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2046: public function testValidateProhibitedAcceptedIf() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 2046: public function testValidateProhibitedAcceptedIf() - line 2048: $trans = $this->getIlluminateArrayTranslator(); - line 2050: $this->assertTrue($v->fails()); - line 2052: $trans = $this->getIlluminateArrayTranslator(); - line 2054: $this->assertTrue($v->passes()); - line 2056: $trans = $this->getIlluminateArrayTranslator(); - line 2058: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2080: public function testValidateProhibitedDeclinedIf() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 2080: public function testValidateProhibitedDeclinedIf() - line 2082: $trans = $this->getIlluminateArrayTranslator(); - line 2084: $this->assertTrue($v->fails()); - line 2086: $trans = $this->getIlluminateArrayTranslator(); - line 2088: $this->assertTrue($v->passes()); - line 2090: $trans = $this->getIlluminateArrayTranslator(); - line 2092: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2114: public function testProhibitedUnless() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 18. Evidence: - line 2114: public function testProhibitedUnless() - line 2116: $trans = $this->getIlluminateArrayTranslator(); - line 2118: $this->assertTrue($v->fails()); - line 2120: $trans = $this->getIlluminateArrayTranslator(); - line 2122: $this->assertTrue($v->passes()); - line 2124: $trans = $this->getIlluminateArrayTranslator(); - line 2126: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2152: public function testProhibits() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 24. Evidence: - line 2152: public function testProhibits() - line 2154: $trans = $this->getIlluminateArrayTranslator(); - line 2156: $this->assertTrue($v->fails()); - line 2158: $trans = $this->getIlluminateArrayTranslator(); - line 2160: $this->assertTrue($v->passes()); - line 2162: $trans = $this->getIlluminateArrayTranslator(); - line 2164: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2205: public function testProhibitedRulesAreConsistent($rules, $data, $result) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2205: public function testProhibitedRulesAreConsistent($rules, $data, $result) - line 2207: $trans = $this->getIlluminateArrayTranslator(); - line 2209: $this->assertSame($result, (new Validator($trans, $data, $rules))->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2279: public function testFailedFileUploads() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 2279: public function testFailedFileUploads() - line 2281: $trans = $this->getIlluminateArrayTranslator(); - line 2287: $file->shouldNotReceive('getSize'); - line 2289: $this->assertTrue($v->fails()); - line 2290: $this->assertEquals(['validation.uploaded'], $v->errors()->get('photo')); - line 2296: $this->assertTrue($v->fails()); - line 2297: $this->assertEquals(['validation.uploaded'], $v->errors()->get('photo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 2285: $file = m::mock(UploadedFile::class); - line 2293: $file = m::mock(UploadedFile::class); - line 2301: $file = m::mock(UploadedFile::class); - line 2308: $file = m::mock(UploadedFile::class); - Test @ line 2315: public function testValidateInArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 2315: public function testValidateInArray() - line 2317: $trans = $this->getIlluminateArrayTranslator(); - line 2319: $this->assertFalse($v->passes()); - line 2321: $trans = $this->getIlluminateArrayTranslator(); - line 2323: $this->assertTrue($v->passes()); - line 2325: $trans = $this->getIlluminateArrayTranslator(); - line 2327: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2338: public function testValidateHexColor() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 2338: public function testValidateHexColor() - line 2340: $trans = $this->getIlluminateArrayTranslator(); - line 2342: $this->assertTrue($v->passes()); - line 2344: $this->assertTrue($v->passes()); - line 2346: $this->assertTrue($v->passes()); - line 2348: $this->assertTrue($v->passes()); - line 2350: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2369: public function testValidateConfirmed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 2369: public function testValidateConfirmed() - line 2371: $trans = $this->getIlluminateArrayTranslator(); - line 2373: $this->assertFalse($v->passes()); - line 2376: $this->assertFalse($v->passes()); - line 2379: $this->assertTrue($v->passes()); - line 2382: $this->assertFalse($v->passes()); - line 2385: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2391: public function testValidateSame() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 2391: public function testValidateSame() - line 2393: $trans = $this->getIlluminateArrayTranslator(); - line 2395: $this->assertFalse($v->passes()); - line 2398: $this->assertFalse($v->passes()); - line 2401: $this->assertTrue($v->passes()); - line 2404: $this->assertFalse($v->passes()); - line 2407: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2410: public function testValidateDifferent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 2410: public function testValidateDifferent() - line 2412: $trans = $this->getIlluminateArrayTranslator(); - line 2414: $this->assertTrue($v->passes()); - line 2417: $this->assertTrue($v->passes()); - line 2420: $this->assertTrue($v->passes()); - line 2423: $this->assertFalse($v->passes()); - line 2426: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2438: public function testGreaterThan() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 17. Evidence: - line 2438: public function testGreaterThan() - line 2440: $trans = $this->getIlluminateArrayTranslator(); - line 2442: $this->assertTrue($v->passes()); - line 2445: $this->assertTrue($v->fails()); - line 2448: $this->assertTrue($v->passes()); - line 2451: $this->assertTrue($v->passes()); - line 2454: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2482: public function testLowercase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2482: public function testLowercase() - line 2484: $trans = $this->getIlluminateArrayTranslator(); - line 2506: ], $v->messages()->keys()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2509: public function testUppercase() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 2509: public function testUppercase() - line 2511: $trans = $this->getIlluminateArrayTranslator(); - line 2533: ], $v->messages()->keys()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2536: public function testLessThan() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 2536: public function testLessThan() - line 2538: $trans = $this->getIlluminateArrayTranslator(); - line 2540: $this->assertTrue($v->fails()); - line 2543: $this->assertTrue($v->fails()); - line 2546: $this->assertTrue($v->fails()); - line 2549: $this->assertTrue($v->fails()); - line 2552: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2577: public function testGreaterThanOrEqual() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 2577: public function testGreaterThanOrEqual() - line 2579: $trans = $this->getIlluminateArrayTranslator(); - line 2581: $this->assertTrue($v->passes()); - line 2584: $this->assertTrue($v->fails()); - line 2587: $this->assertTrue($v->passes()); - line 2590: $this->assertTrue($v->passes()); - line 2593: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2618: public function testLessThanOrEqual() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 2618: public function testLessThanOrEqual() - line 2620: $trans = $this->getIlluminateArrayTranslator(); - line 2622: $this->assertTrue($v->passes()); - line 2625: $this->assertTrue($v->fails()); - line 2628: $this->assertTrue($v->passes()); - line 2631: $this->assertTrue($v->passes()); - line 2634: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2659: public function testValidateAccepted() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 2659: public function testValidateAccepted() - line 2661: $trans = $this->getIlluminateArrayTranslator(); - line 2663: $this->assertFalse($v->passes()); - line 2666: $this->assertFalse($v->passes()); - line 2669: $this->assertFalse($v->passes()); - line 2672: $this->assertFalse($v->passes()); - line 2675: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2705: public function testValidateRequiredAcceptedIf() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2705: public function testValidateRequiredAcceptedIf() - line 2707: $trans = $this->getIlluminateArrayTranslator(); - line 2709: $this->assertTrue($v->passes()); - line 2712: $this->assertTrue($v->passes()); - line 2715: $this->assertTrue($v->passes()); - line 2718: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2721: public function testValidateAcceptedIf() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 34. Evidence: - line 2721: public function testValidateAcceptedIf() - line 2723: $trans = $this->getIlluminateArrayTranslator(); - line 2725: $this->assertFalse($v->passes()); - line 2728: $this->assertFalse($v->passes()); - line 2731: $this->assertFalse($v->passes()); - line 2734: $this->assertFalse($v->passes()); - line 2737: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2795: public function testValidateRequiredIfDeclined() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 2795: public function testValidateRequiredIfDeclined() - line 2797: $trans = $this->getIlluminateArrayTranslator(); - line 2799: $this->assertTrue($v->passes()); - line 2802: $this->assertTrue($v->passes()); - line 2805: $this->assertTrue($v->passes()); - line 2808: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2811: public function testValidateDeclined() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 2811: public function testValidateDeclined() - line 2813: $trans = $this->getIlluminateArrayTranslator(); - line 2815: $this->assertFalse($v->passes()); - line 2818: $this->assertFalse($v->passes()); - line 2821: $this->assertFalse($v->passes()); - line 2824: $this->assertFalse($v->passes()); - line 2827: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2857: public function testValidateMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 2857: public function testValidateMissing() - line 2859: $trans = $this->getIlluminateArrayTranslator(); - line 2860: $trans->addLines(['validation.missing' => 'The :attribute field must be missing.'], 'en'); - line 2863: $this->assertFalse($v->passes()); - line 2864: $this->assertSame('The foo field must be missing.', $v->errors()->first('foo')); - line 2867: $this->assertFalse($v->passes()); - line 2868: $this->assertSame('The foo field must be missing.', $v->errors()->first('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2896: public function testValidateMissingIf() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 17. Evidence: - line 2896: public function testValidateMissingIf() - line 2898: $trans = $this->getIlluminateArrayTranslator(); - line 2899: $trans->addLines(['validation.missing_if' => 'The :attribute field must be missing when :other is :value.'], 'en'); - line 2902: $this->assertFalse($v->passes()); - line 2903: $this->assertSame('The foo field must be missing when bar is 1.', $v->errors()->first('foo')); - line 2906: $this->assertFalse($v->passes()); - line 2907: $this->assertSame('The foo field must be missing when bar is 1.', $v->errors()->first('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2939: public function testValidateMissingUnless() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 17. Evidence: - line 2939: public function testValidateMissingUnless() - line 2941: $trans = $this->getIlluminateArrayTranslator(); - line 2942: $trans->addLines(['validation.missing_unless' => 'The :attribute field must be missing unless :other is :value.'], 'en'); - line 2945: $this->assertFalse($v->passes()); - line 2946: $this->assertSame('The foo field must be missing unless bar is 1.', $v->errors()->first('foo')); - line 2949: $this->assertFalse($v->passes()); - line 2950: $this->assertSame('The foo field must be missing unless bar is 1.', $v->errors()->first('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 2982: public function testValidateMissingWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 18. Evidence: - line 2982: public function testValidateMissingWith() - line 2984: $trans = $this->getIlluminateArrayTranslator(); - line 2985: $trans->addLines(['validation.missing_with' => 'The :attribute field must be missing when :values is present.'], 'en'); - line 2988: $this->assertTrue($v->passes()); - line 2991: $this->assertFalse($v->passes()); - line 2992: $this->assertSame('The foo field must be missing when baz / bar is present.', $v->errors()->first('foo')); - line 2995: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3028: public function testValidateMissingWithAll() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 18. Evidence: - line 3028: public function testValidateMissingWithAll() - line 3030: $trans = $this->getIlluminateArrayTranslator(); - line 3031: $trans->addLines(['validation.missing_with_all' => 'The :attribute field must be missing when :values are present.'], 'en'); - line 3034: $this->assertTrue($v->passes()); - line 3037: $this->assertFalse($v->passes()); - line 3038: $this->assertSame('The foo field must be missing when baz / bar are present.', $v->errors()->first('foo')); - line 3041: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3074: public function testValidateDeclinedIf() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 34. Evidence: - line 3074: public function testValidateDeclinedIf() - line 3076: $trans = $this->getIlluminateArrayTranslator(); - line 3078: $this->assertFalse($v->passes()); - line 3081: $this->assertFalse($v->passes()); - line 3084: $this->assertFalse($v->passes()); - line 3087: $this->assertFalse($v->passes()); - line 3090: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3148: public function testValidateEndsWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 3148: public function testValidateEndsWith() - line 3150: $trans = $this->getIlluminateArrayTranslator(); - line 3152: $this->assertFalse($v->passes()); - line 3154: $trans = $this->getIlluminateArrayTranslator(); - line 3156: $this->assertTrue($v->passes()); - line 3158: $trans = $this->getIlluminateArrayTranslator(); - line 3160: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3175: public function testValidateDoesntEndWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3175: public function testValidateDoesntEndWith() - line 3177: $trans = $this->getIlluminateArrayTranslator(); - line 3179: $this->assertTrue($v->passes()); - line 3181: $trans = $this->getIlluminateArrayTranslator(); - line 3183: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3186: public function testValidateStartsWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 3186: public function testValidateStartsWith() - line 3188: $trans = $this->getIlluminateArrayTranslator(); - line 3190: $this->assertTrue($v->passes()); - line 3192: $trans = $this->getIlluminateArrayTranslator(); - line 3194: $this->assertFalse($v->passes()); - line 3196: $trans = $this->getIlluminateArrayTranslator(); - line 3198: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3213: public function testValidateDoesntStartWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3213: public function testValidateDoesntStartWith() - line 3215: $trans = $this->getIlluminateArrayTranslator(); - line 3217: $this->assertTrue($v->passes()); - line 3219: $trans = $this->getIlluminateArrayTranslator(); - line 3221: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3224: public function testValidateString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 3224: public function testValidateString() - line 3226: $trans = $this->getIlluminateArrayTranslator(); - line 3228: $this->assertTrue($v->passes()); - line 3230: $trans = $this->getIlluminateArrayTranslator(); - line 3232: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3235: public function testValidateJson() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 3235: public function testValidateJson() - line 3237: $trans = $this->getIlluminateArrayTranslator(); - line 3239: $this->assertFalse($v->passes()); - line 3241: $trans = $this->getIlluminateArrayTranslator(); - line 3243: $this->assertTrue($v->passes()); - line 3245: $trans = $this->getIlluminateArrayTranslator(); - line 3247: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3262: public function testValidateBoolean() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 3262: public function testValidateBoolean() - line 3264: $trans = $this->getIlluminateArrayTranslator(); - line 3266: $this->assertFalse($v->passes()); - line 3269: $this->assertFalse($v->passes()); - line 3272: $this->assertFalse($v->passes()); - line 3275: $this->assertFalse($v->passes()); - line 3278: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3299: public function testValidateBooleanStrict() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 3299: public function testValidateBooleanStrict() - line 3301: $trans = $this->getIlluminateArrayTranslator(); - line 3304: $this->assertTrue($v->passes()); - line 3307: $this->assertTrue($v->passes()); - line 3310: $this->assertFalse($v->passes()); - line 3313: $this->assertFalse($v->passes()); - line 3316: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3337: public function testValidateBool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 3337: public function testValidateBool() - line 3339: $trans = $this->getIlluminateArrayTranslator(); - line 3341: $this->assertFalse($v->passes()); - line 3344: $this->assertFalse($v->passes()); - line 3347: $this->assertFalse($v->passes()); - line 3350: $this->assertFalse($v->passes()); - line 3353: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3374: public function testValidateBoolStrict() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 3374: public function testValidateBoolStrict() - line 3376: $trans = $this->getIlluminateArrayTranslator(); - line 3379: $this->assertTrue($v->passes()); - line 3382: $this->assertTrue($v->passes()); - line 3385: $this->assertFalse($v->passes()); - line 3388: $this->assertFalse($v->passes()); - line 3391: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3412: public function testValidateNumeric() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 3412: public function testValidateNumeric() - line 3414: $trans = $this->getIlluminateArrayTranslator(); - line 3416: $this->assertFalse($v->passes()); - line 3419: $this->assertTrue($v->passes()); - line 3422: $this->assertTrue($v->passes()); - line 3425: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3428: public function testValidateNumericStrict() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 3428: public function testValidateNumericStrict() - line 3430: $trans = $this->getIlluminateArrayTranslator(); - line 3432: $this->assertFalse($v->passes()); - line 3435: $this->assertFalse($v->passes()); - line 3438: $this->assertFalse($v->passes()); - line 3441: $this->assertFalse($v->passes()); - line 3444: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3450: public function testValidateInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 3450: public function testValidateInteger() - line 3452: $trans = $this->getIlluminateArrayTranslator(); - line 3454: $this->assertFalse($v->passes()); - line 3457: $this->assertFalse($v->passes()); - line 3460: $this->assertTrue($v->passes()); - line 3463: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3466: public function testValidateIntegerStrict() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 3466: public function testValidateIntegerStrict() - line 3468: $trans = $this->getIlluminateArrayTranslator(); - line 3470: $this->assertFalse($v->passes()); - line 3473: $this->assertFalse($v->passes()); - line 3476: $this->assertFalse($v->passes()); - line 3479: $this->assertFalse($v->passes()); - line 3482: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3488: public function testValidateDecimal() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 58. Evidence: - line 3488: public function testValidateDecimal() - line 3490: $trans = $this->getIlluminateArrayTranslator(); - line 3492: $this->assertFalse($v->passes()); - line 3495: $this->assertFalse($v->passes()); - line 3498: $this->assertTrue($v->passes()); - line 3501: $this->assertTrue($v->passes()); - line 3504: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3668: public function testValidateInt() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 3668: public function testValidateInt() - line 3670: $trans = $this->getIlluminateArrayTranslator(); - line 3672: $this->assertFalse($v->passes()); - line 3675: $this->assertFalse($v->passes()); - line 3678: $this->assertTrue($v->passes()); - line 3681: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3684: public function testValidateDigits() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 20. Evidence: - line 3684: public function testValidateDigits() - line 3686: $trans = $this->getIlluminateArrayTranslator(); - line 3688: $this->assertTrue($v->passes()); - line 3691: $this->assertFalse($v->passes()); - line 3694: $this->assertTrue($v->fails()); - line 3697: $this->assertTrue($v->fails()); - line 3699: $trans = $this->getIlluminateArrayTranslator(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3739: public function testValidateSize() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 17. Evidence: - line 3739: public function testValidateSize() - line 3741: $trans = $this->getIlluminateArrayTranslator(); - line 3743: $this->assertFalse($v->passes()); - line 3746: $this->assertTrue($v->passes()); - line 3749: $this->assertFalse($v->passes()); - line 3752: $this->assertTrue($v->passes()); - line 3755: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3783: public function testValidateBetween() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 20. Evidence: - line 3783: public function testValidateBetween() - line 3785: $trans = $this->getIlluminateArrayTranslator(); - line 3787: $this->assertFalse($v->passes()); - line 3790: $this->assertTrue($v->passes()); - line 3793: $this->assertTrue($v->passes()); - line 3796: $this->assertTrue($v->passes()); - line 3799: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3839: public function testValidateMin() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 20. Evidence: - line 3839: public function testValidateMin() - line 3841: $trans = $this->getIlluminateArrayTranslator(); - line 3843: $this->assertFalse($v->passes()); - line 3847: $this->assertTrue($v->passes()); - line 3850: $this->assertTrue($v->passes()); - line 3853: $this->assertFalse($v->passes()); - line 3857: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3898: public function testValidateMax() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 24. Evidence: - line 3898: public function testValidateMax() - line 3900: $trans = $this->getIlluminateArrayTranslator(); - line 3902: $this->assertFalse($v->passes()); - line 3905: $this->assertTrue($v->passes()); - line 3908: $this->assertFalse($v->passes()); - line 3912: $this->assertTrue($v->passes()); - line 3916: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 3966: public function testValidateMultipleOf($input, $allowed, $passes) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 3966: public function testValidateMultipleOf($input, $allowed, $passes) - line 3968: $trans = $this->getIlluminateArrayTranslator(); - line 3969: $trans->addLines(['validation.multiple_of' => 'The :attribute must be a multiple of :value'], 'en'); - line 3973: $this->assertSame($passes, $v->passes()); - line 3974: if ($v->fails()) { - line 3977: $this->assertSame('', $v->messages()->first('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4047: public function testProperMessagesAreReturnedForSizes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 4047: public function testProperMessagesAreReturnedForSizes() - line 4049: $trans = $this->getIlluminateArrayTranslator(); - line 4050: $trans->addLines(['validation.min.numeric' => 'numeric', 'validation.size.string' => 'string', 'validation.max.file' => 'file'], 'en'); - line 4052: $this->assertFalse($v->passes()); - line 4053: $v->messages()->setFormat(':message'); - line 4054: $this->assertSame('numeric', $v->messages()->first('name')); - line 4057: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4070: public function testValidateGtPlaceHolderIsReplacedProperly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 21. Evidence: - line 4070: public function testValidateGtPlaceHolderIsReplacedProperly() - line 4072: $trans = $this->getIlluminateArrayTranslator(); - line 4073: $trans->addLines([ - line 4081: $this->assertFalse($v->passes()); - line 4082: $this->assertEquals(4, $v->messages()->first('items')); - line 4085: $this->assertFalse($v->passes()); - line 4086: $this->assertEquals(5, $v->messages()->first('items')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4112: public function testValidateLtPlaceHolderIsReplacedProperly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 21. Evidence: - line 4112: public function testValidateLtPlaceHolderIsReplacedProperly() - line 4114: $trans = $this->getIlluminateArrayTranslator(); - line 4115: $trans->addLines([ - line 4123: $this->assertFalse($v->passes()); - line 4124: $this->assertEquals(2, $v->messages()->first('items')); - line 4127: $this->assertFalse($v->passes()); - line 4128: $this->assertEquals(2, $v->messages()->first('items')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4154: public function testValidateGtePlaceHolderIsReplacedProperly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 21. Evidence: - line 4154: public function testValidateGtePlaceHolderIsReplacedProperly() - line 4156: $trans = $this->getIlluminateArrayTranslator(); - line 4157: $trans->addLines([ - line 4165: $this->assertFalse($v->passes()); - line 4166: $this->assertEquals(4, $v->messages()->first('items')); - line 4169: $this->assertFalse($v->passes()); - line 4170: $this->assertEquals(5, $v->messages()->first('items')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4196: public function testValidateLtePlaceHolderIsReplacedProperly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 21. Evidence: - line 4196: public function testValidateLtePlaceHolderIsReplacedProperly() - line 4198: $trans = $this->getIlluminateArrayTranslator(); - line 4199: $trans->addLines([ - line 4207: $this->assertFalse($v->passes()); - line 4208: $this->assertEquals(2, $v->messages()->first('items')); - line 4211: $this->assertFalse($v->passes()); - line 4212: $this->assertEquals(2, $v->messages()->first('items')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4238: public function testValidateContains() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 4238: public function testValidateContains() - line 4240: $trans = $this->getIlluminateArrayTranslator(); - line 4243: $this->assertFalse($v->passes()); - line 4246: $this->assertFalse($v->passes()); - line 4249: $this->assertFalse($v->passes()); - line 4252: $this->assertFalse($v->passes()); - line 4255: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4261: public function testValidateIn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 4261: public function testValidateIn() - line 4263: $trans = $this->getIlluminateArrayTranslator(); - line 4265: $this->assertFalse($v->passes()); - line 4267: $trans = $this->getIlluminateArrayTranslator(); - line 4269: $this->assertFalse($v->passes()); - line 4272: $this->assertTrue($v->passes()); - line 4275: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4296: public function testValidateNotIn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 4296: public function testValidateNotIn() - line 4298: $trans = $this->getIlluminateArrayTranslator(); - line 4300: $this->assertTrue($v->passes()); - line 4303: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4306: public function testValidateDistinct() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 34. Evidence: - line 4306: public function testValidateDistinct() - line 4308: $trans = $this->getIlluminateArrayTranslator(); - line 4311: $this->assertFalse($v->passes()); - line 4314: $this->assertFalse($v->passes()); - line 4317: $this->assertFalse($v->passes()); - line 4320: $this->assertFalse($v->passes()); - line 4323: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4391: public function testValidateDistinctForTopLevelArrays() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 4391: public function testValidateDistinctForTopLevelArrays() - line 4393: $trans = $this->getIlluminateArrayTranslator(); - line 4396: $this->assertFalse($v->passes()); - line 4399: $this->assertFalse($v->passes()); - line 4402: $this->assertFalse($v->passes()); - line 4405: $this->assertFalse($v->passes()); - line 4408: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4414: public function testValidateUnique() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 4414: public function testValidateUnique() - line 4416: $trans = $this->getIlluminateArrayTranslator(); - line 4421: $v->setPresenceVerifier($mock); - line 4422: $this->assertTrue($v->passes()); - line 4428: $v->setPresenceVerifier($mock); - line 4429: $this->assertTrue($v->passes()); - line 4435: $v->setPresenceVerifier($mock); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 4418: $mock = m::mock(DatabasePresenceVerifierInterface::class); - line 4425: $mock = m::mock(DatabasePresenceVerifierInterface::class); - line 4432: $mock = m::mock(DatabasePresenceVerifierInterface::class); - line 4439: $mock = m::mock(DatabasePresenceVerifierInterface::class); - line 4446: $mock = m::mock(DatabasePresenceVerifierInterface::class); - line 4453: $mock = m::mock(DatabasePresenceVerifierInterface::class); - Test @ line 4462: public function testValidateUniqueAndExistsSendsCorrectFieldNameToDBWithArrays() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 4462: public function testValidateUniqueAndExistsSendsCorrectFieldNameToDBWithArrays() - line 4464: $trans = $this->getIlluminateArrayTranslator(); - line 4472: $v->setPresenceVerifier($mock); - line 4473: $this->assertTrue($v->passes()); - line 4475: $trans = $this->getIlluminateArrayTranslator(); - line 4480: '*.email' => (new Unique('users'))->where($closure), - line 4487: $v->setPresenceVerifier($mock); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 4468: $mock = m::mock(DatabasePresenceVerifierInterface::class); - line 4483: $mock = m::mock(DatabasePresenceVerifierInterface::class); - Test @ line 4491: public function testValidationExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 4491: public function testValidationExists() - line 4493: $trans = $this->getIlluminateArrayTranslator(); - line 4498: $v->setPresenceVerifier($mock); - line 4499: $this->assertTrue($v->passes()); - line 4501: $trans = $this->getIlluminateArrayTranslator(); - line 4506: $v->setPresenceVerifier($mock); - line 4507: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 4495: $mock = m::mock(DatabasePresenceVerifierInterface::class); - line 4503: $mock = m::mock(DatabasePresenceVerifierInterface::class); - line 4510: $mock = m::mock(DatabasePresenceVerifierInterface::class); - line 4517: $mock = m::mock(DatabasePresenceVerifierInterface::class); - line 4524: $mock = m::mock(DatabasePresenceVerifierInterface::class); - line 4531: $mock = m::mock(DatabasePresenceVerifierInterface::class); - Test @ line 4538: public function testValidationExistsIsNotCalledUnnecessarily() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 4538: public function testValidationExistsIsNotCalledUnnecessarily() - line 4540: $trans = $this->getIlluminateArrayTranslator(); - line 4543: $mock->shouldReceive('getCount')->never(); - line 4544: $v->setPresenceVerifier($mock); - line 4545: $this->assertFalse($v->passes()); - line 4547: $trans = $this->getIlluminateArrayTranslator(); - line 4552: $v->setPresenceVerifier($mock); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 4542: $mock = m::mock(DatabasePresenceVerifierInterface::class); - line 4549: $mock = m::mock(DatabasePresenceVerifierInterface::class); - Test @ line 4556: public function testValidateGtMessagesAreCorrect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 4556: public function testValidateGtMessagesAreCorrect() - line 4558: $trans = $this->getIlluminateArrayTranslator(); - line 4559: $trans->addLines([ - line 4566: $file = $this->getMockBuilder(UploadedFile::class)->onlyMethods(['getSize', 'isValid'])->setConstructorArgs([__FILE__, false])->getMock(); - line 4567: $file->expects($this->any())->method('getSize')->willReturn(8919); - line 4568: $file->expects($this->any())->method('isValid')->willReturn(true); - line 4569: $otherFile = $this->getMockBuilder(UploadedFile::class)->onlyMethods(['getSize', 'isValid'])->setConstructorArgs([__FILE__, false])->getMock(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4596: public function testValidateGteMessagesAreCorrect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 4596: public function testValidateGteMessagesAreCorrect() - line 4598: $trans = $this->getIlluminateArrayTranslator(); - line 4599: $trans->addLines([ - line 4606: $file = $this->getMockBuilder(UploadedFile::class)->onlyMethods(['getSize', 'isValid'])->setConstructorArgs([__FILE__, false])->getMock(); - line 4607: $file->expects($this->any())->method('getSize')->willReturn(8919); - line 4608: $file->expects($this->any())->method('isValid')->willReturn(true); - line 4609: $otherFile = $this->getMockBuilder(UploadedFile::class)->onlyMethods(['getSize', 'isValid'])->setConstructorArgs([__FILE__, false])->getMock(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4636: public function testValidateLtMessagesAreCorrect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 4636: public function testValidateLtMessagesAreCorrect() - line 4638: $trans = $this->getIlluminateArrayTranslator(); - line 4639: $trans->addLines([ - line 4646: $file = $this->getMockBuilder(UploadedFile::class)->onlyMethods(['getSize', 'isValid'])->setConstructorArgs([__FILE__, false])->getMock(); - line 4647: $file->expects($this->any())->method('getSize')->willReturn(8919); - line 4648: $file->expects($this->any())->method('isValid')->willReturn(true); - line 4649: $otherFile = $this->getMockBuilder(UploadedFile::class)->onlyMethods(['getSize', 'isValid'])->setConstructorArgs([__FILE__, false])->getMock(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4676: public function testValidateLteMessagesAreCorrect() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 4676: public function testValidateLteMessagesAreCorrect() - line 4678: $trans = $this->getIlluminateArrayTranslator(); - line 4679: $trans->addLines([ - line 4686: $file = $this->getMockBuilder(UploadedFile::class)->onlyMethods(['getSize', 'isValid'])->setConstructorArgs([__FILE__, false])->getMock(); - line 4687: $file->expects($this->any())->method('getSize')->willReturn(8919); - line 4688: $file->expects($this->any())->method('isValid')->willReturn(true); - line 4689: $otherFile = $this->getMockBuilder(UploadedFile::class)->onlyMethods(['getSize', 'isValid'])->setConstructorArgs([__FILE__, false])->getMock(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4716: public function testValidateIp() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 4716: public function testValidateIp() - line 4718: $trans = $this->getIlluminateArrayTranslator(); - line 4720: $this->assertFalse($v->passes()); - line 4723: $this->assertTrue($v->passes()); - line 4726: $this->assertTrue($v->passes()); - line 4729: $this->assertTrue($v->passes()); - line 4732: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4738: public function testValidateMacAddress() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 20. Evidence: - line 4738: public function testValidateMacAddress() - line 4740: $trans = $this->getIlluminateArrayTranslator(); - line 4742: $this->assertFalse($v->passes()); - line 4744: $trans = $this->getIlluminateArrayTranslator(); - line 4746: $this->assertTrue($v->passes()); - line 4748: $trans = $this->getIlluminateArrayTranslator(); - line 4750: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4781: public function testValidateEmail() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 4781: public function testValidateEmail() - line 4783: $trans = $this->getIlluminateArrayTranslator(); - line 4785: $this->assertFalse($v->passes()); - line 4788: $this->assertFalse($v->passes()); - line 4799: $this->assertFalse($v->passes()); - line 4810: $this->assertTrue($v->passes()); - line 4813: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4816: public function testValidateEmailWithInternationalCharacters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 4816: public function testValidateEmailWithInternationalCharacters() - line 4818: $v = new Validator($this->getIlluminateArrayTranslator(), ['x' => 'foo@gmäil.com'], ['x' => 'email']); - line 4819: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4822: public function testValidateEmailWithStrictCheck() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 4822: public function testValidateEmailWithStrictCheck() - line 4824: $v = new Validator($this->getIlluminateArrayTranslator(), ['x' => 'foo@bar '], ['x' => 'email:strict']); - line 4825: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4828: public function testValidateEmailWithFilterCheck() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 4828: public function testValidateEmailWithFilterCheck() - line 4830: $v = new Validator($this->getIlluminateArrayTranslator(), ['x' => 'foo@bar'], ['x' => 'email:filter']); - line 4831: $this->assertFalse($v->passes()); - line 4833: $v = new Validator($this->getIlluminateArrayTranslator(), ['x' => 'example@example.com'], ['x' => 'email:filter']); - line 4834: $this->assertTrue($v->passes()); - line 4837: $v = new Validator($this->getIlluminateArrayTranslator(), ['x' => 'exämple@example.com'], ['x' => 'email:filter']); - line 4838: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4844: public function testValidateEmailWithFilterUnicodeCheck() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 4844: public function testValidateEmailWithFilterUnicodeCheck() - line 4846: $v = new Validator($this->getIlluminateArrayTranslator(), ['x' => 'foo@bar'], ['x' => 'email:filter_unicode']); - line 4847: $this->assertFalse($v->passes()); - line 4849: $v = new Validator($this->getIlluminateArrayTranslator(), ['x' => 'example@example.com'], ['x' => 'email:filter_unicode']); - line 4850: $this->assertTrue($v->passes()); - line 4853: $v = new Validator($this->getIlluminateArrayTranslator(), ['x' => 'exämple@example.com'], ['x' => 'email:filter_unicode']); - line 4854: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4860: public function testValidateEmailWithCustomClassCheck() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4860: public function testValidateEmailWithCustomClassCheck() - line 4862: $container = m::mock(Container::class); - line 4865: $v = new Validator($this->getIlluminateArrayTranslator(), ['x' => 'foo@bar '], ['x' => 'email:'.NoRFCWarningsValidation::class]); - line 4866: $v->setContainer($container); - line 4868: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 4862: $container = m::mock(Container::class); - Test @ line 4871: public function testValidateUrlWithProtocols() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 4871: public function testValidateUrlWithProtocols() - line 4873: $trans = $this->getIlluminateArrayTranslator(); - line 4877: $this->assertTrue($v->passes()); - line 4881: $this->assertFalse($v->passes()); - line 4884: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4888: public function testValidateUrlWithValidUrls($validUrl) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 4888: public function testValidateUrlWithValidUrls($validUrl) - line 4890: $trans = $this->getIlluminateArrayTranslator(); - line 4892: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 4896: public function testValidateUrlWithInvalidUrls($invalidUrl) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 4896: public function testValidateUrlWithInvalidUrls($invalidUrl) - line 4898: $trans = $this->getIlluminateArrayTranslator(); - line 4900: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5168: public function testValidateActiveUrl($data, $outcome) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 5168: public function testValidateActiveUrl($data, $outcome) - line 5170: $trans = $this->getIlluminateArrayTranslator(); - line 5175: ->shouldAllowMockingProtectedMethods() - line 5182: $this->assertEquals($outcome, $v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5211: public function testValidateImage() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 45. Evidence: - line 5211: public function testValidateImage() - line 5213: $trans = $this->getIlluminateArrayTranslator(); - line 5216: $file = $this->getMockBuilder(UploadedFile::class)->onlyMethods(['guessExtension', 'getClientOriginalExtension'])->setConstructorArgs($uploadedFile)->getMock(); - line 5217: $file->expects($this->any())->method('guessExtension')->willReturn('php'); - line 5218: $file->expects($this->any())->method('getClientOriginalExtension')->willReturn('php'); - line 5220: $this->assertFalse($v->passes()); - line 5222: $file2 = $this->getMockBuilder(UploadedFile::class)->onlyMethods(['guessExtension', 'getClientOriginalExtension'])->setConstructorArgs($uploadedFile)->getMock(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5284: public function testValidateImageDoesNotAllowPhpExtensionsOnImageMime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 5284: public function testValidateImageDoesNotAllowPhpExtensionsOnImageMime() - line 5286: $trans = $this->getIlluminateArrayTranslator(); - line 5289: $file = $this->getMockBuilder(UploadedFile::class)->onlyMethods(['guessExtension', 'getClientOriginalExtension'])->setConstructorArgs($uploadedFile)->getMock(); - line 5290: $file->expects($this->any())->method('guessExtension')->willReturn('jpeg'); - line 5291: $file->expects($this->any())->method('getClientOriginalExtension')->willReturn('php'); - line 5293: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5296: public function testValidateImageDimensions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 38. Evidence: - line 5296: public function testValidateImageDimensions() - line 5300: $trans = $this->getIlluminateArrayTranslator(); - line 5303: $this->assertTrue($v->fails()); - line 5306: $this->assertTrue($v->passes()); - line 5309: $this->assertTrue($v->fails()); - line 5312: $this->assertTrue($v->passes()); - line 5315: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5428: public function testValidateMimetypes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 13. Evidence: - line 5428: public function testValidateMimetypes() - line 5430: $trans = $this->getIlluminateArrayTranslator(); - line 5434: $file = $this->getMockBuilder(UploadedFile::class)->onlyMethods(['guessExtension', 'getClientOriginalExtension'])->setConstructorArgs($uploadedFile)->getMock(); - line 5435: $file->expects($this->any())->method('guessExtension')->willReturn('rtf'); - line 5436: $file->expects($this->any())->method('getClientOriginalExtension')->willReturn('rtf'); - line 5438: $file = $this->getMockBuilder(UploadedFile::class)->onlyMethods(['getMimeType'])->setConstructorArgs($uploadedFile)->getMock(); - line 5439: $file->expects($this->any())->method('getMimeType')->willReturn('text/rtf'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5454: public function testValidateMime() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 17. Evidence: - line 5454: public function testValidateMime() - line 5456: $trans = $this->getIlluminateArrayTranslator(); - line 5459: $file = $this->getMockBuilder(UploadedFile::class)->onlyMethods(['guessExtension', 'getClientOriginalExtension'])->setConstructorArgs($uploadedFile)->getMock(); - line 5460: $file->expects($this->any())->method('guessExtension')->willReturn('pdf'); - line 5461: $file->expects($this->any())->method('getClientOriginalExtension')->willReturn('pdf'); - line 5463: $this->assertTrue($v->passes()); - line 5465: $file2 = $this->getMockBuilder(UploadedFile::class)->onlyMethods(['guessExtension', 'isValid'])->setConstructorArgs($uploadedFile)->getMock(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5484: public function testValidateExtension() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 17. Evidence: - line 5484: public function testValidateExtension() - line 5486: $trans = $this->getIlluminateArrayTranslator(); - line 5489: $file = $this->getMockBuilder(UploadedFile::class)->onlyMethods(['getClientOriginalExtension'])->setConstructorArgs($uploadedFile)->getMock(); - line 5490: $file->expects($this->any())->method('getClientOriginalExtension')->willReturn('pdf'); - line 5492: $this->assertTrue($v->passes()); - line 5494: $file = $this->getMockBuilder(UploadedFile::class)->onlyMethods(['getClientOriginalExtension'])->setConstructorArgs($uploadedFile)->getMock(); - line 5495: $file->expects($this->any())->method('getClientOriginalExtension')->willReturn('jpg'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5516: public function testValidateMimeEnforcesPhpCheck() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 5516: public function testValidateMimeEnforcesPhpCheck() - line 5518: $trans = $this->getIlluminateArrayTranslator(); - line 5521: $file = $this->getMockBuilder(UploadedFile::class)->onlyMethods(['guessExtension', 'getClientOriginalExtension'])->setConstructorArgs($uploadedFile)->getMock(); - line 5522: $file->expects($this->any())->method('guessExtension')->willReturn('pdf'); - line 5523: $file->expects($this->any())->method('getClientOriginalExtension')->willReturn('php'); - line 5525: $this->assertFalse($v->passes()); - line 5527: $file2 = $this->getMockBuilder(UploadedFile::class)->onlyMethods(['guessExtension', 'getClientOriginalExtension'])->setConstructorArgs($uploadedFile)->getMock(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5535: public function testValidateFile() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 5535: public function testValidateFile() - line 5537: $trans = $this->getIlluminateArrayTranslator(); - line 5541: $this->assertTrue($v->fails()); - line 5544: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5547: public function testEmptyRulesSkipped() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 5547: public function testEmptyRulesSkipped() - line 5549: $trans = $this->getIlluminateArrayTranslator(); - line 5551: $this->assertTrue($v->passes()); - line 5554: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5557: public function testAlternativeFormat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 5557: public function testAlternativeFormat() - line 5559: $trans = $this->getIlluminateArrayTranslator(); - line 5561: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5564: public function testNumericKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 5564: public function testNumericKeys() - line 5566: $trans = $this->getIlluminateArrayTranslator(); - line 5568: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5571: public function testMergeRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 5571: public function testMergeRules() - line 5573: $trans = $this->getIlluminateArrayTranslator(); - line 5575: $v->addRules(['x' => ['required', ['max', 10]], 'a.1' => 'digits:1']); - line 5582: $v->getRules() - line 5584: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5587: public function testValidateAlpha() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 5587: public function testValidateAlpha() - line 5589: $trans = $this->getIlluminateArrayTranslator(); - line 5591: $this->assertTrue($v->passes()); - line 5593: $trans = $this->getIlluminateArrayTranslator(); - line 5599: $this->assertFalse($v->passes()); - line 5602: $this->assertFalse($v->passes()); - line 5605: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5638: public function testValidateAlphaNum() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 5638: public function testValidateAlphaNum() - line 5640: $trans = $this->getIlluminateArrayTranslator(); - line 5642: $this->assertTrue($v->passes()); - line 5645: $this->assertFalse($v->passes()); - line 5648: $this->assertTrue($v->passes()); - line 5651: $this->assertTrue($v->passes()); - line 5654: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5660: public function testValidateAlphaDash() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 5660: public function testValidateAlphaDash() - line 5662: $trans = $this->getIlluminateArrayTranslator(); - line 5664: $this->assertTrue($v->passes()); - line 5667: $this->assertFalse($v->passes()); - line 5670: $this->assertTrue($v->passes()); - line 5673: $this->assertTrue($v->passes()); - line 5676: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5679: public function testValidateAlphaWithAsciiOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 16. Evidence: - line 5679: public function testValidateAlphaWithAsciiOption() - line 5681: $trans = $this->getIlluminateArrayTranslator(); - line 5683: $this->assertTrue($v->passes()); - line 5685: $trans = $this->getIlluminateArrayTranslator(); - line 5691: $this->assertFalse($v->passes()); - line 5694: $this->assertFalse($v->passes()); - line 5697: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5730: public function testValidateAlphaNumWithAsciiOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 5730: public function testValidateAlphaNumWithAsciiOption() - line 5732: $trans = $this->getIlluminateArrayTranslator(); - line 5734: $this->assertTrue($v->passes()); - line 5737: $this->assertFalse($v->passes()); - line 5740: $this->assertFalse($v->passes()); - line 5743: $this->assertFalse($v->passes()); - line 5746: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5755: public function testValidateAlphaDashWithAsciiOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 5755: public function testValidateAlphaDashWithAsciiOption() - line 5757: $trans = $this->getIlluminateArrayTranslator(); - line 5759: $this->assertTrue($v->passes()); - line 5762: $this->assertFalse($v->passes()); - line 5765: $this->assertFalse($v->passes()); - line 5768: $this->assertFalse($v->passes()); - line 5771: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5777: public function testValidateTimezone() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 5777: public function testValidateTimezone() - line 5779: $trans = $this->getIlluminateArrayTranslator(); - line 5781: $this->assertFalse($v->passes()); - line 5784: $this->assertFalse($v->passes()); - line 5787: $this->assertTrue($v->passes()); - line 5790: $this->assertTrue($v->passes()); - line 5793: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5811: public function testValidateTimezoneWithAfricaOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 5811: public function testValidateTimezoneWithAfricaOption() - line 5813: $trans = $this->getIlluminateArrayTranslator(); - line 5815: $this->assertFalse($v->passes()); - line 5818: $this->assertFalse($v->passes()); - line 5821: $this->assertFalse($v->passes()); - line 5824: $this->assertTrue($v->passes()); - line 5827: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5845: public function testValidateTimezoneWithAmericaOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 5845: public function testValidateTimezoneWithAmericaOption() - line 5847: $trans = $this->getIlluminateArrayTranslator(); - line 5849: $this->assertFalse($v->passes()); - line 5852: $this->assertFalse($v->passes()); - line 5855: $this->assertFalse($v->passes()); - line 5858: $this->assertFalse($v->passes()); - line 5861: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5879: public function testValidateTimezoneWithAntarcticaOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 5879: public function testValidateTimezoneWithAntarcticaOption() - line 5881: $trans = $this->getIlluminateArrayTranslator(); - line 5883: $this->assertFalse($v->passes()); - line 5886: $this->assertFalse($v->passes()); - line 5889: $this->assertFalse($v->passes()); - line 5892: $this->assertFalse($v->passes()); - line 5895: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5913: public function testValidateTimezoneWithArcticOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 5913: public function testValidateTimezoneWithArcticOption() - line 5915: $trans = $this->getIlluminateArrayTranslator(); - line 5917: $this->assertFalse($v->passes()); - line 5920: $this->assertFalse($v->passes()); - line 5923: $this->assertFalse($v->passes()); - line 5926: $this->assertFalse($v->passes()); - line 5929: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5947: public function testValidateTimezoneWithAsiaOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 5947: public function testValidateTimezoneWithAsiaOption() - line 5949: $trans = $this->getIlluminateArrayTranslator(); - line 5951: $this->assertFalse($v->passes()); - line 5954: $this->assertFalse($v->passes()); - line 5957: $this->assertFalse($v->passes()); - line 5960: $this->assertFalse($v->passes()); - line 5963: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 5981: public function testValidateTimezoneWithAtlanticOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 5981: public function testValidateTimezoneWithAtlanticOption() - line 5983: $trans = $this->getIlluminateArrayTranslator(); - line 5985: $this->assertFalse($v->passes()); - line 5988: $this->assertFalse($v->passes()); - line 5991: $this->assertFalse($v->passes()); - line 5994: $this->assertFalse($v->passes()); - line 5997: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6015: public function testValidateTimezoneWithAustraliaOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 6015: public function testValidateTimezoneWithAustraliaOption() - line 6017: $trans = $this->getIlluminateArrayTranslator(); - line 6019: $this->assertFalse($v->passes()); - line 6022: $this->assertFalse($v->passes()); - line 6025: $this->assertFalse($v->passes()); - line 6028: $this->assertFalse($v->passes()); - line 6031: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6049: public function testValidateTimezoneWithEuropeOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 6049: public function testValidateTimezoneWithEuropeOption() - line 6051: $trans = $this->getIlluminateArrayTranslator(); - line 6053: $this->assertFalse($v->passes()); - line 6056: $this->assertFalse($v->passes()); - line 6059: $this->assertFalse($v->passes()); - line 6062: $this->assertFalse($v->passes()); - line 6065: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6083: public function testValidateTimezoneWithIndianOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 6083: public function testValidateTimezoneWithIndianOption() - line 6085: $trans = $this->getIlluminateArrayTranslator(); - line 6087: $this->assertFalse($v->passes()); - line 6090: $this->assertFalse($v->passes()); - line 6093: $this->assertFalse($v->passes()); - line 6096: $this->assertFalse($v->passes()); - line 6099: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6117: public function testValidateTimezoneWithPacificOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 6117: public function testValidateTimezoneWithPacificOption() - line 6119: $trans = $this->getIlluminateArrayTranslator(); - line 6121: $this->assertFalse($v->passes()); - line 6124: $this->assertFalse($v->passes()); - line 6127: $this->assertFalse($v->passes()); - line 6130: $this->assertFalse($v->passes()); - line 6133: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6151: public function testValidateTimezoneWithUTCOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 6151: public function testValidateTimezoneWithUTCOption() - line 6153: $trans = $this->getIlluminateArrayTranslator(); - line 6155: $this->assertFalse($v->passes()); - line 6158: $this->assertFalse($v->passes()); - line 6161: $this->assertTrue($v->passes()); - line 6164: $this->assertFalse($v->passes()); - line 6167: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6182: public function testValidateTimezoneWithAllOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 6182: public function testValidateTimezoneWithAllOption() - line 6184: $trans = $this->getIlluminateArrayTranslator(); - line 6186: $this->assertFalse($v->passes()); - line 6189: $this->assertFalse($v->passes()); - line 6192: $this->assertTrue($v->passes()); - line 6195: $this->assertTrue($v->passes()); - line 6198: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6219: public function testValidateTimezoneWithAllWithBCOption() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 6219: public function testValidateTimezoneWithAllWithBCOption() - line 6221: $trans = $this->getIlluminateArrayTranslator(); - line 6223: $this->assertFalse($v->passes()); - line 6226: $this->assertFalse($v->passes()); - line 6229: $this->assertTrue($v->passes()); - line 6232: $this->assertTrue($v->passes()); - line 6235: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6256: public function testValidateTimezoneWithPerCountryOptionWithoutSpecifyingCountry() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 6256: public function testValidateTimezoneWithPerCountryOptionWithoutSpecifyingCountry() - line 6258: $trans = $this->getIlluminateArrayTranslator(); - line 6260: $this->assertFalse($v->passes()); - line 6263: $this->assertFalse($v->passes()); - line 6266: $this->assertFalse($v->passes()); - line 6269: $this->assertTrue($v->passes()); - line 6272: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6293: public function testValidateRegex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 6293: public function testValidateRegex() - line 6295: $trans = $this->getIlluminateArrayTranslator(); - line 6297: $this->assertTrue($v->passes()); - line 6300: $this->assertFalse($v->passes()); - line 6304: $this->assertTrue($v->passes()); - line 6307: $this->assertTrue($v->passes()); - line 6310: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6316: public function testValidateNotRegex() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 6316: public function testValidateNotRegex() - line 6318: $trans = $this->getIlluminateArrayTranslator(); - line 6320: $this->assertTrue($v->passes()); - line 6323: $this->assertFalse($v->passes()); - line 6327: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6330: public function testValidateDateAndFormat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 26. Evidence: - line 6330: public function testValidateDateAndFormat() - line 6333: $trans = $this->getIlluminateArrayTranslator(); - line 6335: $this->assertTrue($v->passes()); - line 6338: $this->assertTrue($v->passes()); - line 6341: $this->assertTrue($v->fails()); - line 6344: $this->assertTrue($v->fails()); - line 6347: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_TIMEZONE] Note: date_default_timezone_set mutates global timezone unless restored. Evidence: - line 6332: date_default_timezone_set('UTC'); - Test @ line 6411: public function testDateEquals() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 20. Evidence: - line 6411: public function testDateEquals() - line 6414: $trans = $this->getIlluminateArrayTranslator(); - line 6416: $this->assertTrue($v->passes()); - line 6419: $this->assertTrue($v->passes()); - line 6422: $this->assertTrue($v->fails()); - line 6425: $this->assertTrue($v->passes()); - line 6428: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_TIMEZONE] Note: date_default_timezone_set mutates global timezone unless restored. Evidence: - line 6413: date_default_timezone_set('UTC'); - Test @ line 6473: public function testDateEqualsRespectsCarbonTestNowWhenParameterIsRelative() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 6473: public function testDateEqualsRespectsCarbonTestNowWhenParameterIsRelative() - line 6476: $trans = $this->getIlluminateArrayTranslator(); - line 6480: $this->assertTrue($v->passes()); - line 6483: $this->assertTrue($v->passes()); - line 6486: $this->assertTrue($v->fails()); - line 6489: $this->assertTrue($v->fails()); - line 6492: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_TIMEZONE] Note: date_default_timezone_set mutates global timezone unless restored. Evidence: - line 6475: date_default_timezone_set('UTC'); - Test @ line 6519: public function testBeforeAndAfter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 28. Evidence: - line 6519: public function testBeforeAndAfter() - line 6522: $trans = $this->getIlluminateArrayTranslator(); - line 6524: $this->assertTrue($v->passes()); - line 6527: $this->assertFalse($v->passes()); - line 6530: $this->assertTrue($v->passes()); - line 6533: $this->assertFalse($v->passes()); - line 6536: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_TIMEZONE] Note: date_default_timezone_set mutates global timezone unless restored. Evidence: - line 6521: date_default_timezone_set('UTC'); - Test @ line 6605: public function testBeforeAndAfterWithFormat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 39. Evidence: - line 6605: public function testBeforeAndAfterWithFormat() - line 6608: $trans = $this->getIlluminateArrayTranslator(); - line 6610: $this->assertTrue($v->fails()); - line 6613: $this->assertTrue($v->fails()); - line 6616: $this->assertTrue($v->passes()); - line 6619: $this->assertTrue($v->fails()); - line 6622: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_TIMEZONE] Note: date_default_timezone_set mutates global timezone unless restored. Evidence: - line 6607: date_default_timezone_set('UTC'); - Test @ line 6724: public function testWeakBeforeAndAfter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 35. Evidence: - line 6724: public function testWeakBeforeAndAfter() - line 6727: $trans = $this->getIlluminateArrayTranslator(); - line 6729: $this->assertTrue($v->passes()); - line 6732: $this->assertTrue($v->passes()); - line 6735: $this->assertTrue($v->fails()); - line 6738: $this->assertTrue($v->passes()); - line 6741: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_TIMEZONE] Note: date_default_timezone_set mutates global timezone unless restored. Evidence: - line 6726: date_default_timezone_set('UTC'); - Test @ line 6831: public function testSometimesAddingRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 18. Evidence: - line 6831: public function testSometimesAddingRules() - line 6833: $trans = $this->getIlluminateArrayTranslator(); - line 6835: $v->sometimes('x', 'Confirmed', function ($i) { - line 6838: $this->assertEquals(['x' => ['Required', 'Confirmed']], $v->getRules()); - line 6840: $trans = $this->getIlluminateArrayTranslator(); - line 6842: $v->sometimes('x', 'Required', function ($i) { - line 6845: $this->assertEquals(['x' => ['Required'], 'y' => ['Required']], $v->getRules()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 6876: public function testItemAwareSometimesAddingRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 66. Evidence: - line 6876: public function testItemAwareSometimesAddingRules() - line 6879: $trans = $this->getIlluminateArrayTranslator(); - line 6881: $v->sometimes(['users'], 'array', function ($i, $item) { - line 6884: $this->assertEquals(['users' => ['array'], 'users.0.name' => ['required', 'string'], 'users.1.name' => ['required', 'string']], $v->getRules()); - line 6887: $trans = $this->getIlluminateArrayTranslator(); - line 6889: $v->sometimes(['users'], 'array', function ($i, $item) { - line 6892: $this->assertEquals([], $v->getRules()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7056: public function testValidateSometimesImplicitEachWithAsterisksBeforeAndAfter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 7056: public function testValidateSometimesImplicitEachWithAsterisksBeforeAndAfter() - line 7058: $trans = $this->getIlluminateArrayTranslator(); - line 7065: $v->sometimes('foo.*.start', ['before:foo.*.end'], function () { - line 7068: $this->assertTrue($v->passes()); - line 7075: $v->sometimes('foo.*.start', 'before:foo.*.end', function () { - line 7078: $this->assertTrue($v->passes()); - line 7085: $v->sometimes('foo.*.end', ['before:foo.*.start'], function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7112: public function testCustomValidators() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 24. Evidence: - line 7112: public function testCustomValidators() - line 7114: $trans = $this->getIlluminateArrayTranslator(); - line 7115: $trans->addLines(['validation.foo' => 'foo!'], 'en'); - line 7117: $v->addExtension('foo', function () { - line 7120: $this->assertFalse($v->passes()); - line 7121: $v->messages()->setFormat(':message'); - line 7122: $this->assertSame('foo!', $v->messages()->first('name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7157: public function testClassBasedCustomValidators() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 7157: public function testClassBasedCustomValidators() - line 7159: $trans = $this->getIlluminateArrayTranslator(); - line 7160: $trans->addLines(['validation.foo' => 'foo!'], 'en'); - line 7162: $v->setContainer($container = m::mock(Container::class)); - line 7163: $v->addExtension('foo', 'Foo@bar'); - line 7166: $this->assertFalse($v->passes()); - line 7167: $v->messages()->setFormat(':message'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 7162: $v->setContainer($container = m::mock(Container::class)); - line 7164: $container->shouldReceive('make')->once()->with('Foo')->andReturn($foo = m::mock(stdClass::class)); - Test @ line 7171: public function testClassBasedCustomValidatorsUsingConventionalMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 7171: public function testClassBasedCustomValidatorsUsingConventionalMethod() - line 7173: $trans = $this->getIlluminateArrayTranslator(); - line 7174: $trans->addLines(['validation.foo' => 'foo!'], 'en'); - line 7176: $v->setContainer($container = m::mock(Container::class)); - line 7177: $v->addExtension('foo', 'Foo'); - line 7180: $this->assertFalse($v->passes()); - line 7181: $v->messages()->setFormat(':message'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 7176: $v->setContainer($container = m::mock(Container::class)); - line 7178: $container->shouldReceive('make')->once()->with('Foo')->andReturn($foo = m::mock(stdClass::class)); - Test @ line 7185: public function testCustomImplicitValidators() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 7185: public function testCustomImplicitValidators() - line 7187: $trans = $this->getIlluminateArrayTranslator(); - line 7189: $v->addImplicitExtension('implicit_rule', function () { - line 7192: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7195: public function testCustomDependentValidators() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 7195: public function testCustomDependentValidators() - line 7197: $trans = $this->getIlluminateArrayTranslator(); - line 7204: $v->addDependentExtension('dependent_rule', function ($name) use ($v) { - line 7207: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7210: public function testExceptionThrownOnIncorrectParameterCount() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 7210: public function testExceptionThrownOnIncorrectParameterCount() - line 7212: $this->expectException(InvalidArgumentException::class); - line 7213: $this->expectExceptionMessage('Validation rule required_if requires at least 2 parameters.'); - line 7215: $trans = $this->getTranslator(); - line 7217: $v->passes(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 7210: public function testExceptionThrownOnIncorrectParameterCount() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 7220: public function testValidateImplicitEachWithAsterisks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 7220: public function testValidateImplicitEachWithAsterisks() - line 7222: $trans = $this->getIlluminateArrayTranslator(); - line 7230: $this->assertFalse($v->passes()); - line 7237: $this->assertTrue($v->passes()); - line 7244: $this->assertFalse($v->passes()); - line 7251: $this->assertTrue($v->passes()); - line 7257: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7288: public function testSometimesOnArraysInImplicitRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 7288: public function testSometimesOnArraysInImplicitRules() - line 7290: $trans = $this->getIlluminateArrayTranslator(); - line 7293: $this->assertTrue($v->passes()); - line 7301: $this->assertFalse($v->passes()); - line 7302: $this->assertEquals(['validation.string'], $v->errors()->get('names.0.second')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7305: public function testValidateImplicitEachWithAsterisksForRequiredNonExistingKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 11. Evidence: - line 7305: public function testValidateImplicitEachWithAsterisksForRequiredNonExistingKey() - line 7307: $trans = $this->getIlluminateArrayTranslator(); - line 7311: $this->assertFalse($v->passes()); - line 7315: $this->assertFalse($v->passes()); - line 7319: $this->assertTrue($v->passes()); - line 7323: $this->assertFalse($v->passes()); - line 7331: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7382: public function testParsingArrayKeysWithDot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 7382: public function testParsingArrayKeysWithDot() - line 7384: $trans = $this->getIlluminateArrayTranslator(); - line 7387: $this->assertTrue($v->fails()); - line 7390: $this->assertTrue($v->fails()); - line 7393: $this->assertFalse($v->fails()); - line 7396: $this->assertTrue($v->fails()); - line 7399: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7402: public function testParsingArrayKeysWithDotWhenTestingExistence() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 7402: public function testParsingArrayKeysWithDotWhenTestingExistence() - line 7404: $trans = $this->getIlluminateArrayTranslator(); - line 7407: $this->assertFalse($v->passes()); - line 7410: $this->assertFalse($v->passes()); - line 7413: $this->assertTrue($v->passes()); - line 7416: $this->assertTrue($v->passes()); - line 7419: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7425: public function testPassingSlashVulnerability() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 7425: public function testPassingSlashVulnerability() - line 7427: $trans = $this->getIlluminateArrayTranslator(); - line 7434: $this->assertTrue($v->fails()); - line 7441: $this->assertTrue($v->passes()); - line 7448: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7451: public function testPlaceholdersAreReplaced() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 7451: public function testPlaceholdersAreReplaced() - line 7453: $trans = $this->getIlluminateArrayTranslator(); - line 7460: $this->assertTrue($v->fails()); - line 7467: $this->assertTrue($v->passes()); - line 7474: $this->assertTrue($v->fails()); - line 7475: $this->assertArrayHasKey('foo.bar', $v->errors()->getMessages()); - line 7482: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7486: public function testDotPlaceholdersInParametersAreReplacedIn() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 7486: public function testDotPlaceholdersInParametersAreReplacedIn() - line 7488: $trans = $this->getIlluminateArrayTranslator(); - line 7489: $trans->addLines(['validation.required_without' => 'The :attribute field is required when :values is not present.'], 'en'); - line 7495: $this->assertTrue($v->fails()); - line 7496: $this->assertSame('The name field is required when user.name is not present.', $v->messages()->first()); - line 7502: $this->assertTrue($v->fails()); - line 7503: $this->assertSame('The name field is required when user.name / admin.name is not present.', $v->messages()->first()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7506: public function testCoveringEmptyKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 7506: public function testCoveringEmptyKeys() - line 7508: $trans = $this->getIlluminateArrayTranslator(); - line 7510: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7513: public function testImplicitEachWithAsterisksWithArrayValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 7513: public function testImplicitEachWithAsterisksWithArrayValues() - line 7515: $trans = $this->getIlluminateArrayTranslator(); - line 7518: $this->assertEquals(['foo' => ['bar.baz' => '']], $v->validated()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7521: public function testValidateNestedArrayWithCommonParentChildKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 7521: public function testValidateNestedArrayWithCommonParentChildKey() - line 7523: $trans = $this->getIlluminateArrayTranslator(); - line 7542: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7545: public function testValidateNestedArrayWithNonNumericKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 7545: public function testValidateNestedArrayWithNonNumericKeys() - line 7547: $trans = $this->getIlluminateArrayTranslator(); - line 7556: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7559: public function testValidateImplicitEachWithAsterisksConfirmed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 7559: public function testValidateImplicitEachWithAsterisksConfirmed() - line 7561: $trans = $this->getIlluminateArrayTranslator(); - line 7570: $this->assertTrue($v->passes()); - line 7589: $this->assertTrue($v->passes()); - line 7598: $this->assertFalse($v->passes()); - line 7599: $this->assertTrue($v->messages()->has('foo.0.password')); - line 7600: $this->assertTrue($v->messages()->has('foo.1.password')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7618: public function testValidateImplicitEachWithAsterisksDifferent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 7618: public function testValidateImplicitEachWithAsterisksDifferent() - line 7620: $trans = $this->getIlluminateArrayTranslator(); - line 7629: $this->assertTrue($v->passes()); - line 7642: $this->assertTrue($v->passes()); - line 7651: $this->assertFalse($v->passes()); - line 7652: $this->assertTrue($v->messages()->has('foo.0.name')); - line 7653: $this->assertTrue($v->messages()->has('foo.1.name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7671: public function testValidateImplicitEachWithAsterisksSame() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 7671: public function testValidateImplicitEachWithAsterisksSame() - line 7673: $trans = $this->getIlluminateArrayTranslator(); - line 7682: $this->assertTrue($v->passes()); - line 7695: $this->assertTrue($v->passes()); - line 7704: $this->assertFalse($v->passes()); - line 7705: $this->assertTrue($v->messages()->has('foo.0.name')); - line 7706: $this->assertTrue($v->messages()->has('foo.1.name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7724: public function testValidateImplicitEachWithAsterisksRequired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 7724: public function testValidateImplicitEachWithAsterisksRequired() - line 7726: $trans = $this->getIlluminateArrayTranslator(); - line 7735: $this->assertTrue($v->passes()); - line 7744: $this->assertTrue($v->passes()); - line 7753: $this->assertFalse($v->passes()); - line 7754: $this->assertTrue($v->messages()->has('foo.0.name')); - line 7755: $this->assertTrue($v->messages()->has('foo.1.name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7773: public function testValidateImplicitEachWithAsterisksRequiredIf() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 7773: public function testValidateImplicitEachWithAsterisksRequiredIf() - line 7775: $trans = $this->getIlluminateArrayTranslator(); - line 7784: $this->assertTrue($v->passes()); - line 7793: $this->assertTrue($v->passes()); - line 7802: $this->assertFalse($v->passes()); - line 7803: $this->assertTrue($v->messages()->has('foo.0.name')); - line 7804: $this->assertTrue($v->messages()->has('foo.1.name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7822: public function testValidateImplicitEachWithAsterisksRequiredUnless() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 7822: public function testValidateImplicitEachWithAsterisksRequiredUnless() - line 7824: $trans = $this->getIlluminateArrayTranslator(); - line 7833: $this->assertTrue($v->passes()); - line 7842: $this->assertTrue($v->passes()); - line 7851: $this->assertFalse($v->passes()); - line 7852: $this->assertTrue($v->messages()->has('foo.0.name')); - line 7853: $this->assertTrue($v->messages()->has('foo.1.name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7871: public function testValidateImplicitEachWithAsterisksRequiredWith() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 7871: public function testValidateImplicitEachWithAsterisksRequiredWith() - line 7873: $trans = $this->getIlluminateArrayTranslator(); - line 7882: $this->assertTrue($v->passes()); - line 7891: $this->assertTrue($v->passes()); - line 7900: $this->assertFalse($v->passes()); - line 7901: $this->assertTrue($v->messages()->has('foo.0.name')); - line 7902: $this->assertTrue($v->messages()->has('foo.1.name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7928: public function testValidateImplicitEachWithAsterisksRequiredWithAll() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 7928: public function testValidateImplicitEachWithAsterisksRequiredWithAll() - line 7930: $trans = $this->getIlluminateArrayTranslator(); - line 7939: $this->assertTrue($v->passes()); - line 7948: $this->assertTrue($v->passes()); - line 7957: $this->assertFalse($v->passes()); - line 7958: $this->assertTrue($v->messages()->has('foo.0.name')); - line 7959: $this->assertTrue($v->messages()->has('foo.1.name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 7977: public function testValidateImplicitEachWithAsterisksRequiredWithout() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 7977: public function testValidateImplicitEachWithAsterisksRequiredWithout() - line 7979: $trans = $this->getIlluminateArrayTranslator(); - line 7988: $this->assertTrue($v->passes()); - line 7997: $this->assertTrue($v->passes()); - line 8006: $this->assertFalse($v->passes()); - line 8007: $this->assertTrue($v->messages()->has('foo.0.name')); - line 8008: $this->assertTrue($v->messages()->has('foo.1.name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 8026: public function testValidateImplicitEachWithAsterisksRequiredWithoutAll() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 8026: public function testValidateImplicitEachWithAsterisksRequiredWithoutAll() - line 8028: $trans = $this->getIlluminateArrayTranslator(); - line 8038: $this->assertTrue($v->passes()); - line 8049: $this->assertTrue($v->passes()); - line 8057: $this->assertFalse($v->passes()); - line 8058: $this->assertTrue($v->messages()->has('foo.0.name')); - line 8059: $this->assertTrue($v->messages()->has('foo.1.name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 8077: public function testValidateImplicitEachWithAsterisksBeforeAndAfter() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 8077: public function testValidateImplicitEachWithAsterisksBeforeAndAfter() - line 8079: $trans = $this->getIlluminateArrayTranslator(); - line 8086: $this->assertTrue($v->passes()); - line 8093: $this->assertTrue($v->fails()); - line 8100: $this->assertTrue($v->passes()); - line 8107: $this->assertTrue($v->fails()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 8130: public function testParsingTablesFromModels() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 8130: public function testParsingTablesFromModels() - line 8132: $trans = $this->getIlluminateArrayTranslator(); - line 8135: $implicit_no_connection = $v->parseTable(ImplicitTableModel::class); - line 8139: $explicit_no_connection = $v->parseTable(ExplicitTableModel::class); - line 8143: $explicit_model_with_prefix = $v->parseTable(ExplicitPrefixedTableModel::class); - line 8147: $explicit_table_with_connection_prefix = $v->parseTable('connection.table'); - line 8151: $noneloquent_no_connection = $v->parseTable(NonEloquentModel::class); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 8130: public function testParsingTablesFromModels() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 8180: public function testUsingSettersWithImplicitRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 8180: public function testUsingSettersWithImplicitRules() - line 8182: $trans = $this->getIlluminateArrayTranslator(); - line 8184: $v->setData(['foo' => ['a', 'b', 'c', 4]]); - line 8185: $this->assertFalse($v->passes()); - line 8187: $trans = $this->getIlluminateArrayTranslator(); - line 8189: $v->setRules(['foo.*' => 'integer']); - line 8190: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 8193: public function testInvalidMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 8193: public function testInvalidMethod() - line 8195: $trans = $this->getIlluminateArrayTranslator(); - line 8212: $v->invalid() - line 8227: $v->invalid() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 8231: public function testValidMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 8231: public function testValidMethod() - line 8233: $trans = $this->getIlluminateArrayTranslator(); - line 8251: $v->valid() - line 8271: $v->valid() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 8275: public function testNestedInvalidMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 8275: public function testNestedInvalidMethod() - line 8277: $trans = $this->getIlluminateArrayTranslator(); - line 8302: $v->invalid() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 8306: public function testMultipleFileUploads() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 8306: public function testMultipleFileUploads() - line 8308: $trans = $this->getIlluminateArrayTranslator(); - line 8312: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 8315: public function testFileUploads() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 8315: public function testFileUploads() - line 8317: $trans = $this->getIlluminateArrayTranslator(); - line 8320: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 8323: public function testCustomValidationObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 38. Evidence: - line 8323: public function testCustomValidationObject() - line 8327: $this->getIlluminateArrayTranslator(), - line 8345: $this->assertTrue($v->passes()); - line 8349: $this->getIlluminateArrayTranslator(), - line 8369: $this->assertTrue($v->fails()); - line 8370: $this->assertSame('name must be taylor', $v->errors()->all()[0]); - line 8374: $this->getIlluminateArrayTranslator(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 8668: public function testCustomValidationObjectWithDotKeysIsCorrectlyPassedValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 8668: public function testCustomValidationObjectWithDotKeysIsCorrectlyPassedValue() - line 8671: $this->getIlluminateArrayTranslator(), - line 8689: $this->assertTrue($v->passes()); - line 8693: $this->getIlluminateArrayTranslator(), - line 8711: $this->assertFalse($v->passes()); - line 8712: $this->assertIsArray($v->failed()['foo.foo.bar']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 8715: public function testImplicitCustomValidationObjects() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 8715: public function testImplicitCustomValidationObjects() - line 8719: $this->getIlluminateArrayTranslator(), - line 8741: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 8745: public function testValidateReturnsValidatedData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 8745: public function testValidateReturnsValidatedData() - line 8749: $v = new Validator($this->getIlluminateArrayTranslator(), $post, ['first' => 'required', 'preferred' => 'required']); - line 8750: $v->sometimes('type', 'required', function () { - line 8753: $data = $v->validate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 8745: public function testValidateReturnsValidatedData() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 8758: public function testValidateReturnsValidatedDataNestedRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 8758: public function testValidateReturnsValidatedDataNestedRules() - line 8764: $v = new Validator($this->getIlluminateArrayTranslator(), $post, $rules); - line 8765: $v->sometimes('type', 'required', function () { - line 8768: $data = $v->validate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 8758: public function testValidateReturnsValidatedDataNestedRules() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 8773: public function testValidateReturnsValidatedDataNestedChildRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 8773: public function testValidateReturnsValidatedDataNestedChildRules() - line 8777: $v = new Validator($this->getIlluminateArrayTranslator(), $post, ['nested.foo' => 'required']); - line 8778: $v->sometimes('nested.type', 'required', function () { - line 8781: $data = $v->validate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 8773: public function testValidateReturnsValidatedDataNestedChildRules() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 8786: public function testValidateReturnsValidatedDataNestedArrayRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 8786: public function testValidateReturnsValidatedDataNestedArrayRules() - line 8790: $v = new Validator($this->getIlluminateArrayTranslator(), $post, ['nested.*.bar' => 'required']); - line 8791: $v->sometimes('nested.*.type', 'required', function () { - line 8794: $data = $v->validate(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 8786: public function testValidateReturnsValidatedDataNestedArrayRules() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 8799: public function testValidateAndValidatedData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 8799: public function testValidateAndValidatedData() - line 8803: $v = new Validator($this->getIlluminateArrayTranslator(), $post, ['first' => 'required', 'preferred' => 'required']); - line 8804: $v->sometimes('type', 'required', function () { - line 8807: $data = $v->validate(); - line 8808: $validatedData = $v->validated(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 8799: public function testValidateAndValidatedData() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 8814: public function testValidatedNotValidateTwiceData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 8814: public function testValidatedNotValidateTwiceData() - line 8819: $v = new Validator($this->getIlluminateArrayTranslator(), $post, ['first' => 'required', 'preferred' => 'required']); - line 8820: $v->after(function () use (&$validateCount) { - line 8823: $data = $v->validate(); - line 8824: $v->validated(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 8814: public function testValidatedNotValidateTwiceData() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 8830: public function testMultiplePassesCalls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 8830: public function testMultiplePassesCalls() - line 8832: $trans = $this->getIlluminateArrayTranslator(); - line 8834: $this->assertFalse($v->passes()); - line 8835: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 8839: public function testValidateWithValidUuid($uuid) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 8839: public function testValidateWithValidUuid($uuid) - line 8841: $trans = $this->getIlluminateArrayTranslator(); - line 8843: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 8847: public function testValidateWithInvalidUuid($uuid) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 8847: public function testValidateWithInvalidUuid($uuid) - line 8849: $trans = $this->getIlluminateArrayTranslator(); - line 8851: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 8855: public function testValidateWithUuidWithVersionConstraint($uuid, $rule, $passes) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 8855: public function testValidateWithUuidWithVersionConstraint($uuid, $rule, $passes) - line 8857: $trans = $this->getIlluminateArrayTranslator(); - line 8859: $this->assertSame($v->passes(), $passes); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 8944: public function testValidateWithValidAscii() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 8944: public function testValidateWithValidAscii() - line 8946: $trans = $this->getIlluminateArrayTranslator(); - line 8948: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 8951: public function testValidateWithInvalidAscii() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 8951: public function testValidateWithInvalidAscii() - line 8953: $trans = $this->getIlluminateArrayTranslator(); - line 8955: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 8958: public function testValidateWithValidUlid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 8958: public function testValidateWithValidUlid() - line 8960: $trans = $this->getIlluminateArrayTranslator(); - line 8962: $this->assertTrue($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 8965: public function testValidateWithInvalidUlid() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 8965: public function testValidateWithInvalidUlid() - line 8967: $trans = $this->getIlluminateArrayTranslator(); - line 8969: $this->assertFalse($v->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9183: public function testExcludeIf($rules, $data, $expectedValidatedData) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 9183: public function testExcludeIf($rules, $data, $expectedValidatedData) - line 9186: $this->getIlluminateArrayTranslator(), - line 9191: $passes = $validator->passes(); - line 9197: json_encode($validator->messages()->toArray(), JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) - line 9203: $this->assertSame($expectedValidatedData, $validator->validated()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9296: public function testExcludeIfWhenValidationFails($rules, $data, $expectedMessages) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 9296: public function testExcludeIfWhenValidationFails($rules, $data, $expectedMessages) - line 9299: $this->getIlluminateArrayTranslator(), - line 9304: $fails = $validator->fails(); - line 9315: $this->assertSame($expectedMessages, $validator->messages()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9336: public function testExclude($rules, $data, $expectedValidatedData) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 9336: public function testExclude($rules, $data, $expectedValidatedData) - line 9339: $this->getIlluminateArrayTranslator(), - line 9344: $passes = $validator->passes(); - line 9350: json_encode($validator->messages()->toArray(), JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES) - line 9356: $this->assertSame($expectedValidatedData, $validator->validated()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9359: public function testExcludeBeforeADependentRule() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 9359: public function testExcludeBeforeADependentRule() - line 9362: $this->getIlluminateArrayTranslator(), - line 9373: $this->assertTrue($validator->passes()); - line 9374: $this->assertSame(['profile_id' => null], $validator->validated()); - line 9377: $this->getIlluminateArrayTranslator(), - line 9388: $this->assertFalse($validator->passes()); - line 9389: $this->assertSame(['profile_id' => ['validation.required_if']], $validator->getMessageBag()->getMessages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9392: public function testExcludingArrays() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 24. Evidence: - line 9392: public function testExcludingArrays() - line 9395: $this->getIlluminateArrayTranslator(), - line 9400: $this->assertTrue($validator->passes()); - line 9401: $this->assertSame(['users' => [['name' => 'Mohamed', 'location' => 'cairo']]], $validator->validated()); - line 9404: $this->getIlluminateArrayTranslator(), - line 9409: $this->assertTrue($validator->passes()); - line 9410: $this->assertSame(['users' => [['name' => 'Mohamed']]], $validator->validated()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9467: public function testExcludeUnless() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 21. Evidence: - line 9467: public function testExcludeUnless() - line 9470: $this->getIlluminateArrayTranslator(), - line 9474: $this->assertTrue($validator->passes()); - line 9475: $this->assertSame(['cat' => 'Felix'], $validator->validated()); - line 9478: $this->getIlluminateArrayTranslator(), - line 9482: $this->assertTrue($validator->passes()); - line 9483: $this->assertSame(['cat' => 'Felix'], $validator->validated()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9520: public function testExcludeWithout() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 9520: public function testExcludeWithout() - line 9523: $this->getIlluminateArrayTranslator(), - line 9531: $this->assertTrue($validator->fails()); - line 9532: $this->assertSame(['country' => ['validation.required_with']], $validator->messages()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9535: public function testExcludeValuesAreReallyRemoved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 9535: public function testExcludeValuesAreReallyRemoved() - line 9538: $this->getIlluminateArrayTranslator(), - line 9542: $this->assertTrue($validator->passes()); - line 9543: $this->assertSame(['cat' => 'Tom'], $validator->validated()); - line 9544: $this->assertSame(['cat' => 'Tom'], $validator->valid()); - line 9545: $this->assertSame([], $validator->invalid()); - line 9548: $this->getIlluminateArrayTranslator(), Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9557: public function testExcludeWithValuesAreReallyRemoved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 9557: public function testExcludeWithValuesAreReallyRemoved() - line 9560: $this->getIlluminateArrayTranslator(), - line 9571: $this->assertTrue($validator->passes()); - line 9572: $this->assertSame(['cat' => 'Tom'], $validator->validated()); - line 9573: $this->assertSame(['cat' => 'Tom'], $validator->valid()); - line 9574: $this->assertSame([], $validator->invalid()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9577: public function testValidateFailsWithAsterisksAsDataKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 9577: public function testValidateFailsWithAsterisksAsDataKeys() - line 9583: $validator = new Validator($this->getIlluminateArrayTranslator(), $post, $rules); - line 9585: $this->assertTrue($validator->fails()); - line 9586: $this->assertSame(['data.1.date' => ['validation.date'], 'data.*.date' => ['validation.date']], $validator->messages()->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9589: public function testFailOnFirstError() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 9589: public function testFailOnFirstError() - line 9591: $trans = $this->getIlluminateArrayTranslator(); - line 9611: $this->assertFalse($failOnFirstErrorDisable->passes()); - line 9612: $this->assertEquals($expectedFailOnFirstErrorDisableResult, $failOnFirstErrorDisable->getMessageBag()->getMessages()); - line 9620: $failOnFirstErrorEnable->stopOnFirstFailure(); - line 9621: $this->assertFalse($failOnFirstErrorEnable->passes()); - line 9622: $this->assertEquals($expectedFailOnFirstErrorEnableResult, $failOnFirstErrorEnable->getMessageBag()->getMessages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9625: public function testArrayKeysValidationPassedWhenHasKeys() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 9625: public function testArrayKeysValidationPassedWhenHasKeys() - line 9627: $trans = $this->getIlluminateArrayTranslator(); - line 9645: $this->assertTrue($validator->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9648: public function testArrayKeysValidationPassedWithPartialMatch() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 9648: public function testArrayKeysValidationPassedWithPartialMatch() - line 9650: $trans = $this->getIlluminateArrayTranslator(); - line 9668: $this->assertTrue($validator->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9671: public function testArrayKeysValidationFailsWithMissingKey() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 9671: public function testArrayKeysValidationFailsWithMissingKey() - line 9673: $trans = $this->getIlluminateArrayTranslator(); - line 9674: $trans->addLines(['validation.required_array_keys' => 'The :attribute field must contain entries for :values'], 'en'); - line 9692: $this->assertFalse($validator->passes()); - line 9695: $validator->messages()->first('baz') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9699: public function testArrayKeysValidationFailsWithNotAnArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 9699: public function testArrayKeysValidationFailsWithNotAnArray() - line 9701: $trans = $this->getIlluminateArrayTranslator(); - line 9702: $trans->addLines(['validation.required_array_keys' => 'The :attribute field must contain entries for :values'], 'en'); - line 9715: $this->assertFalse($validator->passes()); - line 9718: $validator->messages()->first('baz') Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9722: public function testArrayKeysWithDotIntegerMin() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 9722: public function testArrayKeysWithDotIntegerMin() - line 9724: $trans = $this->getIlluminateArrayTranslator(); - line 9741: $this->assertEquals($expectedResult, $validator->getMessageBag()->getMessages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9744: public function testItCanTranslateMessagesForClosureBasedRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 9744: public function testItCanTranslateMessagesForClosureBasedRules() - line 9746: $trans = $this->getIlluminateArrayTranslator(); - line 9747: $trans->addLines(['validation.translated-error' => 'Translated error message.'], 'en'); - line 9749: $fail('validation.translated-error')->translate(); - line 9750: $fail('validation.not-translated-message')->translate(); - line 9755: $this->assertTrue($validator->fails()); - line 9761: ], $validator->messages()->messages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9764: public function testItCanSpecifyTheValidationErrorKeyForTheErrorMessageForClosureBasedRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 9764: public function testItCanSpecifyTheValidationErrorKeyForTheErrorMessageForClosureBasedRules() - line 9766: $trans = $this->getIlluminateArrayTranslator(); - line 9774: $this->assertFalse($validator->passes()); - line 9782: ], $validator->messages()->messages()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9785: public function testItTrimsSpaceFromParameters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 9785: public function testItTrimsSpaceFromParameters() - line 9787: $trans = $this->getIlluminateArrayTranslator(); - line 9840: $this->assertTrue($validator->passes()); - line 9915: ], $validator->messages()->keys()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9919: public function testItLimitsLengthOfScientificNotationExponent($value) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 9919: public function testItLimitsLengthOfScientificNotationExponent($value) - line 9921: $trans = $this->getIlluminateArrayTranslator(); - line 9924: $this->assertFalse($validator->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9940: public function testItAllowsScientificNotationWithinRange($value, $rule) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 9940: public function testItAllowsScientificNotationWithinRange($value, $rule) - line 9942: $trans = $this->getIlluminateArrayTranslator(); - line 9945: $this->assertTrue($validator->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 9960: public function testItCanConfigureAllowedExponentRange() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 9960: public function testItCanConfigureAllowedExponentRange() - line 9962: $trans = $this->getIlluminateArrayTranslator(); - line 9967: $validator->ensureExponentWithinAllowedRangeUsing(function () use (&$scale, &$attribute, &$value, &$withinRange) { - line 9973: $this->assertTrue($validator->passes()); - line 9980: $this->assertFalse($validator->passes()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/Validation/ValidatorAfterRuleTest.php - Test @ line 12: public function testAfterAcceptsArrayOfRules() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 12: public function testAfterAcceptsArrayOfRules() - line 16: $validator->after([ - line 22: $this->assertSame($validator->messages()->messages(), [ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladeBoolTest.php - Test @ line 7: public function testBool() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 7: public function testBool() - line 12: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 17: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 22: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 27: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladeCommentsTest.php - Test @ line 7: public function testCommentsAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 7: public function testCommentsAreCompiled() - line 10: $this->assertEmpty($this->compiler->compileString($string)); - line 15: $this->assertEmpty($this->compiler->compileString($string)); - line 18: $this->assertEmpty($this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 7: public function testCommentsAreCompiled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 21: public function testBladeCodeInsideCommentsIsNotCompiled() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 21: public function testBladeCodeInsideCommentsIsNotCompiled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/View/Blade/BladeComponentFirstTest.php - Test @ line 7: public function testComponentFirstsAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 7: public function testComponentFirstsAreCompiled() - line 9: $this->assertSame('startComponentFirst(["one", "two"]); ?>', $this->compiler->compileString('@componentFirst(["one", "two"])')); - line 10: $this->assertSame('startComponentFirst(["one", "two"], ["foo" => "bar"]); ?>', $this->compiler->compileString('@componentFirst(["one", "two"], ["foo" => "bar"])')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladeComponentsTest.php - Test @ line 11: public function testComponentsAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 11: public function testComponentsAreCompiled() - line 13: $this->assertSame('startComponent(\'foo\', ["foo" => "bar"]); ?>', $this->compiler->compileString('@component(\'foo\', ["foo" => "bar"])')); - line 14: $this->assertSame('startComponent(\'foo\'); ?>', $this->compiler->compileString('@component(\'foo\')')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 27: public function testEndComponentsAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 27: public function testEndComponentsAreCompiled() - line 29: $this->compiler->newComponentHash('foo'); - line 31: $this->assertSame('renderComponent(); ?>', $this->compiler->compileString('@endcomponent')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 34: public function testEndComponentClassesAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 34: public function testEndComponentClassesAreCompiled() - line 36: $this->compiler->newComponentHash('foo'); - line 47: '), $this->compiler->compileString('@endcomponentClass')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 50: public function testSlotsAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 50: public function testSlotsAreCompiled() - line 52: $this->assertSame('slot(\'foo\', null, ["foo" => "bar"]); ?>', $this->compiler->compileString('@slot(\'foo\', null, ["foo" => "bar"])')); - line 53: $this->assertSame('slot(\'foo\'); ?>', $this->compiler->compileString('@slot(\'foo\')')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 61: public function testPropsAreExtractedFromParentAttributesCorrectlyForClassComponents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 61: public function testPropsAreExtractedFromParentAttributesCorrectlyForClassComponents() - line 65: $component = m::mock(Component::class); - line 71: $template = $this->compiler->compileString('@component(\'Illuminate\Tests\View\Blade\ComponentStub::class\', \'test\', ["foo" => "bar"])'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 65: $component = m::mock(Component::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 61: public function testPropsAreExtractedFromParentAttributesCorrectlyForClassComponents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/View/Blade/BladeComponentTagCompilerTest.php - Test @ line 19: public function testSlotsCanBeCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 19: public function testSlotsCanBeCompiled() - line 21: $this->mockViewFactory(); - line 22: $result = $this->compiler()->compileSlots(' Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 31: public function testInlineSlotsCanBeCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 31: public function testInlineSlotsCanBeCompiled() - line 33: $this->mockViewFactory(); - line 34: $result = $this->compiler()->compileSlots(' Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 43: public function testDynamicSlotsCanBeCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 43: public function testDynamicSlotsCanBeCompiled() - line 45: $this->mockViewFactory(); - line 46: $result = $this->compiler()->compileSlots(' Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 55: public function testDynamicSlotsCanBeCompiledWithKeyOfObjects() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 55: public function testDynamicSlotsCanBeCompiledWithKeyOfObjects() - line 57: $this->mockViewFactory(); - line 58: $result = $this->compiler()->compileSlots(' Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 67: public function testSlotsWithAttributesCanBeCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 67: public function testSlotsWithAttributesCanBeCompiled() - line 69: $this->mockViewFactory(); - line 70: $result = $this->compiler()->compileSlots(' Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 79: public function testInlineSlotsWithAttributesCanBeCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 79: public function testInlineSlotsWithAttributesCanBeCompiled() - line 81: $this->mockViewFactory(); - line 82: $result = $this->compiler()->compileSlots(' Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 91: public function testSlotsWithDynamicAttributesCanBeCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 91: public function testSlotsWithDynamicAttributesCanBeCompiled() - line 93: $this->mockViewFactory(); - line 94: $result = $this->compiler()->compileSlots(' Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 103: public function testSlotsWithClassDirectiveCanBeCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 103: public function testSlotsWithClassDirectiveCanBeCompiled() - line 105: $this->mockViewFactory(); - line 106: $result = $this->compiler()->compileSlots(' Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 115: public function testSlotsWithStyleDirectiveCanBeCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 115: public function testSlotsWithStyleDirectiveCanBeCompiled() - line 117: $this->mockViewFactory(); - line 118: $result = $this->compiler()->compileSlots(' Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 127: public function testBasicComponentParsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 127: public function testBasicComponentParsing() - line 129: $this->mockViewFactory(); - line 131: $result = $this->compiler(['alert' => TestAlertComponent::class])->compileTags('
'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 146: public function testNestedDefaultComponentParsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 146: public function testNestedDefaultComponentParsing() - line 149: $container->instance(Application::class, $app = m::mock(Application::class)); - line 150: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 154: $result = $this->compiler()->compileTags('
'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 149: $container->instance(Application::class, $app = m::mock(Application::class)); - line 150: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 146: public function testNestedDefaultComponentParsing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 164: public function testCustomNamespaceNestedDefaultComponentParsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 164: public function testCustomNamespaceNestedDefaultComponentParsing() - line 166: $this->mockViewFactory(); - line 167: $result = $this->compiler(namespaces: ['nightshade' => 'Nightshade\\View\\Components'])->compileTags('
'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 177: public function testBasicComponentWithEmptyAttributesParsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 177: public function testBasicComponentWithEmptyAttributesParsing() - line 179: $this->mockViewFactory(); - line 180: $result = $this->compiler(['alert' => TestAlertComponent::class])->compileTags('
'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 190: public function testDataCamelCasing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 190: public function testDataCamelCasing() - line 192: $this->mockViewFactory(); - line 193: $result = $this->compiler(['profile' => TestProfileComponent::class])->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 202: public function testColonData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 202: public function testColonData() - line 204: $this->mockViewFactory(); - line 205: $result = $this->compiler(['profile' => TestProfileComponent::class])->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 214: public function testColonDataShortSyntax() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 214: public function testColonDataShortSyntax() - line 216: $this->mockViewFactory(); - line 217: $result = $this->compiler(['profile' => TestProfileComponent::class])->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 226: public function testColonDataWithStaticClassProperty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 226: public function testColonDataWithStaticClassProperty() - line 228: $this->mockViewFactory(); - line 229: $result = $this->compiler(['profile' => TestProfileComponent::class])->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 238: public function testColonDataWithStaticClassPropertyAndMultipleAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 238: public function testColonDataWithStaticClassPropertyAndMultipleAttributes() - line 240: $this->mockViewFactory(); - line 241: $result = $this->compiler(['input' => TestInputComponent::class])->compileTags(''); - line 249: $result = $this->compiler(['input' => TestInputComponent::class])->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 258: public function testSelfClosingComponentWithColonDataShortSyntax() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 258: public function testSelfClosingComponentWithColonDataShortSyntax() - line 260: $this->mockViewFactory(); - line 261: $result = $this->compiler(['profile' => TestProfileComponent::class])->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 271: public function testSelfClosingComponentWithColonDataAndStaticClassPropertyShortSyntax() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 271: public function testSelfClosingComponentWithColonDataAndStaticClassPropertyShortSyntax() - line 273: $this->mockViewFactory(); - line 274: $result = $this->compiler(['profile' => TestProfileComponent::class])->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 284: public function testSelfClosingComponentWithColonDataMultipleAttributesAndStaticClassPropertyShortSyntax() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 284: public function testSelfClosingComponentWithColonDataMultipleAttributesAndStaticClassPropertyShortSyntax() - line 286: $this->mockViewFactory(); - line 287: $result = $this->compiler(['input' => TestInputComponent::class])->compileTags(''); - line 296: $result = $this->compiler(['input' => TestInputComponent::class])->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 306: public function testEscapedColonAttribute() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 306: public function testEscapedColonAttribute() - line 308: $this->mockViewFactory(); - line 309: $result = $this->compiler(['profile' => TestProfileComponent::class])->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 318: public function testColonAttributesIsEscapedIfStrings() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 318: public function testColonAttributesIsEscapedIfStrings() - line 320: $this->mockViewFactory(); - line 321: $result = $this->compiler(['profile' => TestProfileComponent::class])->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 330: public function testClassDirective() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 330: public function testClassDirective() - line 332: $this->mockViewFactory(); - line 333: $result = $this->compiler(['profile' => TestProfileComponent::class])->compileTags('true])>'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 342: public function testStyleDirective() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 342: public function testStyleDirective() - line 344: $this->mockViewFactory(); - line 345: $result = $this->compiler(['profile' => TestProfileComponent::class])->compileTags('true])>'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 354: public function testColonNestedComponentParsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 354: public function testColonNestedComponentParsing() - line 356: $this->mockViewFactory(); - line 357: $result = $this->compiler(['foo:alert' => TestAlertComponent::class])->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 366: public function testColonStartingNestedComponentParsing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 366: public function testColonStartingNestedComponentParsing() - line 368: $this->mockViewFactory(); - line 369: $result = $this->compiler(['foo:alert' => TestAlertComponent::class])->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 378: public function testSelfClosingComponentsCanBeCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 378: public function testSelfClosingComponentsCanBeCompiled() - line 380: $this->mockViewFactory(); - line 381: $result = $this->compiler(['alert' => TestAlertComponent::class])->compileTags('
'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 391: public function testClassesCanBeFoundByComponents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 391: public function testClassesCanBeFoundByComponents() - line 393: $this->mockViewFactory(); - line 394: $compiler = $this->compiler(namespaces: ['nightshade' => 'Nightshade\\View\\Components']); - line 396: $result = $compiler->findClassByComponent('nightshade::calendar'); - line 399: $result = $compiler->findClassByComponent('nightshade::accordion'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 391: public function testClassesCanBeFoundByComponents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 403: public function testClassNamesCanBeGuessed() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 403: public function testClassNamesCanBeGuessed() - line 406: $container->instance(Application::class, $app = m::mock(Application::class)); - line 410: $result = $this->compiler()->guessClassName('alert'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 406: $container->instance(Application::class, $app = m::mock(Application::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 403: public function testClassNamesCanBeGuessed() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 417: public function testClassNamesCanBeGuessedWithNamespaces() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 417: public function testClassNamesCanBeGuessedWithNamespaces() - line 420: $container->instance(Application::class, $app = m::mock(Application::class)); - line 424: $result = $this->compiler()->guessClassName('base.alert'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 420: $container->instance(Application::class, $app = m::mock(Application::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 417: public function testClassNamesCanBeGuessedWithNamespaces() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 431: public function testComponentsCanBeCompiledWithHyphenAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 431: public function testComponentsCanBeCompiledWithHyphenAttributes() - line 433: $this->mockViewFactory(); - line 435: $result = $this->compiler(['alert' => TestAlertComponent::class])->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 445: public function testSelfClosingComponentsCanBeCompiledWithDataAndAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 445: public function testSelfClosingComponentsCanBeCompiledWithDataAndAttributes() - line 447: $this->mockViewFactory(); - line 448: $result = $this->compiler(['alert' => TestAlertComponent::class])->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 458: public function testComponentCanReceiveAttributeBag() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 458: public function testComponentCanReceiveAttributeBag() - line 460: $this->mockViewFactory(); - line 462: $result = $this->compiler(['profile' => TestProfileComponent::class])->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 471: public function testSelfClosingComponentCanReceiveAttributeBag() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 471: public function testSelfClosingComponentCanReceiveAttributeBag() - line 473: $this->mockViewFactory(); - line 475: $result = $this->compiler(['alert' => TestAlertComponent::class])->compileTags('
merge([\'class\' => \'test\']) }} wire:model="foo" />
'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 485: public function testComponentsCanHaveAttachedWord() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 485: public function testComponentsCanHaveAttachedWord() - line 487: $this->mockViewFactory(); - line 488: $result = $this->compiler(['profile' => TestProfileComponent::class])->compileTags('Words'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 497: public function testSelfClosingComponentsCanHaveAttachedWord() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 497: public function testSelfClosingComponentsCanHaveAttachedWord() - line 499: $this->mockViewFactory(); - line 500: $result = $this->compiler(['alert' => TestAlertComponent::class])->compileTags('Words'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 510: public function testSelfClosingComponentsCanBeCompiledWithBoundData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 510: public function testSelfClosingComponentsCanBeCompiledWithBoundData() - line 512: $this->mockViewFactory(); - line 513: $result = $this->compiler(['alert' => TestAlertComponent::class])->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 523: public function testPairedComponentTags() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 523: public function testPairedComponentTags() - line 525: $this->mockViewFactory(); - line 526: $result = $this->compiler(['alert' => TestAlertComponent::class])->compileTags(' Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 537: public function testClasslessComponents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 537: public function testClasslessComponents() - line 540: $container->instance(Application::class, $app = m::mock(Application::class)); - line 541: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 546: $result = $this->compiler()->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 540: $container->instance(Application::class, $app = m::mock(Application::class)); - line 541: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 537: public function testClasslessComponents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 556: public function testClasslessComponentsWithIndexView() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 556: public function testClasslessComponentsWithIndexView() - line 559: $container->instance(Application::class, $app = m::mock(Application::class)); - line 560: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 565: $result = $this->compiler()->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 559: $container->instance(Application::class, $app = m::mock(Application::class)); - line 560: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 556: public function testClasslessComponentsWithIndexView() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 575: public function testClasslessComponentsWithComponentView() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 575: public function testClasslessComponentsWithComponentView() - line 578: $container->instance(Application::class, $app = m::mock(Application::class)); - line 579: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 584: $result = $this->compiler()->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 578: $container->instance(Application::class, $app = m::mock(Application::class)); - line 579: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 575: public function testClasslessComponentsWithComponentView() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 594: public function testPackagesClasslessComponents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 594: public function testPackagesClasslessComponents() - line 597: $container->instance(Application::class, $app = m::mock(Application::class)); - line 598: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 603: $result = $this->compiler()->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 597: $container->instance(Application::class, $app = m::mock(Application::class)); - line 598: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 594: public function testPackagesClasslessComponents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 613: public function testClasslessComponentsWithAnonymousComponentNamespace() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 613: public function testClasslessComponentsWithAnonymousComponentNamespace() - line 617: $container->instance(Application::class, $app = m::mock(Application::class)); - line 618: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 621: $factory->shouldReceive('exists')->times(4)->andReturnUsing(function ($arg) { - line 629: $blade = m::mock(BladeCompiler::class)->makePartial(); - line 635: $compiler = $this->compiler([], [], $blade); - line 637: $result = $compiler->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 617: $container->instance(Application::class, $app = m::mock(Application::class)); - line 618: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 629: $blade = m::mock(BladeCompiler::class)->makePartial(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 613: public function testClasslessComponentsWithAnonymousComponentNamespace() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 647: public function testClasslessComponentsWithAnonymousComponentNamespaceWithIndexView() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 647: public function testClasslessComponentsWithAnonymousComponentNamespaceWithIndexView() - line 651: $container->instance(Application::class, $app = m::mock(Application::class)); - line 652: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 655: $factory->shouldReceive('exists')->times(5)->andReturnUsing(function (string $viewNameBeingCheckedForExistence) { - line 663: $blade = m::mock(BladeCompiler::class)->makePartial(); - line 669: $compiler = $this->compiler([], [], $blade); - line 671: $result = $compiler->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 651: $container->instance(Application::class, $app = m::mock(Application::class)); - line 652: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 663: $blade = m::mock(BladeCompiler::class)->makePartial(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 647: public function testClasslessComponentsWithAnonymousComponentNamespaceWithIndexView() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 681: public function testClasslessComponentsWithAnonymousComponentNamespaceWithComponentView() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 681: public function testClasslessComponentsWithAnonymousComponentNamespaceWithComponentView() - line 685: $container->instance(Application::class, $app = m::mock(Application::class)); - line 686: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 689: $factory->shouldReceive('exists')->times(6)->andReturnUsing(function (string $viewNameBeingCheckedForExistence) { - line 697: $blade = m::mock(BladeCompiler::class)->makePartial(); - line 703: $compiler = $this->compiler([], [], $blade); - line 705: $result = $compiler->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 685: $container->instance(Application::class, $app = m::mock(Application::class)); - line 686: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 697: $blade = m::mock(BladeCompiler::class)->makePartial(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 681: public function testClasslessComponentsWithAnonymousComponentNamespaceWithComponentView() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 715: public function testClasslessComponentsWithAnonymousComponentPath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 715: public function testClasslessComponentsWithAnonymousComponentPath() - line 719: $container->instance(Application::class, $app = m::mock(Application::class)); - line 720: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 724: $factory->shouldReceive('exists')->andReturnUsing(function ($arg) { - line 730: $blade = m::mock(BladeCompiler::class)->makePartial(); - line 736: $compiler = $this->compiler([], [], $blade); - line 738: $result = $compiler->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 719: $container->instance(Application::class, $app = m::mock(Application::class)); - line 720: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 730: $blade = m::mock(BladeCompiler::class)->makePartial(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 715: public function testClasslessComponentsWithAnonymousComponentPath() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 748: public function testClasslessComponentsWithAnonymousComponentPathComponentName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 748: public function testClasslessComponentsWithAnonymousComponentPathComponentName() - line 752: $container->instance(Application::class, $app = m::mock(Application::class)); - line 753: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 757: $factory->shouldReceive('exists')->andReturnUsing(function ($arg) { - line 763: $blade = m::mock(BladeCompiler::class)->makePartial(); - line 769: $compiler = $this->compiler([], [], $blade); - line 771: $result = $compiler->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 752: $container->instance(Application::class, $app = m::mock(Application::class)); - line 753: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 763: $blade = m::mock(BladeCompiler::class)->makePartial(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 748: public function testClasslessComponentsWithAnonymousComponentPathComponentName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 781: public function testClasslessIndexComponentsWithAnonymousComponentPath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 781: public function testClasslessIndexComponentsWithAnonymousComponentPath() - line 785: $container->instance(Application::class, $app = m::mock(Application::class)); - line 786: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 790: $factory->shouldReceive('exists')->andReturnUsing(function ($arg) { - line 796: $blade = m::mock(BladeCompiler::class)->makePartial(); - line 802: $compiler = $this->compiler([], [], $blade); - line 804: $result = $compiler->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 785: $container->instance(Application::class, $app = m::mock(Application::class)); - line 786: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 796: $blade = m::mock(BladeCompiler::class)->makePartial(); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 781: public function testClasslessIndexComponentsWithAnonymousComponentPath() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 839: public function testItThrowsAnExceptionForNonExistingAliases() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 839: public function testItThrowsAnExceptionForNonExistingAliases() - line 841: $this->mockViewFactory(false); - line 843: $this->expectException(InvalidArgumentException::class); - line 845: $this->compiler(['alert' => 'foo.bar'])->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 839: public function testItThrowsAnExceptionForNonExistingAliases() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 848: public function testItThrowsAnExceptionForNonExistingClass() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 848: public function testItThrowsAnExceptionForNonExistingClass() - line 851: $container->instance(Application::class, $app = m::mock(Application::class)); - line 852: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 857: $this->expectException(InvalidArgumentException::class); - line 859: $this->compiler()->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 851: $container->instance(Application::class, $app = m::mock(Application::class)); - line 852: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 848: public function testItThrowsAnExceptionForNonExistingClass() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 862: public function testAttributesTreatedAsPropsAreRemovedFromFinalAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 862: public function testAttributesTreatedAsPropsAreRemovedFromFinalAttributes() - line 865: $container->instance(Application::class, $app = m::mock(Application::class)); - line 866: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 867: $container->alias(Factory::class, 'view'); - line 868: $app->shouldReceive('getNamespace')->never()->andReturn('App\\'); - line 869: $factory->shouldReceive('exists')->never(); - line 888: $template = $this->compiler(['profile' => TestProfileComponent::class])->compileTags(''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 865: $container->instance(Application::class, $app = m::mock(Application::class)); - line 866: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 875: $component = m::mock(Component::class); - line 884: $__env = m::mock(\Illuminate\View\Factory::class); - Test @ line 899: public function testOriginalAttributesAreRestoredAfterRenderingChildComponentWithProps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 899: public function testOriginalAttributesAreRestoredAfterRenderingChildComponentWithProps() - line 902: $container->instance(Application::class, $app = m::mock(Application::class)); - line 903: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 904: $container->alias(Factory::class, 'view'); - line 905: $app->shouldReceive('getNamespace')->never()->andReturn('App\\'); - line 906: $factory->shouldReceive('exists')->never(); - line 935: $template = $this->compiler([ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 902: $container->instance(Application::class, $app = m::mock(Application::class)); - line 903: $container->instance(Factory::class, $factory = m::mock(Factory::class)); - line 912: $containerComponent = m::mock(Component::class); - line 919: $profileComponent = m::mock(Component::class); - line 931: $__env = m::mock(\Illuminate\View\Factory::class); ❌ tests/View/Blade/BladeCustomTest.php - Test @ line 19: public function testCustomExtensionsAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 19: public function testCustomExtensionsAreCompiled() - line 21: $this->compiler->extend(function ($value) { - line 24: $this->assertSame('bar', $this->compiler->compileString('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 27: public function testCustomStatements() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 27: public function testCustomStatements() - line 29: $this->assertCount(0, $this->compiler->getCustomDirectives()); - line 30: $this->compiler->directive('customControl', function ($expression) { - line 33: $this->assertCount(1, $this->compiler->getCustomDirectives()); - line 41: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 44: public function testCustomShortStatements() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 44: public function testCustomShortStatements() - line 46: $this->compiler->directive('customControl', function ($expression) { - line 52: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 55: public function testValidCustomNames() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 55: public function testValidCustomNames() - line 57: $this->assertNull($this->compiler->directive('custom', function () { - line 60: $this->assertNull($this->compiler->directive('custom_custom', function () { - line 63: $this->assertNull($this->compiler->directive('customCustom', function () { - line 66: $this->assertNull($this->compiler->directive('custom::custom', function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 55: public function testValidCustomNames() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 71: public function testInvalidCustomNames() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 71: public function testInvalidCustomNames() - line 73: $this->expectException(InvalidArgumentException::class); - line 74: $this->expectExceptionMessage('The directive name [custom-custom] is not valid.'); - line 75: $this->compiler->directive('custom-custom', function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 71: public function testInvalidCustomNames() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 80: public function testInvalidCustomNames2() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 80: public function testInvalidCustomNames2() - line 82: $this->expectException(InvalidArgumentException::class); - line 83: $this->expectExceptionMessage('The directive name [custom:custom] is not valid.'); - line 84: $this->compiler->directive('custom:custom', function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 80: public function testInvalidCustomNames2() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 89: public function testCustomExtensionOverwritesCore() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 89: public function testCustomExtensionOverwritesCore() - line 91: $this->compiler->directive('foreach', function ($expression) { - line 97: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 100: public function testCustomConditions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 100: public function testCustomConditions() - line 102: $this->compiler->if('custom', function ($user) { - line 110: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 113: public function testCustomIfElseConditions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 113: public function testCustomIfElseConditions() - line 115: $this->compiler->if('custom', function ($anything) { - line 127: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 130: public function testCustomUnlessConditions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 130: public function testCustomUnlessConditions() - line 132: $this->compiler->if('custom', function ($anything) { - line 140: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 143: public function testCustomConditionsAccepts0AsArgument() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 143: public function testCustomConditionsAccepts0AsArgument() - line 145: $this->compiler->if('custom', function ($number) { - line 155: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 158: public function testCustomComponents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 158: public function testCustomComponents() - line 160: $this->compiler->aliasComponent('app.components.alert', 'alert'); - line 166: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 169: public function testCustomComponentsWithSlots() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 169: public function testCustomComponentsWithSlots() - line 171: $this->compiler->aliasComponent('app.components.alert', 'alert'); - line 177: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 180: public function testCustomComponentsWithExistingDirective() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 180: public function testCustomComponentsWithExistingDirective() - line 182: $this->compiler->aliasComponent('app.components.foreach', 'foreach'); - line 188: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 191: public function testCustomIncludes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 191: public function testCustomIncludes() - line 193: $this->compiler->include('app.includes.input', 'input'); - line 197: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 200: public function testCustomIncludesWithData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 200: public function testCustomIncludesWithData() - line 202: $this->compiler->include('app.includes.input', 'input'); - line 206: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 209: public function testCustomIncludesDefaultAlias() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 209: public function testCustomIncludesDefaultAlias() - line 211: $this->compiler->include('app.includes.input'); - line 215: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 218: public function testCustomIncludesWithExistingDirective() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 218: public function testCustomIncludesWithExistingDirective() - line 220: $this->compiler->include('app.includes.foreach'); - line 224: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladeEchoHandlerTest.php - Test @ line 54: public function testHandlerLogicWorksCorrectly($blade) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 54: public function testHandlerLogicWorksCorrectly($blade) - line 56: $this->expectException(Exception::class); - line 57: $this->expectExceptionMessage('The fluent object has been successfully handled!'); - line 59: $this->compiler->stringable(Fluent::class, function ($object) { - line 63: app()->instance('blade.compiler', $this->compiler); - line 67: eval((new Stringable($this->compiler->compileString($blade)))->remove([''])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 54: public function testHandlerLogicWorksCorrectly($blade) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 81: public function testHandlerWorksWithIterables($blade, $closure, $expectedOutput) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 81: public function testHandlerWorksWithIterables($blade, $closure, $expectedOutput) - line 83: $this->compiler->stringable('iterable', $closure); - line 85: app()->instance('blade.compiler', $this->compiler); - line 88: eval((new Stringable($this->compiler->compileString($blade)))->remove([''])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 81: public function testHandlerWorksWithIterables($blade, $closure, $expectedOutput) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 105: public function testHandlerWorksWithNonStringables($blade, $expectedOutput) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 105: public function testHandlerWorksWithNonStringables($blade, $expectedOutput) - line 107: app()->instance('blade.compiler', $this->compiler); - line 110: eval((new Stringable($this->compiler->compileString($blade)))->remove([''])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 105: public function testHandlerWorksWithNonStringables($blade, $expectedOutput) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/View/Blade/BladeEchoTest.php - Test @ line 7: public function testEchosAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 21. Evidence: - line 7: public function testEchosAreCompiled() - line 9: $this->assertSame('', $this->compiler->compileString('{!!$name!!}')); - line 10: $this->assertSame('', $this->compiler->compileString('{!! $name !!}')); - line 11: $this->assertSame('', $this->compiler->compileString('{!! - line 15: $this->assertSame('', $this->compiler->compileString('{{{$name}}}')); - line 16: $this->assertSame('', $this->compiler->compileString('{{$name}}')); - line 17: $this->assertSame('', $this->compiler->compileString('{{ $name }}')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 51: public function testEscapedWithAtEchosAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 51: public function testEscapedWithAtEchosAreCompiled() - line 53: $this->assertSame('{{$name}}', $this->compiler->compileString('@{{$name}}')); - line 54: $this->assertSame('{{ $name }}', $this->compiler->compileString('@{{ $name }}')); - line 58: $this->compiler->compileString('@{{ - line 63: $this->compiler->compileString('@{{ $name }} Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladeEscapedTest.php - Test @ line 7: public function testEscapedWithAtDirectivesAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 7: public function testEscapedWithAtDirectivesAreCompiled() - line 9: $this->assertSame('@foreach', $this->compiler->compileString('@@foreach')); - line 10: $this->assertSame('@verbatim @continue @endverbatim', $this->compiler->compileString('@@verbatim @@continue @@endverbatim')); - line 11: $this->assertSame('@foreach($i as $x)', $this->compiler->compileString('@@foreach($i as $x)')); - line 12: $this->assertSame('@continue @break', $this->compiler->compileString('@@continue @@break')); - line 15: )', $this->compiler->compileString('@@foreach( Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladeExpressionTest.php - Test @ line 12: public function testExpressionWithinHTML() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 12: public function testExpressionWithinHTML() - line 14: $this->assertSame('>', $this->compiler->compileString('')); - line 15: $this->assertSame('>', $this->compiler->compileString('')); - line 16: $this->assertSame(' get(\'foo\'); ?>>', $this->compiler->compileString('')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladeExtendsTest.php - Test @ line 7: public function testExtendsAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 7: public function testExtendsAreCompiled() - line 11: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 15: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 18: public function testSequentialCompileStringCalls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 18: public function testSequentialCompileStringCalls() - line 22: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 27: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 30: public function testExtendsFirstAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 30: public function testExtendsFirstAreCompiled() - line 34: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 38: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladeForeachStatementsTest.php - Test @ line 66: public function testLoopContentHolderIsExtractedFromForeachStatements() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 66: public function testLoopContentHolderIsExtractedFromForeachStatements() - line 70: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 74: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 78: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 82: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 86: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 95: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 99: public function testForeachStatementsThrowHumanizedMessageWhenInvalidStatement($initialStatement) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 99: public function testForeachStatementsThrowHumanizedMessageWhenInvalidStatement($initialStatement) - line 101: $this->expectException(ViewCompilationException::class); - line 102: $this->expectExceptionMessage('Malformed @foreach statement.'); - line 106: $this->compiler->compileString($string); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 99: public function testForeachStatementsThrowHumanizedMessageWhenInvalidStatement($initialStatement) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/View/Blade/BladeForelseStatementsTest.php - Test @ line 85: public function testForelseStatementsThrowHumanizedMessageWhenInvalidStatement($initialStatement) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 85: public function testForelseStatementsThrowHumanizedMessageWhenInvalidStatement($initialStatement) - line 87: $this->expectException(ViewCompilationException::class); - line 88: $this->expectExceptionMessage('Malformed @forelse statement.'); - line 94: $this->compiler->compileString($string); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 85: public function testForelseStatementsThrowHumanizedMessageWhenInvalidStatement($initialStatement) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/View/Blade/BladeFragmentTest.php - Test @ line 7: public function testFragmentStartsAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 7: public function testFragmentStartsAreCompiled() - line 9: $this->assertSame('startFragment(\'foo\'); ?>', $this->compiler->compileString('@fragment(\'foo\')')); - line 10: $this->assertSame('startFragment(name(foo)); ?>', $this->compiler->compileString('@fragment(name(foo))')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladeHelpersTest.php - Test @ line 7: public function testEchosAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 7: public function testEchosAreCompiled() - line 9: $this->assertSame('', $this->compiler->compileString('@csrf')); - line 10: $this->assertSame('', $this->compiler->compileString("@method('patch')")); - line 11: $this->assertSame('', $this->compiler->compileString('@dd($var1)')); - line 12: $this->assertSame('', $this->compiler->compileString('@dd($var1, $var2)')); - line 13: $this->assertSame('', $this->compiler->compileString('@dump($var1, $var2)')); - line 14: $this->assertSame('', $this->compiler->compileString('@vite')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladeIncludesTest.php - Test @ line 7: public function testEachsAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 7: public function testEachsAreCompiled() - line 9: $this->assertSame('renderEach(\'foo\', \'bar\'); ?>', $this->compiler->compileString('@each(\'foo\', \'bar\')')); - line 10: $this->assertSame('renderEach(\'foo\', \'(bar))\'); ?>', $this->compiler->compileString('@each(\'foo\', \'(bar))\')')); - line 11: $this->assertSame('renderEach(name(foo)); ?>', $this->compiler->compileString('@each(name(foo))')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 14: public function testIncludesAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 14: public function testIncludesAreCompiled() - line 16: $this->assertSame('make(\'foo\', array_diff_key(get_defined_vars(), [\'__data\' => 1, \'__path\' => 1]))->render(); ?>', $this->compiler->compileString('@include(\'foo\')')); - line 17: $this->assertSame('make(\'foo\', [\'((\'], array_diff_key(get_defined_vars(), [\'__data\' => 1, \'__path\' => 1]))->render(); ?>', $this->compiler->compileString('@include(\'foo\', [\'((\'])')); - line 18: $this->assertSame('make(\'foo\', [\'((a)\' => \'((a)\'], array_diff_key(get_defined_vars(), [\'__data\' => 1, \'__path\' => 1]))->render(); ?>', $this->compiler->compileString('@include(\'foo\', [\'((a)\' => \'((a)\'])')); - line 19: $this->assertSame('make(name(foo), array_diff_key(get_defined_vars(), [\'__data\' => 1, \'__path\' => 1]))->render(); ?>', $this->compiler->compileString('@include(name(foo))')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 22: public function testIncludeIfsAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 22: public function testIncludeIfsAreCompiled() - line 24: $this->assertSame('exists(\'foo\')) echo $__env->make(\'foo\', array_diff_key(get_defined_vars(), [\'__data\' => 1, \'__path\' => 1]))->render(); ?>', $this->compiler->compileString('@includeIf(\'foo\')')); - line 25: $this->assertSame('exists(name(foo))) echo $__env->make(name(foo), array_diff_key(get_defined_vars(), [\'__data\' => 1, \'__path\' => 1]))->render(); ?>', $this->compiler->compileString('@includeIf(name(foo))')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 28: public function testIncludeWhensAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 28: public function testIncludeWhensAreCompiled() - line 30: $this->assertSame('renderWhen(true, \'foo\', ["foo" => "bar"], array_diff_key(get_defined_vars(), [\'__data\' => 1, \'__path\' => 1])); ?>', $this->compiler->compileString('@includeWhen(true, \'foo\', ["foo" => "bar"])')); - line 31: $this->assertSame('renderWhen(true, \'foo\', array_diff_key(get_defined_vars(), [\'__data\' => 1, \'__path\' => 1])); ?>', $this->compiler->compileString('@includeWhen(true, \'foo\')')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 34: public function testIncludeUnlessesAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 34: public function testIncludeUnlessesAreCompiled() - line 36: $this->assertSame('renderUnless(true, \'foo\', ["foo" => "bar"], array_diff_key(get_defined_vars(), [\'__data\' => 1, \'__path\' => 1])); ?>', $this->compiler->compileString('@includeUnless(true, \'foo\', ["foo" => "bar"])')); - line 37: $this->assertSame('renderUnless(true, \'foo\', ["foo" => "bar_))-))>"], array_diff_key(get_defined_vars(), [\'__data\' => 1, \'__path\' => 1])); ?>', $this->compiler->compileString('@includeUnless(true, \'foo\', ["foo" => "bar_))-))>"])')); - line 38: $this->assertSame('renderUnless($undefined ?? true, \'foo\', array_diff_key(get_defined_vars(), [\'__data\' => 1, \'__path\' => 1])); ?>', $this->compiler->compileString('@includeUnless($undefined ?? true, \'foo\')')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 41: public function testIncludeFirstsAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 41: public function testIncludeFirstsAreCompiled() - line 43: $this->assertSame('first(["one", "two"], array_diff_key(get_defined_vars(), [\'__data\' => 1, \'__path\' => 1]))->render(); ?>', $this->compiler->compileString('@includeFirst(["one", "two"])')); - line 44: $this->assertSame('first(["one", "two"], ["foo" => "bar"], array_diff_key(get_defined_vars(), [\'__data\' => 1, \'__path\' => 1]))->render(); ?>', $this->compiler->compileString('@includeFirst(["one", "two"], ["foo" => "bar"])')); - line 45: $this->assertSame('first(["issue", "#45424)"], ["foo()" => "bar)-))"], array_diff_key(get_defined_vars(), [\'__data\' => 1, \'__path\' => 1]))->render(); ?>', $this->compiler->compileString('@includeFirst(["issue", "#45424)"], ["foo()" => "bar)-))"])')); - line 46: $this->assertSame('first(["issue", "#45424)"], ["foo" => "bar(-(("], array_diff_key(get_defined_vars(), [\'__data\' => 1, \'__path\' => 1]))->render(); ?>', $this->compiler->compileString('@includeFirst(["issue", "#45424)"], ["foo" => "bar(-(("])')); - line 47: $this->assertSame('first(["issue", "#45424)"], [(string) "foo()" => "bar(-(("], array_diff_key(get_defined_vars(), [\'__data\' => 1, \'__path\' => 1]))->render(); ?>', $this->compiler->compileString('@includeFirst(["issue", "#45424)"], [(string) "foo()" => "bar(-(("])')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladeLangTest.php - Test @ line 14: public function testLanguageAndChoicesAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 14: public function testLanguageAndChoicesAreCompiled() - line 16: $this->assertSame('get(\'foo\'); ?>', $this->compiler->compileString("@lang('foo')")); - line 17: $this->assertSame('choice(\'foo\', 1); ?>', $this->compiler->compileString("@choice('foo', 1)")); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladePhpStatementsTest.php - Test @ line 22: public function testPhpStatementsWithoutExpressionAreIgnored() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 22: public function testPhpStatementsWithoutExpressionAreIgnored() - line 26: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 30: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 55: public function testStringWithOpeningParenthesisCanBeCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 55: public function testStringWithOpeningParenthesisCanBeCompiled() - line 59: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 63: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 67: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 70: public function testStringWithParenthesisCanBeCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 70: public function testStringWithParenthesisCanBeCompiled() - line 75: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 80: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 85: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 87: $this->assertSame('renderEach(\'foo\', \'b)a)r\'); ?>', $this->compiler->compileString('@each(\'foo\', \'b)a)r\')')); - line 88: $this->assertSame('make(\'test_for\', [\'issue))\' => \'(issue#45424))\'], array_diff_key(get_defined_vars(), [\'__data\' => 1, \'__path\' => 1]))->render(); ?>', $this->compiler->compileString('@include(\'test_for\', [\'issue))\' => \'(issue#45424))\'])')); - line 89: $this->assertSame('( make(\'test_for\', [\'not_too_much))\' => \'(issue#45424))\'], array_diff_key(get_defined_vars(), [\'__data\' => 1, \'__path\' => 1]))->render(); ?>))', $this->compiler->compileString('( @include(\'test_for\', [\'not_too_much))\' => \'(issue#45424))\'])))')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 92: public function testStringWithEmptyStringDataValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 92: public function testStringWithEmptyStringDataValue() - line 98: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 104: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 107: public function testStringWithEscapingDataValue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 107: public function testStringWithEscapingDataValue() - line 113: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 119: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 122: public function testUnclosedParenthesisForBladeTags() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 122: public function testUnclosedParenthesisForBladeTags() - line 127: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 132: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 137: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 142: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 145: public function testNestedTagCalls() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 145: public function testNestedTagCalls() - line 149: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 153: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 157: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 161: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 165: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 169: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladePrependTest.php - Test @ line 35: public function testPrependOnceIsCompiledWhenIdIsMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 35: public function testPrependOnceIsCompiledWhenIdIsMissing() - line 37: Str::createUuidsUsing(fn () => 'e60e8f77-9ac3-4f71-9f8e-a044ef481d7f'); - line 48: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladePushTest.php - Test @ line 45: public function testPushOnceIsCompiledWhenIdIsMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 45: public function testPushOnceIsCompiledWhenIdIsMissing() - line 47: Str::createUuidsUsing(fn () => 'e60e8f77-9ac3-4f71-9f8e-a044ef481d7f'); - line 58: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladeSectionTest.php - Test @ line 7: public function testSectionStartsAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 7: public function testSectionStartsAreCompiled() - line 9: $this->assertSame('startSection(\'foo\'); ?>', $this->compiler->compileString('@section(\'foo\')')); - line 10: $this->assertSame('startSection(\'issue#18317 :))\'); ?>', $this->compiler->compileString('@section(\'issue#18317 :))\')')); - line 11: $this->assertSame('startSection(name(foo)); ?>', $this->compiler->compileString('@section(name(foo))')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladeStackTest.php - Test @ line 7: public function testStackIsCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 7: public function testStackIsCompiled() - line 11: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 15: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladeUnsetStatementsTest.php - Test @ line 7: public function testUnsetStatementsAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 7: public function testUnsetStatementsAreCompiled() - line 11: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 15: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladeUseTest.php - Test @ line 7: public function testUseStatementsAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 7: public function testUseStatementsAreCompiled() - line 12: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 15: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 18: public function testUseStatementsWithoutAsAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 18: public function testUseStatementsWithoutAsAreCompiled() - line 23: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 26: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 29: public function testUseStatementsWithBackslashAtBeginningAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 29: public function testUseStatementsWithBackslashAtBeginningAreCompiled() - line 34: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 37: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 40: public function testUseStatementsWithBackslashAtBeginningAndAliasedAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 40: public function testUseStatementsWithBackslashAtBeginningAndAliasedAreCompiled() - line 45: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 48: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 51: public function testUseStatementsWithBracesAreCompiledCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 51: public function testUseStatementsWithBracesAreCompiledCorrectly() - line 56: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 59: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 62: public function testUseStatementWithBracesAndBackslashAreCompiledCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 62: public function testUseStatementWithBracesAndBackslashAreCompiledCorrectly() - line 67: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 70: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 73: public function testUseStatementsWithModifiersAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 73: public function testUseStatementsWithModifiersAreCompiled() - line 78: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 81: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 84: public function testUseStatementsWithModifiersWithoutAliasAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 84: public function testUseStatementsWithModifiersWithoutAliasAreCompiled() - line 89: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 92: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 95: public function testUseStatementsWithModifiersAndBackslashAtBeginningAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 95: public function testUseStatementsWithModifiersAndBackslashAtBeginningAreCompiled() - line 100: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 103: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 106: public function testUseStatementsWithModifiersBackslashAtBeginningAndAliasedAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 106: public function testUseStatementsWithModifiersBackslashAtBeginningAndAliasedAreCompiled() - line 111: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 114: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 117: public function testUseStatementsWithModifiersWithBracesAreCompiledCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 117: public function testUseStatementsWithModifiersWithBracesAreCompiledCorrectly() - line 122: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 125: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 128: public function testUseFunctionStatementWithBracesAndBackslashAreCompiledCorrectly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 128: public function testUseFunctionStatementWithBracesAndBackslashAreCompiledCorrectly() - line 133: $this->assertEquals($expected, $this->compiler->compileString($string)); - line 136: $this->assertEquals($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladeVerbatimTest.php - Test @ line 90: public function testNewlinesAreInsertedCorrectlyAfterEcho() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 90: public function testNewlinesAreInsertedCorrectlyAfterEcho() - line 94: $this->assertSame($expected, $this->compiler->compileString($string)); - line 98: $this->assertSame($expected, $this->compiler->compileString($string)); - line 102: $this->assertSame($expected, $this->compiler->compileString($string)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Blade/BladeYieldTest.php - Test @ line 7: public function testYieldsAreCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 7: public function testYieldsAreCompiled() - line 9: $this->assertSame('yieldContent(\'foo\'); ?>', $this->compiler->compileString('@yield(\'foo\')')); - line 10: $this->assertSame('yieldContent(\'foo\', \'bar\'); ?>', $this->compiler->compileString('@yield(\'foo\', \'bar\')')); - line 11: $this->assertSame('yieldContent(name(foo)); ?>', $this->compiler->compileString('@yield(name(foo))')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/ComponentTest.php - Test @ line 67: public function testRegularViewsGetReturnedUsingViewHelper() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 67: public function testRegularViewsGetReturnedUsingViewHelper() - line 69: $view = m::mock(View::class); - line 74: $this->assertSame($view, $component->resolveView()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 69: $view = m::mock(View::class); - Test @ line 77: public function testRenderingStringClosureFromComponent() Violations: - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 77: public function testRenderingStringClosureFromComponent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 113: public function testRegularViewsGetReturnedUsingViewMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 113: public function testRegularViewsGetReturnedUsingViewMethod() - line 115: $view = m::mock(View::class); - line 120: $this->assertSame($view, $component->resolveView()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 115: $view = m::mock(View::class); - Test @ line 123: public function testRegularViewNamesGetReturned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 123: public function testRegularViewNamesGetReturned() - line 126: $this->viewFactory->shouldReceive('addNamespace')->never(); - line 130: $this->assertSame('alert', $component->resolveView()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 133: public function testHtmlableGetReturned() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 133: public function testHtmlableGetReturned() - line 137: $view = $component->resolveView(); - line 140: $this->assertSame('

Hello foo

', $view->toHtml()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 143: public function testResolveWithUnresolvableDependency() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 143: public function testResolveWithUnresolvableDependency() - line 145: $this->expectException(BindingResolutionException::class); - line 146: $this->expectExceptionMessage('Unresolvable dependency resolving'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 143: public function testResolveWithUnresolvableDependency() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 151: public function testResolveDependenciesWithoutContainer() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 151: public function testResolveDependenciesWithoutContainer() - line 153: $component = TestInlineViewComponentWhereRenderDependsOnProps::resolve(['content' => 'foo']); - line 154: $this->assertSame('foo', $component->render()); - line 173: $this->assertSame('ab', $component->render()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 176: public function testResolveDependenciesWithContainerIfNecessary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 176: public function testResolveDependenciesWithContainerIfNecessary() - line 178: $component = TestInlineViewComponentWithContainerDependencies::resolve([]); - line 183: $this->assertSame('foo', $component->render()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 200: public function testBladeViewCacheWithRegularViewNameViewComponent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 200: public function testBladeViewCacheWithRegularViewNameViewComponent() - line 206: $this->assertSame('alert', $component->resolveView()); - line 207: $this->assertSame('alert', $component->resolveView()); - line 208: $this->assertSame('alert', $component->resolveView()); - line 209: $this->assertSame('alert', $component->resolveView()); - line 211: $cache = (fn () => $component::$bladeViewCache)->call($component); - line 216: $cache = (fn () => $component::$bladeViewCache)->call($component); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 225: public function testBladeViewCacheWithInlineViewComponent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 225: public function testBladeViewCacheWithInlineViewComponent() - line 241: $this->assertSame($compiledViewName, $component->resolveView()); - line 242: $this->assertSame($compiledViewName, $component->resolveView()); - line 243: $this->assertSame($compiledViewName, $component->resolveView()); - line 244: $this->assertSame($compiledViewName, $component->resolveView()); - line 246: $cache = (fn () => $component::$bladeViewCache)->call($component); - line 251: $cache = (fn () => $component::$bladeViewCache)->call($component); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 260: public function testBladeViewCacheWithInlineViewComponentWhereRenderDependsOnProps() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 260: public function testBladeViewCacheWithInlineViewComponentWhereRenderDependsOnProps() - line 278: $this->assertSame($compiledViewNameA, $componentA->resolveView()); - line 279: $this->assertSame($compiledViewNameA, $componentA->resolveView()); - line 280: $this->assertSame($compiledViewNameB, $componentB->resolveView()); - line 281: $this->assertSame($compiledViewNameB, $componentB->resolveView()); - line 283: $cacheA = (fn () => $componentA::$bladeViewCache)->call($componentA); - line 284: $cacheB = (fn () => $componentB::$bladeViewCache)->call($componentB); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 299: public function testFactoryGetsSharedBetweenComponents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 299: public function testFactoryGetsSharedBetweenComponents() - line 304: $getFactory = fn ($component) => (fn () => $component->factory())->call($component); - line 308: Container::getInstance()->instance('view', 'foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 322: public function testComponentSlotSanitizedEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 322: public function testComponentSlotSanitizedEmpty() - line 334: $this->assertFalse((bool) $slot->hasActualContent()); - line 335: $this->assertFalse((bool) $linebreakingSlot->hasActualContent('trim')); - line 336: $this->assertFalse((bool) $moreComplexSlot->hasActualContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 339: public function testComponentSlotSanitizedNotEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 339: public function testComponentSlotSanitizedNotEmpty() - line 351: $this->assertTrue((bool) $slot->hasActualContent()); - line 352: $this->assertTrue((bool) $linebreakingSlot->hasActualContent('trim')); - line 353: $this->assertTrue((bool) $moreComplexSlot->hasActualContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 356: public function testComponentSlotIsNotEmpty() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 356: public function testComponentSlotIsNotEmpty() - line 367: $this->assertTrue((bool) $slot->hasActualContent()); - line 368: $this->assertTrue((bool) $anotherSlot->hasActualContent()); - line 369: $this->assertTrue((bool) $moreComplexSlot->hasActualContent()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/Concerns/ManagesStacksTest.php - Test @ line 15: public function testStackIsNotEmptyWithPushedContent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 15: public function testStackIsNotEmptyWithPushedContent() - line 18: $object->startPush('my-stack', 'some pushed content'); - line 20: $this->assertFalse($object->isStackEmpty('my-stack')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 23: public function testStackIsNotEmptyWithPrependedContent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 23: public function testStackIsNotEmptyWithPrependedContent() - line 26: $object->startPrepend('my-stack', 'some prepended content'); - line 28: $this->assertFalse($object->isStackEmpty('my-stack')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/ViewBladeCompilerTest.php - Test @ line 19: public function testIsExpiredReturnsTrueIfCompiledFileDoesntExist() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 19: public function testIsExpiredReturnsTrueIfCompiledFileDoesntExist() - line 21: $compiler = new BladeCompiler($files = $this->getFiles(), __DIR__); - line 23: $this->assertTrue($compiler->isExpired('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 26: public function testCannotConstructWithBadCachePath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 26: public function testCannotConstructWithBadCachePath() - line 28: $this->expectException(InvalidArgumentException::class); - line 29: $this->expectExceptionMessage('Please provide a valid cache path.'); - line 31: new BladeCompiler($this->getFiles(), null); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 26: public function testCannotConstructWithBadCachePath() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 34: public function testIsExpiredReturnsTrueWhenModificationTimesWarrant() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 34: public function testIsExpiredReturnsTrueWhenModificationTimesWarrant() - line 36: $compiler = new BladeCompiler($files = $this->getFiles(), __DIR__); - line 40: $this->assertTrue($compiler->isExpired('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 43: public function testIsExpiredReturnsFalseWhenUseCacheIsTrueAndNoFileModification() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 43: public function testIsExpiredReturnsFalseWhenUseCacheIsTrueAndNoFileModification() - line 45: $compiler = new BladeCompiler($files = $this->getFiles(), __DIR__); - line 49: $this->assertFalse($compiler->isExpired('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 52: public function testIsExpiredReturnsTrueWhenUseCacheIsFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 52: public function testIsExpiredReturnsTrueWhenUseCacheIsFalse() - line 54: $compiler = new BladeCompiler($files = $this->getFiles(), __DIR__, shouldCache: false); - line 55: $this->assertTrue($compiler->isExpired('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 58: public function testIsExpiredReturnsFalseWhenIgnoreCacheTimestampsIsTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 58: public function testIsExpiredReturnsFalseWhenIgnoreCacheTimestampsIsTrue() - line 60: $compiler = new BladeCompiler($files = $this->getFiles(), __DIR__, shouldCheckTimestamps: false); - line 62: $this->assertFalse($compiler->isExpired('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 65: public function testCompilePathIsProperlyCreated() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 65: public function testCompilePathIsProperlyCreated() - line 67: $compiler = new BladeCompiler($this->getFiles(), __DIR__); - line 68: $this->assertEquals(__DIR__.'/'.hash('xxh128', 'v2foo').'.php', $compiler->getCompiledPath('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 71: public function testCompileCompilesFileAndReturnsContents() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 71: public function testCompileCompilesFileAndReturnsContents() - line 73: $compiler = new BladeCompiler($files = $this->getFiles(), __DIR__); - line 78: $compiler->compile('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 71: public function testCompileCompilesFileAndReturnsContents() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 81: public function testCompileCompilesFileAndReturnsContentsCreatingDirectory() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 81: public function testCompileCompilesFileAndReturnsContentsCreatingDirectory() - line 83: $compiler = new BladeCompiler($files = $this->getFiles(), __DIR__); - line 88: $compiler->compile('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 81: public function testCompileCompilesFileAndReturnsContentsCreatingDirectory() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 91: public function testCompileUpdatesCacheIfChanged() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 91: public function testCompileUpdatesCacheIfChanged() - line 94: $compiler = new BladeCompiler($files = $this->getFiles(), __DIR__); - line 100: $compiler->compile('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 91: public function testCompileUpdatesCacheIfChanged() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 103: public function testCompileKeepsCacheIfUnchanged() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 103: public function testCompileKeepsCacheIfUnchanged() - line 106: $compiler = new BladeCompiler($files = $this->getFiles(), __DIR__); - line 112: $compiler->compile('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 103: public function testCompileKeepsCacheIfUnchanged() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 115: public function testCompileCompilesAndGetThePath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 115: public function testCompileCompilesAndGetThePath() - line 117: $compiler = new BladeCompiler($files = $this->getFiles(), __DIR__); - line 122: $compiler->compile('foo'); - line 123: $this->assertSame('foo', $compiler->getPath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 126: public function testCompileSetAndGetThePath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 126: public function testCompileSetAndGetThePath() - line 128: $compiler = new BladeCompiler($files = $this->getFiles(), __DIR__); - line 129: $compiler->setPath('foo'); - line 130: $this->assertSame('foo', $compiler->getPath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 133: public function testCompileWithPathSetBefore() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 133: public function testCompileWithPathSetBefore() - line 135: $compiler = new BladeCompiler($files = $this->getFiles(), __DIR__); - line 141: $compiler->setPath('foo'); - line 143: $compiler->compile(); - line 144: $this->assertSame('foo', $compiler->getPath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 147: public function testRawTagsCanBeSetToLegacyValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 147: public function testRawTagsCanBeSetToLegacyValues() - line 149: $compiler = new BladeCompiler($this->getFiles(), __DIR__); - line 150: $compiler->setEchoFormat('%s'); - line 152: $this->assertSame('', $compiler->compileString('{{{ $name }}}')); - line 153: $this->assertSame('', $compiler->compileString('{{ $name }}')); - line 154: $this->assertSame('', $compiler->compileString('{{ Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 164: public function testIncludePathToTemplate($content, $compiled) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 164: public function testIncludePathToTemplate($content, $compiled) - line 166: $compiler = new BladeCompiler($files = $this->getFiles(), __DIR__); - line 172: $compiler->compile('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 164: public function testIncludePathToTemplate($content, $compiled) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 220: public function testDontIncludeEmptyPath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 220: public function testDontIncludeEmptyPath() - line 222: $compiler = new BladeCompiler($files = $this->getFiles(), __DIR__); - line 227: $compiler->setPath(''); - line 228: $compiler->compile(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 220: public function testDontIncludeEmptyPath() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 231: public function testDontIncludeNullPath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 231: public function testDontIncludeNullPath() - line 233: $compiler = new BladeCompiler($files = $this->getFiles(), __DIR__); - line 238: $compiler->setPath(null); - line 239: $compiler->compile(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 231: public function testDontIncludeNullPath() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 242: public function testShouldStartFromStrictTypesDeclaration() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 242: public function testShouldStartFromStrictTypesDeclaration() - line 244: $compiler = new BladeCompiler($files = $this->getFiles(), __DIR__); - line 246: $this->assertSame(substr($compiler->compileString("getFiles(), __DIR__); - line 254: $compiler->component('App\Foo\Bar'); - line 255: $this->assertEquals(['bar' => 'App\Foo\Bar'], $compiler->getClassComponentAliases()); - line 257: $compiler = new BladeCompiler($files = $this->getFiles(), __DIR__); - line 259: $compiler->component('App\Foo\Bar', null, 'prefix'); - line 260: $this->assertEquals(['prefix-bar' => 'App\Foo\Bar'], $compiler->getClassComponentAliases()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 273: public function testAnonymousComponentNamespacesCanBeStored() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 15. Evidence: - line 273: public function testAnonymousComponentNamespacesCanBeStored() - line 275: $compiler = new BladeCompiler($files = $this->getFiles(), __DIR__); - line 277: $compiler->anonymousComponentNamespace(' public/frontend ', 'frontend'); - line 278: $this->assertEquals(['frontend' => 'public.frontend'], $compiler->getAnonymousComponentNamespaces()); - line 280: $compiler = new BladeCompiler($files = $this->getFiles(), __DIR__); - line 282: $compiler->anonymousComponentNamespace('public/frontend/', 'frontend'); - line 283: $this->assertEquals(['frontend' => 'public.frontend'], $compiler->getAnonymousComponentNamespaces()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/ViewCompilerEngineTest.php - Test @ line 23: public function testViewsMayBeRecompiledAndRendered() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 23: public function testViewsMayBeRecompiledAndRendered() - line 25: $engine = $this->getEngine(); - line 26: $engine->getCompiler()->shouldReceive('getCompiledPath')->with(__DIR__.'/fixtures/foo.php')->andReturn(__DIR__.'/fixtures/basic.php'); - line 27: $engine->getCompiler()->shouldReceive('isExpired')->once()->with(__DIR__.'/fixtures/foo.php')->andReturn(true); - line 28: $engine->getCompiler()->shouldReceive('compile')->once()->with(__DIR__.'/fixtures/foo.php'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testViewsMayBeRecompiledAndRendered() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 35: public function testViewsAreNotRecompiledIfTheyAreNotExpired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 35: public function testViewsAreNotRecompiledIfTheyAreNotExpired() - line 37: $engine = $this->getEngine(); - line 38: $engine->getCompiler()->shouldReceive('getCompiledPath')->with(__DIR__.'/fixtures/foo.php')->andReturn(__DIR__.'/fixtures/basic.php'); - line 39: $engine->getCompiler()->shouldReceive('isExpired')->once()->andReturn(false); - line 40: $engine->getCompiler()->shouldReceive('compile')->never(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 35: public function testViewsAreNotRecompiledIfTheyAreNotExpired() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 47: public function testRegularExceptionsAreReThrownAsViewExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 47: public function testRegularExceptionsAreReThrownAsViewExceptions() - line 49: $engine = $this->getEngine(); - line 50: $engine->getCompiler()->shouldReceive('getCompiledPath')->with(__DIR__.'/fixtures/foo.php')->andReturn(__DIR__.'/fixtures/regular-exception.php'); - line 51: $engine->getCompiler()->shouldReceive('isExpired')->once()->andReturn(false); - line 53: $this->expectException(ViewException::class); - line 54: $this->expectExceptionMessage('regular exception message'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 47: public function testRegularExceptionsAreReThrownAsViewExceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 59: public function testHttpExceptionsAreNotReThrownAsViewExceptions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 59: public function testHttpExceptionsAreNotReThrownAsViewExceptions() - line 61: $engine = $this->getEngine(); - line 62: $engine->getCompiler()->shouldReceive('getCompiledPath')->with(__DIR__.'/fixtures/foo.php')->andReturn(__DIR__.'/fixtures/http-exception.php'); - line 63: $engine->getCompiler()->shouldReceive('isExpired')->once()->andReturn(false); - line 65: $this->expectException(HttpException::class); - line 66: $this->expectExceptionMessage('http exception message'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 59: public function testHttpExceptionsAreNotReThrownAsViewExceptions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 71: public function testThatViewsAreNotAskTwiceIfTheyAreExpired() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 71: public function testThatViewsAreNotAskTwiceIfTheyAreExpired() - line 73: $engine = $this->getEngine(); - line 74: $engine->getCompiler()->shouldReceive('getCompiledPath')->with(__DIR__.'/fixtures/foo.php')->andReturn(__DIR__.'/fixtures/basic.php'); - line 75: $engine->getCompiler()->shouldReceive('isExpired')->twice()->andReturn(false); - line 76: $engine->getCompiler()->shouldReceive('compile')->never(); - line 82: $engine->forgetCompiledOrNotExpired(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 71: public function testThatViewsAreNotAskTwiceIfTheyAreExpired() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 87: public function testViewsAreRecompiledWhenCompiledViewIsMissingViaFileNotFoundException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 87: public function testViewsAreRecompiledWhenCompiledViewIsMissingViaFileNotFoundException() - line 92: $files = m::mock(Filesystem::class); - line 93: $engine = $this->getEngine($files); - line 103: ->andThrow(new FileNotFoundException( - line 112: $engine->getCompiler() - line 118: $engine->getCompiler() - line 123: $engine->getCompiler() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 92: $files = m::mock(Filesystem::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 87: public function testViewsAreRecompiledWhenCompiledViewIsMissingViaFileNotFoundException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 132: public function testViewsAreRecompiledWhenCompiledViewIsMissingViaRequireException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 132: public function testViewsAreRecompiledWhenCompiledViewIsMissingViaRequireException() - line 137: $files = m::mock(Filesystem::class); - line 138: $engine = $this->getEngine($files); - line 148: ->andThrow(new ErrorException( - line 157: $engine->getCompiler() - line 163: $engine->getCompiler() - line 168: $engine->getCompiler() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 137: $files = m::mock(Filesystem::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 132: public function testViewsAreRecompiledWhenCompiledViewIsMissingViaRequireException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 177: public function testViewsAreRecompiledJustOnceWhenCompiledViewIsMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 177: public function testViewsAreRecompiledJustOnceWhenCompiledViewIsMissing() - line 182: $files = m::mock(Filesystem::class); - line 183: $engine = $this->getEngine($files); - line 193: ->andThrow(new FileNotFoundException( - line 200: ->andThrow(new FileNotFoundException( - line 204: $engine->getCompiler() - line 210: $engine->getCompiler() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 182: $files = m::mock(Filesystem::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 177: public function testViewsAreRecompiledJustOnceWhenCompiledViewIsMissing() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 227: public function testViewsAreNotRecompiledOnRegularViewException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 227: public function testViewsAreNotRecompiledOnRegularViewException() - line 232: $files = m::mock(Filesystem::class); - line 233: $engine = $this->getEngine($files); - line 238: ->andThrow(new Exception( - line 242: $engine->getCompiler() - line 247: $engine->getCompiler() - line 251: $engine->getCompiler() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 232: $files = m::mock(Filesystem::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 227: public function testViewsAreNotRecompiledOnRegularViewException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 262: public function testViewsAreNotRecompiledIfTheyWereJustCompiled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 262: public function testViewsAreNotRecompiledIfTheyWereJustCompiled() - line 267: $files = m::mock(Filesystem::class); - line 268: $engine = $this->getEngine($files); - line 273: ->andThrow(new FileNotFoundException( - line 277: $engine->getCompiler() - line 282: $engine->getCompiler() - line 287: $engine->getCompiler() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 267: $files = m::mock(Filesystem::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 262: public function testViewsAreNotRecompiledIfTheyWereJustCompiled() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/View/ViewComponentAttributeBagTest.php - Test @ line 10: public function testAttributeRetrieval() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 37. Evidence: - line 10: public function testAttributeRetrieval() - line 14: $this->assertSame('class="font-bold"', (string) $bag->whereStartsWith('class')); - line 15: $this->assertSame('font-bold', (string) $bag->whereStartsWith('class')->first()); - line 16: $this->assertSame('name="test"', (string) $bag->whereDoesntStartWith('class')); - line 17: $this->assertSame('test', (string) $bag->whereDoesntStartWith('class')->first()); - line 18: $this->assertSame('class="mt-4 font-bold" name="test"', (string) $bag->merge(['class' => 'mt-4'])); - line 19: $this->assertSame('class="mt-4 font-bold" name="test"', (string) $bag->merge(['class' => 'mt-4', 'name' => 'foo'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 121: public function testAttributeRetrievalUsingDotNotation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 121: public function testAttributeRetrievalUsingDotNotation() - line 131: $this->assertFalse($bag->has('data')); - line 132: $this->assertFalse($bag->has('wire:model.debounce')); - line 134: $this->assertTrue($bag->has('data.config')); - line 135: $this->assertTrue($bag->has('x-on:click.prevent')); - line 136: $this->assertTrue($bag->has('wire:model.lazy')); - line 137: $this->assertTrue($bag->has('@submit.prevent')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 147: public function testItMakesAnExceptionForAlpineXdata() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 147: public function testItMakesAnExceptionForAlpineXdata() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 147: public function testItMakesAnExceptionForAlpineXdata() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 157: public function testItMakesAnExceptionForLivewireWireAttributes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 157: public function testItMakesAnExceptionForLivewireWireAttributes() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 157: public function testItMakesAnExceptionForLivewireWireAttributes() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 168: public function testAttributeExistence() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 168: public function testAttributeExistence() - line 172: $this->assertTrue($bag->has('src')); - line 173: $this->assertTrue($bag->has('href')); - line 174: $this->assertTrue($bag->has('name')); - line 175: $this->assertTrue($bag->has(['name'])); - line 176: $this->assertTrue($bag->hasAny(['class', 'name'])); - line 177: $this->assertTrue($bag->hasAny('class', 'name')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 200: public function testAttributeIsArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 200: public function testAttributeIsArray() - line 207: $this->assertIsArray($bag->toArray()); - line 208: $this->assertEquals(['name' => 'test', 'class' => 'font-bold'], $bag->toArray()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 211: public function testFilled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 12. Evidence: - line 211: public function testFilled() - line 223: $this->assertTrue($bag->filled('name')); - line 224: $this->assertTrue($bag->filled('class')); - line 225: $this->assertTrue($bag->filled('zero')); - line 226: $this->assertTrue($bag->filled('false')); - line 227: $this->assertFalse($bag->filled('null')); - line 228: $this->assertFalse($bag->filled('empty')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 239: public function testIsNotFilled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 239: public function testIsNotFilled() - line 247: $this->assertFalse($bag->isNotFilled('name')); - line 248: $this->assertTrue($bag->isNotFilled('empty')); - line 249: $this->assertTrue($bag->isNotFilled('whitespace')); - line 250: $this->assertTrue($bag->isNotFilled('nonexistent')); - line 253: $this->assertTrue($bag->isNotFilled(['empty', 'whitespace'])); - line 254: $this->assertFalse($bag->isNotFilled(['name', 'empty'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 257: public function testAnyFilled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 257: public function testAnyFilled() - line 265: $this->assertTrue($bag->anyFilled(['name', 'empty'])); - line 266: $this->assertTrue($bag->anyFilled(['empty', 'name'])); - line 267: $this->assertFalse($bag->anyFilled(['empty', 'whitespace'])); - line 268: $this->assertTrue($bag->anyFilled('name', 'empty')); - line 269: $this->assertFalse($bag->anyFilled('empty', 'whitespace')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 272: public function testWhenFilled() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 272: public function testWhenFilled() - line 279: $result = $bag->whenFilled('name', function ($value) { - line 284: $result = $bag->whenFilled('empty', function ($value) { - line 289: $result = $bag->whenFilled('empty', function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 297: public function testWhenHas() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 297: public function testWhenHas() - line 301: $result = $bag->whenHas('name', function ($value) { - line 306: $result = $bag->whenHas('missing', function ($value) { - line 311: $result = $bag->whenHas('missing', function ($value) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 319: public function testWhenMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 319: public function testWhenMissing() - line 323: $result = $bag->whenMissing('name', function () { - line 328: $result = $bag->whenMissing('missing', function () { - line 333: $result = $bag->whenMissing('name', function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 341: public function testString() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 341: public function testString() - line 349: $this->assertInstanceOf(\Illuminate\Support\Stringable::class, $bag->string('name')); - line 350: $this->assertEquals('test', (string) $bag->string('name')); - line 351: $this->assertEquals('', (string) $bag->string('empty')); - line 352: $this->assertEquals('123', (string) $bag->string('number')); - line 353: $this->assertEquals('default', (string) $bag->string('missing', 'default')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 356: public function testBoolean() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 356: public function testBoolean() - line 369: $this->assertTrue($bag->boolean('true_string')); - line 370: $this->assertFalse($bag->boolean('false_string')); - line 371: $this->assertTrue($bag->boolean('one')); - line 372: $this->assertFalse($bag->boolean('zero')); - line 373: $this->assertTrue($bag->boolean('yes')); - line 374: $this->assertFalse($bag->boolean('no')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 381: public function testInteger() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 381: public function testInteger() - line 389: $this->assertSame(123, $bag->integer('number')); - line 390: $this->assertSame(123, $bag->integer('float')); - line 391: $this->assertSame(0, $bag->integer('string')); - line 392: $this->assertSame(42, $bag->integer('missing', 42)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 395: public function testFloat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 395: public function testFloat() - line 403: $this->assertSame(123.0, $bag->float('number')); - line 404: $this->assertSame(123.45, $bag->float('float')); - line 405: $this->assertSame(0.0, $bag->float('string')); - line 406: $this->assertSame(42.5, $bag->float('missing', 42.5)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 409: public function testExists() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 409: public function testExists() - line 413: $this->assertTrue($bag->exists('name')); - line 414: $this->assertFalse($bag->exists('missing')); - line 415: $this->assertTrue($bag->exists(['name'])); - line 416: $this->assertFalse($bag->exists(['missing'])); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/ViewComponentTest.php - Test @ line 24: public function testIgnoredMethodsAreNotExposedToViewData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 24: public function testIgnoredMethodsAreNotExposedToViewData() - line 46: $data = $component->data(); - line 53: $ignoredMethods = $reflectionMethod->invoke($component); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 90: public function testPublicMethodsWithNoArgsAreConvertedToStringableCallablesInvokedAndNotCached() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 90: public function testPublicMethodsWithNoArgsAreConvertedToStringableCallablesInvokedAndNotCached() - line 96: $variables = $component->data(); - line 116: $component->data(); - line 118: $component->data(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/ViewEngineResolverTest.php - Test @ line 12: public function testResolversMayBeResolved() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 12: public function testResolversMayBeResolved() - line 15: $resolver->register('foo', function () { - line 18: $result = $resolver->resolve('foo'); - line 20: $this->assertEquals(spl_object_hash($result), spl_object_hash($resolver->resolve('foo'))); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 23: public function testResolverThrowsExceptionOnUnknownEngine() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 23: public function testResolverThrowsExceptionOnUnknownEngine() - line 25: $this->expectException(InvalidArgumentException::class); - line 28: $resolver->resolve('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 23: public function testResolverThrowsExceptionOnUnknownEngine() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/View/ViewFactoryTest.php - Test @ line 35: public function testMakeCreatesNewViewInstanceWithProperPathAndEngine() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 35: public function testMakeCreatesNewViewInstanceWithProperPathAndEngine() - line 39: $factory = $this->getFactory(); - line 40: $factory->getFinder()->shouldReceive('find')->once()->with('view')->andReturn('path.php'); - line 41: $factory->getEngineResolver()->shouldReceive('resolve')->once()->with('php')->andReturn($engine = m::mock(Engine::class)); - line 42: $factory->getFinder()->shouldReceive('addExtension')->once()->with('php'); - line 43: $factory->setDispatcher(new Dispatcher); - line 44: $factory->creator('view', function ($view) { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 45: $_SERVER['__test.view'] = $view; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 37: unset($_SERVER['__test.view']); - line 53: unset($_SERVER['__test.view']); - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 41: $factory->getEngineResolver()->shouldReceive('resolve')->once()->with('php')->andReturn($engine = m::mock(Engine::class)); - Test @ line 56: public function testExistsPassesAndFailsViews() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 56: public function testExistsPassesAndFailsViews() - line 58: $factory = $this->getFactory(); - line 59: $factory->getFinder()->shouldReceive('find')->once()->with('foo')->andThrow(InvalidArgumentException::class); - line 60: $factory->getFinder()->shouldReceive('find')->once()->with('bar')->andReturn('path.php'); - line 62: $this->assertFalse($factory->exists('foo')); - line 63: $this->assertTrue($factory->exists('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 66: public function testRenderingOnceChecks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 66: public function testRenderingOnceChecks() - line 68: $factory = $this->getFactory(); - line 69: $this->assertFalse($factory->hasRenderedOnce('foo')); - line 70: $factory->markAsRenderedOnce('foo'); - line 71: $this->assertTrue($factory->hasRenderedOnce('foo')); - line 72: $factory->flushState(); - line 73: $this->assertFalse($factory->hasRenderedOnce('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 76: public function testFirstCreatesNewViewInstanceWithProperPath() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 76: public function testFirstCreatesNewViewInstanceWithProperPath() - line 80: $factory = $this->getFactory(); - line 81: $factory->getFinder()->shouldReceive('find')->twice()->with('view')->andReturn('path.php'); - line 82: $factory->getFinder()->shouldReceive('find')->once()->with('bar')->andThrow(InvalidArgumentException::class); - line 83: $factory->getEngineResolver()->shouldReceive('resolve')->once()->with('php')->andReturn($engine = m::mock(Engine::class)); - line 84: $factory->getFinder()->shouldReceive('addExtension')->once()->with('php'); - line 85: $factory->setDispatcher(new Dispatcher); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [BOOTSTRAP_PURITY_SUPERGLOBALS] Note: Direct mutation of PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 87: $_SERVER['__test.view'] = $view; - [BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET] Note: Unsetting PHP superglobals is global state and is order-dependent unless restored. Evidence: - line 78: unset($_SERVER['__test.view']); - line 96: unset($_SERVER['__test.view']); - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 83: $factory->getEngineResolver()->shouldReceive('resolve')->once()->with('php')->andReturn($engine = m::mock(Engine::class)); - Test @ line 99: public function testFirstThrowsInvalidArgumentExceptionIfNoneFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 99: public function testFirstThrowsInvalidArgumentExceptionIfNoneFound() - line 101: $this->expectException(InvalidArgumentException::class); - line 103: $factory = $this->getFactory(); - line 104: $factory->getFinder()->shouldReceive('find')->once()->with('view')->andThrow(InvalidArgumentException::class); - line 105: $factory->getFinder()->shouldReceive('find')->once()->with('bar')->andThrow(InvalidArgumentException::class); - line 106: $factory->getEngineResolver()->shouldReceive('resolve')->with('php')->andReturn($engine = m::mock(Engine::class)); - line 107: $factory->getFinder()->shouldReceive('addExtension')->with('php'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 106: $factory->getEngineResolver()->shouldReceive('resolve')->with('php')->andReturn($engine = m::mock(Engine::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 99: public function testFirstThrowsInvalidArgumentExceptionIfNoneFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 112: public function testRenderEachCreatesViewForEachItemInArray() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 112: public function testRenderEachCreatesViewForEachItemInArray() - line 114: $factory = m::mock(Factory::class.'[make]', $this->getFactoryArgs()); - line 120: $result = $factory->renderEach('foo', ['bar' => 'baz', 'breeze' => 'boom'], 'value'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 115: $factory->shouldReceive('make')->once()->with('foo', ['key' => 'bar', 'value' => 'baz'])->andReturn($mockView1 = m::mock(stdClass::class)); - line 116: $factory->shouldReceive('make')->once()->with('foo', ['key' => 'breeze', 'value' => 'boom'])->andReturn($mockView2 = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 112: public function testRenderEachCreatesViewForEachItemInArray() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 125: public function testEmptyViewsCanBeReturnedFromRenderEach() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 125: public function testEmptyViewsCanBeReturnedFromRenderEach() - line 127: $factory = m::mock(Factory::class.'[make]', $this->getFactoryArgs()); - line 131: $this->assertSame('empty', $factory->renderEach('view', [], 'iterator', 'foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 128: $factory->shouldReceive('make')->once()->with('foo')->andReturn($mockView = m::mock(stdClass::class)); - Test @ line 139: public function testEnvironmentAddsExtensionWithCustomResolver() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 139: public function testEnvironmentAddsExtensionWithCustomResolver() - line 141: $factory = $this->getFactory(); - line 147: $factory->getFinder()->shouldReceive('addExtension')->once()->with('foo'); - line 148: $factory->getEngineResolver()->shouldReceive('register')->once()->with('bar', $resolver); - line 149: $factory->getFinder()->shouldReceive('find')->once()->with('view')->andReturn('path.foo'); - line 150: $factory->getEngineResolver()->shouldReceive('resolve')->once()->with('bar')->andReturn($engine = m::mock(Engine::class)); - line 151: $factory->getDispatcher()->shouldReceive('hasListeners')->andReturn(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 150: $factory->getEngineResolver()->shouldReceive('resolve')->once()->with('bar')->andReturn($engine = m::mock(Engine::class)); - Test @ line 159: public function testAddingExtensionPrependsNotAppends() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 159: public function testAddingExtensionPrependsNotAppends() - line 161: $factory = $this->getFactory(); - line 162: $factory->getFinder()->shouldReceive('addExtension')->once()->with('foo'); - line 164: $factory->addExtension('foo', 'bar'); - line 166: $extensions = $factory->getExtensions(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 159: public function testAddingExtensionPrependsNotAppends() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 171: public function testPrependedExtensionOverridesExistingExtensions() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 171: public function testPrependedExtensionOverridesExistingExtensions() - line 173: $factory = $this->getFactory(); - line 174: $factory->getFinder()->shouldReceive('addExtension')->once()->with('foo'); - line 175: $factory->getFinder()->shouldReceive('addExtension')->once()->with('baz'); - line 177: $factory->addExtension('foo', 'bar'); - line 178: $factory->addExtension('baz', 'bar'); - line 180: $extensions = $factory->getExtensions(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 171: public function testPrependedExtensionOverridesExistingExtensions() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 185: public function testCallCreatorsDoesDispatchEventsWhenIsNecessary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 185: public function testCallCreatorsDoesDispatchEventsWhenIsNecessary() - line 187: $factory = $this->getFactory(); - line 189: $factory->getDispatcher() - line 194: $factory->getDispatcher()->shouldReceive('hasListeners')->andReturn(true); - line 196: $factory->getDispatcher() - line 204: $factory->creator('name', fn () => true); - line 206: $factory->callCreator($view); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 201: $view = m::mock(View::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 185: public function testCallCreatorsDoesDispatchEventsWhenIsNecessary() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 209: public function testCallCreatorsDoesDispatchEventsWhenIsNecessaryUsingNamespacedWildcards() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 209: public function testCallCreatorsDoesDispatchEventsWhenIsNecessaryUsingNamespacedWildcards() - line 211: $factory = $this->getFactory(); - line 213: $factory->getDispatcher() - line 218: $factory->getDispatcher()->shouldReceive('hasListeners')->andReturn(true); - line 220: $factory->getDispatcher() - line 228: $factory->creator('namespaced::*', fn () => true); - line 230: $factory->callCreator($view); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 225: $view = m::mock(View::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 209: public function testCallCreatorsDoesDispatchEventsWhenIsNecessaryUsingNamespacedWildcards() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 233: public function testCallCreatorsDoesDispatchEventsWhenIsNecessaryUsingNamespacedNestedWildcards() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 233: public function testCallCreatorsDoesDispatchEventsWhenIsNecessaryUsingNamespacedNestedWildcards() - line 235: $factory = $this->getFactory(); - line 237: $factory->getDispatcher() - line 242: $factory->getDispatcher() - line 247: $factory->getDispatcher()->shouldReceive('hasListeners')->andReturn(true); - line 249: $factory->getDispatcher() - line 257: $factory->creator(['namespaced::*', 'welcome'], fn () => true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 254: $view = m::mock(View::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 233: public function testCallCreatorsDoesDispatchEventsWhenIsNecessaryUsingNamespacedNestedWildcards() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 262: public function testCallCreatorsDoesDispatchEventsWhenIsNecessaryUsingWildcards() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 262: public function testCallCreatorsDoesDispatchEventsWhenIsNecessaryUsingWildcards() - line 264: $factory = $this->getFactory(); - line 266: $factory->getDispatcher() - line 271: $factory->getDispatcher()->shouldReceive('hasListeners')->andReturn(true); - line 273: $factory->getDispatcher() - line 281: $factory->creator('*', fn () => true); - line 283: $factory->callCreator($view); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 278: $view = m::mock(View::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 262: public function testCallCreatorsDoesDispatchEventsWhenIsNecessaryUsingWildcards() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 286: public function testCallCreatorsDoesDispatchEventsWhenIsNecessaryUsingNormalizedNames() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 286: public function testCallCreatorsDoesDispatchEventsWhenIsNecessaryUsingNormalizedNames() - line 288: $factory = $this->getFactory(); - line 290: $factory->getDispatcher() - line 295: $factory->getDispatcher()->shouldReceive('hasListeners')->andReturn(true); - line 297: $factory->getDispatcher() - line 307: $factory->creator('components.button', fn () => true); - line 309: $factory->callCreator($view); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 302: $view = m::mock(View::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 286: public function testCallCreatorsDoesDispatchEventsWhenIsNecessaryUsingNormalizedNames() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 312: public function testCallComposerDoesDispatchEventsWhenIsNecessary() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 312: public function testCallComposerDoesDispatchEventsWhenIsNecessary() - line 314: $factory = $this->getFactory(); - line 316: $factory->getDispatcher() - line 321: $factory->getDispatcher()->shouldReceive('hasListeners')->andReturn(true); - line 323: $factory->getDispatcher() - line 331: $factory->composer('name', fn () => true); - line 333: $factory->callComposer($view); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 328: $view = m::mock(View::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 312: public function testCallComposerDoesDispatchEventsWhenIsNecessary() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 336: public function testCallComposerDoesDispatchEventsWhenIsNecessaryAndUsingTheArrayFormat() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 336: public function testCallComposerDoesDispatchEventsWhenIsNecessaryAndUsingTheArrayFormat() - line 338: $factory = $this->getFactory(); - line 340: $factory->getDispatcher() - line 345: $factory->getDispatcher()->shouldReceive('hasListeners')->andReturn(true); - line 347: $factory->getDispatcher() - line 355: $factory->composer(['name'], fn () => true); - line 357: $factory->callComposer($view); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 352: $view = m::mock(View::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 336: public function testCallComposerDoesDispatchEventsWhenIsNecessaryAndUsingTheArrayFormat() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 360: public function testCallComposersDoesDispatchEventsWhenIsNecessaryUsingNamespacedWildcards() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 360: public function testCallComposersDoesDispatchEventsWhenIsNecessaryUsingNamespacedWildcards() - line 362: $factory = $this->getFactory(); - line 364: $factory->getDispatcher() - line 369: $factory->getDispatcher()->shouldReceive('hasListeners')->andReturn(true); - line 371: $factory->getDispatcher() - line 379: $factory->composer('namespaced::*', fn () => true); - line 381: $factory->callComposer($view); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 376: $view = m::mock(View::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 360: public function testCallComposersDoesDispatchEventsWhenIsNecessaryUsingNamespacedWildcards() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 384: public function testCallComposersDoesDispatchEventsWhenIsNecessaryUsingNamespacedNestedWildcards() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 384: public function testCallComposersDoesDispatchEventsWhenIsNecessaryUsingNamespacedNestedWildcards() - line 386: $factory = $this->getFactory(); - line 387: $factory->getDispatcher() - line 392: $factory->getDispatcher() - line 397: $factory->getDispatcher()->shouldReceive('hasListeners')->andReturn(true); - line 399: $factory->getDispatcher() - line 407: $factory->composer(['namespaced::*', 'welcome'], fn () => true); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 404: $view = m::mock(View::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 384: public function testCallComposersDoesDispatchEventsWhenIsNecessaryUsingNamespacedNestedWildcards() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 412: public function testCallComposersDoesDispatchEventsWhenIsNecessaryUsingWildcards() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 412: public function testCallComposersDoesDispatchEventsWhenIsNecessaryUsingWildcards() - line 414: $factory = $this->getFactory(); - line 416: $factory->getDispatcher()->shouldReceive('hasListeners')->andReturn(true); - line 418: $factory->getDispatcher() - line 423: $factory->getDispatcher() - line 431: $factory->composer('*', fn () => true); - line 433: $factory->callComposer($view); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 428: $view = m::mock(View::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 412: public function testCallComposersDoesDispatchEventsWhenIsNecessaryUsingWildcards() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 436: public function testCallComposersDoesDispatchEventsWhenIsNecessaryUsingNormalizedNames() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 436: public function testCallComposersDoesDispatchEventsWhenIsNecessaryUsingNormalizedNames() - line 438: $factory = $this->getFactory(); - line 440: $factory->getDispatcher()->shouldReceive('hasListeners')->andReturn(true); - line 442: $factory->getDispatcher() - line 447: $factory->getDispatcher() - line 455: $factory->composer('components.button', fn () => true); - line 457: $factory->callComposer($view); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 452: $view = m::mock(View::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 436: public function testCallComposersDoesDispatchEventsWhenIsNecessaryUsingNormalizedNames() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 460: public function testComposersAreProperlyRegistered() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 460: public function testComposersAreProperlyRegistered() - line 462: $factory = $this->getFactory(); - line 463: $factory->getDispatcher()->shouldReceive('listen')->once()->with('composing: foo', m::type(Closure::class)); - line 464: $callback = $factory->composer('foo', function () { Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 460: public function testComposersAreProperlyRegistered() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 472: public function testComposersCanBeMassRegistered() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 472: public function testComposersCanBeMassRegistered() - line 474: $factory = $this->getFactory(); - line 475: $factory->getDispatcher()->shouldReceive('listen')->once()->with('composing: bar', m::type(Closure::class)); - line 476: $factory->getDispatcher()->shouldReceive('listen')->once()->with('composing: qux', m::type(Closure::class)); - line 477: $factory->getDispatcher()->shouldReceive('listen')->once()->with('composing: foo', m::type(Closure::class)); - line 478: $composers = $factory->composers([ - line 488: $this->assertEquals(['class' => 'foo', 'method' => 'compose'], $reflections[0]->getStaticVariables()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 492: public function testClassCallbacks() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 492: public function testClassCallbacks() - line 494: $factory = $this->getFactory(); - line 495: $factory->getDispatcher()->shouldReceive('listen')->once()->with('composing: foo', m::type(Closure::class)); - line 496: $factory->setContainer($container = m::mock(Container::class)); - line 499: $callback = $factory->composer('foo', 'FooComposer'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 496: $factory->setContainer($container = m::mock(Container::class)); - line 497: $container->shouldReceive('make')->once()->with('FooComposer')->andReturn($composer = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 492: public function testClassCallbacks() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 505: public function testClassCallbacksWithMethods() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 505: public function testClassCallbacksWithMethods() - line 507: $factory = $this->getFactory(); - line 508: $factory->getDispatcher()->shouldReceive('listen')->once()->with('composing: foo', m::type(Closure::class)); - line 509: $factory->setContainer($container = m::mock(Container::class)); - line 512: $callback = $factory->composer('foo', 'FooComposer@doComposer'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 509: $factory->setContainer($container = m::mock(Container::class)); - line 510: $container->shouldReceive('make')->once()->with('FooComposer')->andReturn($composer = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 505: public function testClassCallbacksWithMethods() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 518: public function testCallComposerCallsProperEvent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 518: public function testCallComposerCallsProperEvent() - line 520: $factory = $this->getFactory(); - line 523: $factory->setDispatcher($dispatcher); - line 529: $factory->composer('name', fn () => true); - line 531: $factory->getDispatcher()->shouldReceive('hasListeners')->andReturn(true); - line 532: $factory->getDispatcher()->shouldReceive('dispatch')->once()->with('composing: name', [$view]); - line 534: $factory->callComposer($view); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 521: $view = m::mock(View::class); - line 522: $dispatcher = m::mock(DispatcherContract::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 518: public function testCallComposerCallsProperEvent() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 537: public function testComposersAreRegisteredWithSlashAndDot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 537: public function testComposersAreRegisteredWithSlashAndDot() - line 539: $factory = $this->getFactory(); - line 540: $factory->getDispatcher()->shouldReceive('listen')->with('composing: foo.bar', m::any())->twice(); - line 541: $factory->composer('foo.bar', ''); - line 542: $factory->composer('foo/bar', ''); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 537: public function testComposersAreRegisteredWithSlashAndDot() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 545: public function testRenderCountHandling() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 545: public function testRenderCountHandling() - line 547: $factory = $this->getFactory(); - line 548: $factory->incrementRender(); - line 549: $this->assertFalse($factory->doneRendering()); - line 550: $factory->decrementRender(); - line 551: $this->assertTrue($factory->doneRendering()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 554: public function testYieldDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 554: public function testYieldDefault() - line 556: $factory = $this->getFactory(); - line 557: $this->assertSame('hi', $factory->yieldContent('foo', 'hi')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 560: public function testYieldDefaultIsEscaped() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 560: public function testYieldDefaultIsEscaped() - line 562: $factory = $this->getFactory(); - line 563: $this->assertSame('<p>hi</p>', $factory->yieldContent('foo', '

hi

')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 566: public function testYieldDefaultViewIsNotEscapedTwice() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 566: public function testYieldDefaultViewIsNotEscapedTwice() - line 568: $factory = $this->getFactory(); - line 571: $this->assertSame('

hi

<p>already escaped</p>', $factory->yieldContent('foo', $view)); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 569: $view = m::mock(View::class); - Test @ line 574: public function testBasicFragmentHandling() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 574: public function testBasicFragmentHandling() - line 576: $factory = $this->getFactory(); - line 577: $factory->startFragment('foo'); - line 579: $this->assertSame('hi', $factory->stopFragment()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 582: public function testBasicSectionHandling() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 582: public function testBasicSectionHandling() - line 584: $factory = $this->getFactory(); - line 585: $factory->startSection('foo'); - line 587: $factory->stopSection(); - line 588: $this->assertSame('hi', $factory->yieldContent('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 591: public function testBasicSectionDefault() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 591: public function testBasicSectionDefault() - line 593: $factory = $this->getFactory(); - line 594: $factory->startSection('foo', 'hi'); - line 595: $this->assertSame('hi', $factory->yieldContent('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 598: public function testBasicSectionDefaultIsEscaped() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 598: public function testBasicSectionDefaultIsEscaped() - line 600: $factory = $this->getFactory(); - line 601: $factory->startSection('foo', '

hi

'); - line 602: $this->assertSame('<p>hi</p>', $factory->yieldContent('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 605: public function testBasicSectionDefaultViewIsNotEscapedTwice() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 605: public function testBasicSectionDefaultViewIsNotEscapedTwice() - line 607: $factory = $this->getFactory(); - line 610: $factory->startSection('foo', $view); - line 611: $this->assertSame('

hi

<p>already escaped</p>', $factory->yieldContent('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 608: $view = m::mock(View::class); - Test @ line 614: public function testSectionExtending() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 614: public function testSectionExtending() - line 616: $placeholder = Factory::parentPlaceholder('foo'); - line 617: $factory = $this->getFactory(); - line 618: $factory->startSection('foo'); - line 620: $factory->stopSection(); - line 621: $factory->startSection('foo'); - line 623: $factory->stopSection(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 627: public function testSectionMultipleExtending() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 627: public function testSectionMultipleExtending() - line 629: $placeholder = Factory::parentPlaceholder('foo'); - line 630: $factory = $this->getFactory(); - line 631: $factory->startSection('foo'); - line 633: $factory->stopSection(); - line 634: $factory->startSection('foo'); - line 636: $factory->stopSection(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 643: public function testComponentHandling() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 643: public function testComponentHandling() - line 645: $factory = $this->getFactory(); - line 646: $factory->getFinder()->shouldReceive('find')->andReturn(__DIR__.'/fixtures/component.php'); - line 647: $factory->getEngineResolver()->shouldReceive('resolve')->andReturn(new PhpEngine(new Filesystem)); - line 648: $factory->getDispatcher()->shouldReceive('hasListeners')->andReturn(false); - line 649: $factory->startComponent('component', ['name' => 'Taylor']); - line 650: $factory->slot('title'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 643: public function testComponentHandling() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 659: public function testComponentHandlingUsingViewObject() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 659: public function testComponentHandlingUsingViewObject() - line 661: $factory = $this->getFactory(); - line 662: $factory->getFinder()->shouldReceive('find')->andReturn(__DIR__.'/fixtures/component.php'); - line 663: $factory->getEngineResolver()->shouldReceive('resolve')->andReturn(new PhpEngine(new Filesystem)); - line 664: $factory->getDispatcher()->shouldReceive('hasListeners')->andReturn(false); - line 665: $factory->startComponent($factory->make('component'), ['name' => 'Taylor']); - line 666: $factory->slot('title'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 659: public function testComponentHandlingUsingViewObject() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 675: public function testComponentHandlingUsingClosure() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 675: public function testComponentHandlingUsingClosure() - line 677: $factory = $this->getFactory(); - line 678: $factory->getFinder()->shouldReceive('find')->andReturn(__DIR__.'/fixtures/component.php'); - line 679: $factory->getEngineResolver()->shouldReceive('resolve')->andReturn(new PhpEngine(new Filesystem)); - line 680: $factory->getDispatcher()->shouldReceive('hasListeners')->andReturn(false); - line 681: $factory->startComponent(function ($data) use ($factory) { - line 687: $factory->slot('title'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 675: public function testComponentHandlingUsingClosure() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 696: public function testComponentHandlingUsingHtmlable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 696: public function testComponentHandlingUsingHtmlable() - line 698: $factory = $this->getFactory(); - line 699: $factory->startComponent(new HtmlString('laravel.com')); - line 700: $contents = $factory->renderComponent(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 696: public function testComponentHandlingUsingHtmlable() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 704: public function testTranslation() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 704: public function testTranslation() - line 707: $container->instance('translator', $translator = m::mock(stdClass::class)); - line 709: $factory = $this->getFactory(); - line 710: $factory->setContainer($container); - line 711: $factory->startTranslation(['name' => 'taylor']); - line 713: $string = $factory->renderTranslation(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 707: $container->instance('translator', $translator = m::mock(stdClass::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 704: public function testTranslation() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 718: public function testSingleStackPush() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 718: public function testSingleStackPush() - line 720: $factory = $this->getFactory(); - line 721: $factory->startPush('foo'); - line 723: $factory->stopPush(); - line 724: $this->assertSame('hi', $factory->yieldPushContent('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 727: public function testMultipleStackPush() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 727: public function testMultipleStackPush() - line 729: $factory = $this->getFactory(); - line 730: $factory->startPush('foo'); - line 732: $factory->stopPush(); - line 733: $factory->startPush('foo'); - line 735: $factory->stopPush(); - line 736: $this->assertSame('hi, Hello!', $factory->yieldPushContent('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 739: public function testSingleStackPrepend() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 739: public function testSingleStackPrepend() - line 741: $factory = $this->getFactory(); - line 742: $factory->startPrepend('foo'); - line 744: $factory->stopPrepend(); - line 745: $this->assertSame('hi', $factory->yieldPushContent('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 748: public function testMultipleStackPrepend() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 748: public function testMultipleStackPrepend() - line 750: $factory = $this->getFactory(); - line 751: $factory->startPrepend('foo'); - line 753: $factory->stopPrepend(); - line 754: $factory->startPrepend('foo'); - line 756: $factory->stopPrepend(); - line 757: $this->assertSame('hi, Hello!', $factory->yieldPushContent('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 760: public function testSessionAppending() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 760: public function testSessionAppending() - line 762: $factory = $this->getFactory(); - line 763: $factory->startSection('foo'); - line 765: $factory->appendSection(); - line 766: $factory->startSection('foo'); - line 768: $factory->appendSection(); - line 769: $this->assertSame('hithere', $factory->yieldContent('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 772: public function testYieldSectionStopsAndYields() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 772: public function testYieldSectionStopsAndYields() - line 774: $factory = $this->getFactory(); - line 775: $factory->startSection('foo'); - line 777: $this->assertSame('hi', $factory->yieldSection()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 780: public function testInjectStartsSectionWithContent() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 780: public function testInjectStartsSectionWithContent() - line 782: $factory = $this->getFactory(); - line 783: $factory->inject('foo', 'hi'); - line 784: $this->assertSame('hi', $factory->yieldContent('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 787: public function testEmptyStringIsReturnedForNonSections() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 787: public function testEmptyStringIsReturnedForNonSections() - line 789: $factory = $this->getFactory(); - line 790: $this->assertEmpty($factory->yieldContent('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 787: public function testEmptyStringIsReturnedForNonSections() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 793: public function testSectionFlushing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 793: public function testSectionFlushing() - line 795: $factory = $this->getFactory(); - line 796: $factory->startSection('foo'); - line 798: $factory->stopSection(); - line 800: $this->assertCount(1, $factory->getSections()); - line 802: $factory->flushSections(); - line 804: $this->assertCount(0, $factory->getSections()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 807: public function testHasSection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 807: public function testHasSection() - line 809: $factory = $this->getFactory(); - line 810: $factory->startSection('foo'); - line 812: $factory->stopSection(); - line 814: $this->assertTrue($factory->hasSection('foo')); - line 815: $this->assertFalse($factory->hasSection('bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 818: public function testSectionMissing() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 818: public function testSectionMissing() - line 820: $factory = $this->getFactory(); - line 821: $factory->startSection('foo'); - line 823: $factory->stopSection(); - line 825: $this->assertTrue($factory->sectionMissing('bar')); - line 826: $this->assertFalse($factory->sectionMissing('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 829: public function testGetSection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 829: public function testGetSection() - line 831: $factory = $this->getFactory(); - line 832: $factory->startSection('foo'); - line 834: $factory->stopSection(); - line 836: $this->assertSame('hi', $factory->getSection('foo')); - line 837: $this->assertNull($factory->getSection('bar')); - line 838: $this->assertSame('default', $factory->getSection('bar', 'default')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 841: public function testMakeWithSlashAndDot() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 841: public function testMakeWithSlashAndDot() - line 843: $factory = $this->getFactory(); - line 844: $factory->getFinder()->shouldReceive('find')->twice()->with('foo.bar')->andReturn('path.php'); - line 845: $factory->getEngineResolver()->shouldReceive('resolve')->twice()->with('php')->andReturn(m::mock(Engine::class)); - line 846: $factory->getDispatcher()->shouldReceive('hasListeners')->andReturn(false); - line 847: $factory->make('foo/bar'); - line 848: $factory->make('foo.bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 845: $factory->getEngineResolver()->shouldReceive('resolve')->twice()->with('php')->andReturn(m::mock(Engine::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 841: public function testMakeWithSlashAndDot() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 851: public function testNamespacedViewNamesAreNormalizedProperly() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 851: public function testNamespacedViewNamesAreNormalizedProperly() - line 853: $factory = $this->getFactory(); - line 854: $factory->getFinder()->shouldReceive('find')->twice()->with('vendor/package::foo.bar')->andReturn('path.php'); - line 855: $factory->getEngineResolver()->shouldReceive('resolve')->twice()->with('php')->andReturn(m::mock(Engine::class)); - line 856: $factory->getDispatcher()->shouldReceive('hasListeners')->andReturn(false); - line 857: $factory->make('vendor/package::foo/bar'); - line 858: $factory->make('vendor/package::foo.bar'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 855: $factory->getEngineResolver()->shouldReceive('resolve')->twice()->with('php')->andReturn(m::mock(Engine::class)); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 851: public function testNamespacedViewNamesAreNormalizedProperly() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 861: public function testExceptionIsThrownForUnknownExtension() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 861: public function testExceptionIsThrownForUnknownExtension() - line 863: $this->expectException(InvalidArgumentException::class); - line 865: $factory = $this->getFactory(); - line 866: $factory->getFinder()->shouldReceive('find')->once()->with('view')->andReturn('view.foo'); - line 867: $factory->make('view'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 861: public function testExceptionIsThrownForUnknownExtension() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 870: public function testExceptionsInSectionsAreThrown() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 870: public function testExceptionsInSectionsAreThrown() - line 872: $this->expectException(ErrorException::class); - line 873: $this->expectExceptionMessage('section exception message'); - line 876: $engine->getCompiler()->shouldReceive('getCompiledPath')->andReturnUsing(function ($path) { - line 879: $engine->getCompiler()->shouldReceive('isExpired')->twice()->andReturn(false); - line 880: $factory = $this->getFactory(); - line 881: $factory->getEngineResolver()->shouldReceive('resolve')->twice()->andReturn($engine); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 875: $engine = new CompilerEngine(m::mock(CompilerInterface::class), new Filesystem); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 870: public function testExceptionsInSectionsAreThrown() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 889: public function testExtraStopSectionCallThrowsException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 889: public function testExtraStopSectionCallThrowsException() - line 891: $this->expectException(InvalidArgumentException::class); - line 892: $this->expectExceptionMessage('Cannot end a section without first starting one.'); - line 894: $factory = $this->getFactory(); - line 895: $factory->startSection('foo'); - line 896: $factory->stopSection(); - line 898: $factory->stopSection(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 889: public function testExtraStopSectionCallThrowsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 901: public function testExtraAppendSectionCallThrowsException() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 901: public function testExtraAppendSectionCallThrowsException() - line 903: $this->expectException(InvalidArgumentException::class); - line 904: $this->expectExceptionMessage('Cannot end a section without first starting one.'); - line 906: $factory = $this->getFactory(); - line 907: $factory->startSection('foo'); - line 908: $factory->stopSection(); - line 910: $factory->appendSection(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 901: public function testExtraAppendSectionCallThrowsException() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 913: public function testAddingLoops() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 913: public function testAddingLoops() - line 915: $factory = $this->getFactory(); - line 917: $factory->addLoop([1, 2, 3]); - line 932: $this->assertEquals([$expectedLoop], $factory->getLoopStack()); - line 934: $factory->addLoop([1, 2, 3, 4]); - line 948: $this->assertEquals([$expectedLoop, $secondExpectedLoop], $factory->getLoopStack()); - line 950: $factory->popLoop(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 955: public function testAddingLoopDoesNotCloseGenerator() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 955: public function testAddingLoopDoesNotCloseGenerator() - line 957: $factory = $this->getFactory(); - line 967: })->generate(); - line 969: $factory->addLoop($data); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 955: public function testAddingLoopDoesNotCloseGenerator() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 976: public function testAddingUncountableLoop() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 976: public function testAddingUncountableLoop() - line 978: $factory = $this->getFactory(); - line 980: $factory->addLoop(''); - line 995: $this->assertEquals([$expectedLoop], $factory->getLoopStack()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 998: public function testAddingLazyCollection() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 998: public function testAddingLazyCollection() - line 1000: $factory = $this->getFactory(); - line 1002: $factory->addLoop(new LazyCollection(function () { - line 1019: $this->assertEquals([$expectedLoop], $factory->getLoopStack()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1022: public function testIncrementingLoopIndices() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 14. Evidence: - line 1022: public function testIncrementingLoopIndices() - line 1024: $factory = $this->getFactory(); - line 1026: $factory->addLoop([1, 2, 3, 4]); - line 1028: $factory->incrementLoopIndices(); - line 1030: $this->assertEquals(1, $factory->getLoopStack()[0]['iteration']); - line 1031: $this->assertEquals(0, $factory->getLoopStack()[0]['index']); - line 1032: $this->assertEquals(3, $factory->getLoopStack()[0]['remaining']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1045: public function testReachingEndOfLoop() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 1045: public function testReachingEndOfLoop() - line 1047: $factory = $this->getFactory(); - line 1049: $factory->addLoop([1, 2]); - line 1051: $factory->incrementLoopIndices(); - line 1053: $factory->incrementLoopIndices(); - line 1055: $this->assertTrue($factory->getLoopStack()[0]['last']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1058: public function testIncrementingLoopIndicesOfUncountable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 1058: public function testIncrementingLoopIndicesOfUncountable() - line 1060: $factory = $this->getFactory(); - line 1062: $factory->addLoop(''); - line 1064: $factory->incrementLoopIndices(); - line 1066: $factory->incrementLoopIndices(); - line 1068: $this->assertEquals(2, $factory->getLoopStack()[0]['iteration']); - line 1069: $this->assertEquals(1, $factory->getLoopStack()[0]['index']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 1075: public function testMacro() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 1075: public function testMacro() - line 1077: $factory = $this->getFactory(); - line 1078: $factory->macro('getFoo', function () { - line 1081: $this->assertSame('Hello World', $factory->getFoo()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/ViewFileViewFinderTest.php - Test @ line 19: public function testBasicViewFinding() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 19: public function testBasicViewFinding() - line 21: $finder = $this->getFinder(); - line 22: $finder->getFilesystem()->shouldReceive('exists')->once()->with(__DIR__.'/foo.blade.php')->andReturn(true); - line 24: $this->assertEquals(__DIR__.'/foo.blade.php', $finder->find('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 27: public function testCascadingFileLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 27: public function testCascadingFileLoading() - line 29: $finder = $this->getFinder(); - line 30: $finder->getFilesystem()->shouldReceive('exists')->once()->with(__DIR__.'/foo.blade.php')->andReturn(false); - line 31: $finder->getFilesystem()->shouldReceive('exists')->once()->with(__DIR__.'/foo.php')->andReturn(true); - line 33: $this->assertEquals(__DIR__.'/foo.php', $finder->find('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 36: public function testDirectoryCascadingFileLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 36: public function testDirectoryCascadingFileLoading() - line 38: $finder = $this->getFinder(); - line 39: $finder->addLocation(__DIR__.'/nested'); - line 40: $finder->getFilesystem()->shouldReceive('exists')->once()->with(__DIR__.'/foo.blade.php')->andReturn(false); - line 41: $finder->getFilesystem()->shouldReceive('exists')->once()->with(__DIR__.'/foo.php')->andReturn(false); - line 42: $finder->getFilesystem()->shouldReceive('exists')->once()->with(__DIR__.'/foo.css')->andReturn(false); - line 43: $finder->getFilesystem()->shouldReceive('exists')->once()->with(__DIR__.'/foo.html')->andReturn(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 49: public function testNamespacedBasicFileLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 49: public function testNamespacedBasicFileLoading() - line 51: $finder = $this->getFinder(); - line 52: $finder->addNamespace('foo', __DIR__.'/foo'); - line 53: $finder->getFilesystem()->shouldReceive('exists')->once()->with(__DIR__.'/foo/bar/baz.blade.php')->andReturn(true); - line 55: $this->assertEquals(__DIR__.'/foo/bar/baz.blade.php', $finder->find('foo::bar.baz')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 58: public function testCascadingNamespacedFileLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 58: public function testCascadingNamespacedFileLoading() - line 60: $finder = $this->getFinder(); - line 61: $finder->addNamespace('foo', __DIR__.'/foo'); - line 62: $finder->getFilesystem()->shouldReceive('exists')->once()->with(__DIR__.'/foo/bar/baz.blade.php')->andReturn(false); - line 63: $finder->getFilesystem()->shouldReceive('exists')->once()->with(__DIR__.'/foo/bar/baz.php')->andReturn(true); - line 65: $this->assertEquals(__DIR__.'/foo/bar/baz.php', $finder->find('foo::bar.baz')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 68: public function testDirectoryCascadingNamespacedFileLoading() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 68: public function testDirectoryCascadingNamespacedFileLoading() - line 70: $finder = $this->getFinder(); - line 71: $finder->addNamespace('foo', [__DIR__.'/foo', __DIR__.'/bar']); - line 72: $finder->getFilesystem()->shouldReceive('exists')->once()->with(__DIR__.'/foo/bar/baz.blade.php')->andReturn(false); - line 73: $finder->getFilesystem()->shouldReceive('exists')->once()->with(__DIR__.'/foo/bar/baz.php')->andReturn(false); - line 74: $finder->getFilesystem()->shouldReceive('exists')->once()->with(__DIR__.'/foo/bar/baz.css')->andReturn(false); - line 75: $finder->getFilesystem()->shouldReceive('exists')->once()->with(__DIR__.'/foo/bar/baz.html')->andReturn(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 81: public function testExceptionThrownWhenViewNotFound() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 81: public function testExceptionThrownWhenViewNotFound() - line 83: $this->expectException(InvalidArgumentException::class); - line 85: $finder = $this->getFinder(); - line 86: $finder->getFilesystem()->shouldReceive('exists')->once()->with(__DIR__.'/foo.blade.php')->andReturn(false); - line 87: $finder->getFilesystem()->shouldReceive('exists')->once()->with(__DIR__.'/foo.php')->andReturn(false); - line 88: $finder->getFilesystem()->shouldReceive('exists')->once()->with(__DIR__.'/foo.css')->andReturn(false); - line 89: $finder->getFilesystem()->shouldReceive('exists')->once()->with(__DIR__.'/foo.html')->andReturn(false); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 81: public function testExceptionThrownWhenViewNotFound() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 94: public function testExceptionThrownOnInvalidViewName() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 94: public function testExceptionThrownOnInvalidViewName() - line 96: $this->expectException(InvalidArgumentException::class); - line 97: $this->expectExceptionMessage('No hint path defined for [name].'); - line 99: $finder = $this->getFinder(); - line 100: $finder->find('name::'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 94: public function testExceptionThrownOnInvalidViewName() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 103: public function testExceptionThrownWhenNoHintPathIsRegistered() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 103: public function testExceptionThrownWhenNoHintPathIsRegistered() - line 105: $this->expectException(InvalidArgumentException::class); - line 106: $this->expectExceptionMessage('No hint path defined for [name].'); - line 108: $finder = $this->getFinder(); - line 109: $finder->find('name::foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 103: public function testExceptionThrownWhenNoHintPathIsRegistered() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 112: public function testAddingExtensionPrependsNotAppends() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 112: public function testAddingExtensionPrependsNotAppends() - line 114: $finder = $this->getFinder(); - line 115: $finder->addExtension('baz'); - line 116: $extensions = $finder->getExtensions(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 112: public function testAddingExtensionPrependsNotAppends() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 120: public function testAddingExtensionsReplacesOldOnes() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 120: public function testAddingExtensionsReplacesOldOnes() - line 122: $finder = $this->getFinder(); - line 123: $finder->addExtension('baz'); - line 124: $finder->addExtension('baz'); - line 126: $this->assertCount(5, $finder->getExtensions()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 129: public function testPassingViewWithHintReturnsTrue() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 129: public function testPassingViewWithHintReturnsTrue() - line 131: $finder = $this->getFinder(); - line 133: $this->assertTrue($finder->hasHintInformation('hint::foo.bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 136: public function testPassingViewWithoutHintReturnsFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 136: public function testPassingViewWithoutHintReturnsFalse() - line 138: $finder = $this->getFinder(); - line 140: $this->assertFalse($finder->hasHintInformation('foo.bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 143: public function testPassingViewWithFalseHintReturnsFalse() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 143: public function testPassingViewWithFalseHintReturnsFalse() - line 145: $finder = $this->getFinder(); - line 147: $this->assertFalse($finder->hasHintInformation('::foo.bar')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 158: public function testNormalizedPaths($originalPath, $exceptedPath) Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 158: public function testNormalizedPaths($originalPath, $exceptedPath) - line 160: $finder = $this->getFinder(); - line 161: $finder->prependLocation($originalPath); - line 162: $normalizedPath = $finder->getPaths()[0]; Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 158: public function testNormalizedPaths($originalPath, $exceptedPath) Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act ❌ tests/View/ViewPhpEngineTest.php - Test @ line 11: public function testViewsMayBeProperlyRendered() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 0. Evidence: - line 11: public function testViewsMayBeProperlyRendered() Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests ❌ tests/View/ViewTest.php - Test @ line 25: public function testDataCanBeSetOnView() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 5. Evidence: - line 25: public function testDataCanBeSetOnView() - line 27: $view = $this->getView(); - line 30: $this->assertEquals(['foo' => 'bar', 'baz' => 'boom'], $view->getData()); - line 32: $view = $this->getView(); - line 33: $view->withFoo('bar')->withBaz('boom'); - line 34: $this->assertEquals(['foo' => 'bar', 'baz' => 'boom'], $view->getData()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 37: public function testRenderProperlyRendersView() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 37: public function testRenderProperlyRendersView() - line 39: $view = $this->getView(['foo' => 'bar']); - line 40: $view->getFactory()->shouldReceive('incrementRender')->once()->ordered(); - line 41: $view->getFactory()->shouldReceive('callComposer')->once()->ordered()->with($view); - line 42: $view->getFactory()->shouldReceive('getShared')->once()->andReturn(['shared' => 'foo']); - line 43: $view->getEngine()->shouldReceive('get')->once()->with('path', ['foo' => 'bar', 'shared' => 'foo'])->andReturn('contents'); - line 44: $view->getFactory()->shouldReceive('decrementRender')->once()->ordered(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 55: public function testRenderHandlingCallbackReturnValues() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 10. Evidence: - line 55: public function testRenderHandlingCallbackReturnValues() - line 57: $view = $this->getView(); - line 58: $view->getFactory()->shouldReceive('incrementRender'); - line 59: $view->getFactory()->shouldReceive('callComposer'); - line 60: $view->getFactory()->shouldReceive('getShared')->andReturn(['shared' => 'foo']); - line 61: $view->getEngine()->shouldReceive('get')->andReturn('contents'); - line 62: $view->getFactory()->shouldReceive('decrementRender'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 78: public function testRenderSectionsReturnsEnvironmentSections() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 78: public function testRenderSectionsReturnsEnvironmentSections() - line 80: $view = m::mock(View::class.'[render]', [ - line 90: $this->assertEquals($sections, $view->renderSections()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 81: m::mock(Factory::class), - line 82: m::mock(Engine::class), - Test @ line 93: public function testSectionsAreNotFlushedWhenNotDoneRendering() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 93: public function testSectionsAreNotFlushedWhenNotDoneRendering() - line 95: $view = $this->getView(['foo' => 'bar']); - line 96: $view->getFactory()->shouldReceive('incrementRender')->twice(); - line 97: $view->getFactory()->shouldReceive('callComposer')->twice()->with($view); - line 98: $view->getFactory()->shouldReceive('getShared')->twice()->andReturn(['shared' => 'foo']); - line 99: $view->getEngine()->shouldReceive('get')->twice()->with('path', ['foo' => 'bar', 'shared' => 'foo'])->andReturn('contents'); - line 100: $view->getFactory()->shouldReceive('decrementRender')->twice(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 107: public function testViewNestBindsASubView() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 3. Evidence: - line 107: public function testViewNestBindsASubView() - line 109: $view = $this->getView(); - line 110: $view->getFactory()->shouldReceive('make')->once()->with('foo', ['data']); - line 111: $result = $view->nest('key', 'foo', ['data']); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 107: public function testViewNestBindsASubView() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 116: public function testViewAcceptsArrayableImplementations() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 116: public function testViewAcceptsArrayableImplementations() - line 118: $arrayable = m::mock(Arrayable::class); - line 121: $view = $this->getView($arrayable); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 118: $arrayable = m::mock(Arrayable::class); - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 116: public function testViewAcceptsArrayableImplementations() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 127: public function testViewGettersSetters() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 127: public function testViewGettersSetters() - line 129: $view = $this->getView(['foo' => 'bar']); - line 130: $this->assertSame('view', $view->name()); - line 131: $this->assertSame('path', $view->getPath()); - line 132: $data = $view->getData(); - line 134: $view->setPath('newPath'); - line 135: $this->assertSame('newPath', $view->getPath()); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 138: public function testViewArrayAccess() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 138: public function testViewArrayAccess() - line 140: $view = $this->getView(['foo' => 'bar']); - line 142: $this->assertTrue($view->offsetExists('foo')); - line 143: $this->assertSame('bar', $view->offsetGet('foo')); - line 144: $view->offsetSet('foo', 'baz'); - line 145: $this->assertSame('baz', $view->offsetGet('foo')); - line 146: $view->offsetUnset('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 150: public function testViewConstructedWithObjectData() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 7. Evidence: - line 150: public function testViewConstructedWithObjectData() - line 152: $view = $this->getView(new DataObjectStub); - line 154: $this->assertTrue($view->offsetExists('foo')); - line 155: $this->assertSame('bar', $view->offsetGet('foo')); - line 156: $view->offsetSet('foo', 'baz'); - line 157: $this->assertSame('baz', $view->offsetGet('foo')); - line 158: $view->offsetUnset('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 162: public function testViewMagicMethods() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 2. Evidence: - line 162: public function testViewMagicMethods() - line 164: $view = $this->getView(['foo' => 'bar']); - line 172: $this->assertFalse($view->offsetExists('foo')); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - Test @ line 175: public function testViewBadMethod() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 4. Evidence: - line 175: public function testViewBadMethod() - line 177: $this->expectException(BadMethodCallException::class); - line 178: $this->expectExceptionMessage('Method Illuminate\View\View::badMethodCall does not exist.'); - line 180: $view = $this->getView(); - line 181: $view->badMethodCall(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 175: public function testViewBadMethod() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 184: public function testViewGatherDataWithRenderable() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 8. Evidence: - line 184: public function testViewGatherDataWithRenderable() - line 186: $view = $this->getView(); - line 187: $view->getFactory()->shouldReceive('incrementRender')->once()->ordered(); - line 188: $view->getFactory()->shouldReceive('callComposer')->once()->ordered()->with($view); - line 189: $view->getFactory()->shouldReceive('getShared')->once()->andReturn(['shared' => 'foo']); - line 190: $view->getEngine()->shouldReceive('get')->once()->andReturn('contents'); - line 191: $view->getFactory()->shouldReceive('decrementRender')->once()->ordered(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [FORBIDDEN_MOCK_TARGET] Note: Mocking internal domain/services/models under test is forbidden; only mock external services. Evidence: - line 194: $view->renderable = m::mock(Renderable::class); - Test @ line 199: public function testViewRenderSections() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 9. Evidence: - line 199: public function testViewRenderSections() - line 201: $view = $this->getView(); - line 202: $view->getFactory()->shouldReceive('incrementRender')->once()->ordered(); - line 203: $view->getFactory()->shouldReceive('callComposer')->once()->ordered()->with($view); - line 204: $view->getFactory()->shouldReceive('getShared')->once()->andReturn(['shared' => 'foo']); - line 205: $view->getEngine()->shouldReceive('get')->once()->andReturn('contents'); - line 206: $view->getFactory()->shouldReceive('decrementRender')->once()->ordered(); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests - [OBSERVABLE_OUTCOME_REQUIRED] Note: Observable outcome required (HTTP response, DB assertions, facade asserts with fake, or explicit Act output assertions). Evidence: - line 199: public function testViewRenderSections() Approved remediation patterns: - Assert on HTTP response, database state, dispatched jobs/events, or return values - Ensure assertions observe the direct outcome of the primary Act - Test @ line 215: public function testWithErrors() Violations: - [ACT_ONCE_RULE] Note: Each test must perform exactly one primary Act. Found 6. Evidence: - line 215: public function testWithErrors() - line 217: $view = $this->getView(); - line 219: $this->assertSame($view, $view->withErrors($errors)); - line 226: $this->assertSame($view, $view->withErrors(new MessageBag($data))); - line 229: $foo = $view->errors->getBag('default')->get('foo'); - line 231: $this->assertSame($view, $view->withErrors(new MessageBag($data), 'login')); - line 232: $foo = $view->errors->getBag('login')->get('foo'); Approved remediation patterns: - Split the test so each primary action is isolated - Convert lifecycle / multi-step tests to NON-LEARNING / E2E tests Summary: - Test files scanned: 1150 - Tests scanned: 9652 - Tests with violations: 8561 - Total violations: 12928 - File-level violations: 164 Guidance: - Global state must be idempotent and restored (prefer Laravel fakes + config helpers scoped to the test). - Only mock external services; do NOT mock internal domain/services or framework internals (use fakes). - Each test must have exactly ONE primary Act and assert an observable outcome. ⚠️ TEST FILE PROTECTION GATE FAILED (manifest not written) ----------------------------------------------------------- Continuing static validation so you still get a full list of failures. Fix the gate failures below (skipped tests, zero assertions, forbidden patterns). 🛑 Test File Protection Gate (PRE-RUN) FAILED This blocks manifest writing (auditability) and should be fixed before execution/learning. - Auth/AuthListenersSendEmailVerificationNotificationHandleFunctionTest.php - Has zero assertions - evidence: line 17: public function testWillExecuted() - Broadcasting/AblyBroadcasterTest.php - Has zero assertions - evidence: line 37: public function testAuthCallValidAuthenticationResponseWithPrivateChannelWhenCallbackReturnTrue() - Cache/ClearCommandTest.php - Has zero assertions - evidence: line 60: public function testClearWithNoStoreArgument() - Console/ConsoleScheduledEventTest.php - Contains skipped tests - evidence: line 43: $this->assertTrue($event->skip(function () { - Database/DatabaseEloquentBelongsToManyWithDefaultAttributesTest.php - Has zero assertions - evidence: line 20: public function testWithPivotValueMethodSetsWhereConditionsForFetching() - Database/DatabaseMariaDbBuilderTest.php - Has zero assertions - evidence: line 18: public function testCreateDatabase() - Database/DatabaseMigrationInstallCommandTest.php - Has zero assertions - evidence: line 20: public function testFireCallsRepositoryToInstall() - Database/DatabaseMigrationMakeCommandTest.php - Has zero assertions - evidence: line 21: public function testBasicCreateDumpsAutoload() - Database/DatabaseMigrationMigrateCommandTest.php - Has zero assertions - evidence: line 24: public function testBasicMigrationsCallMigratorWithProperArguments() - Database/DatabaseMigrationRollbackCommandTest.php - Has zero assertions - evidence: line 20: public function testRollbackCommandCallsMigratorWithProperArguments() - Database/DatabaseMySqlBuilderTest.php - Has zero assertions - evidence: line 18: public function testCreateDatabase() - Database/DatabaseSqliteSchemaStateTest.php - Has zero assertions - evidence: line 21: public function testLoadSchemaToDatabase(): void - Database/DatabaseTransactionsTest.php - Has zero assertions - evidence: line 63: public function testTransactionIsRecordedAndCommitted() - Database/SqlServerBuilderTest.php - Has zero assertions - evidence: line 18: public function testCreateDatabase() - Foundation/FoundationExceptionsHandlerTest.php - Uses forbidden pattern: empty tests - evidence: line 474: public function testItDoesNotCrashIfErrorViewThrowsWhileRenderingAndDebugFalse() - Foundation/Testing/DatabaseMigrationsTest.php - Has zero assertions - evidence: line 59: public function testRefreshTestDatabaseDefault() - Foundation/Testing/RefreshDatabaseTest.php - Has zero assertions - evidence: line 49: public function testRefreshTestDatabaseDefault() - Http/HttpTestingFileFactoryTest.php - Contains skipped tests - evidence: line 19: $this->markTestSkipped('Requires PNG support.'); - Uses forbidden pattern: markTestSkipped - evidence: line 19: $this->markTestSkipped('Requires PNG support.'); - Integration/Auth/ApiAuthenticationWithEloquentTest.php - Contains skipped tests - evidence: line 52: $this->markTestSkipped('MySQL instance required.'); - Uses forbidden pattern: markTestSkipped - evidence: line 52: $this->markTestSkipped('MySQL instance required.'); - Has zero assertions - evidence: line 38: public function testAuthenticationViaApiWithEloquentUsingWrongDatabaseCredentialsShouldNotCauseInfiniteLoop() - Integration/Cache/DynamoDbStoreTest.php - Contains skipped tests - evidence: line 71: $this->markTestSkipped('DynamoDB not configured.'); - Uses forbidden pattern: markTestSkipped - evidence: line 71: $this->markTestSkipped('DynamoDB not configured.'); - Integration/Cache/PhpRedisBackoffTest.php - Contains skipped tests - evidence: line 27: $this->markTestSkipped('Backoff option is only supported with phpredis in non-cluster mode'); - Uses forbidden pattern: markTestSkipped - evidence: line 27: $this->markTestSkipped('Backoff option is only supported with phpredis in non-cluster mode'); - Integration/Cache/PhpRedisCacheLockTest.php - Contains skipped tests - evidence: line 103: $this->markTestSkipped('Redis extension is not configured to support the igbinary serializer.'); - Uses forbidden pattern: markTestSkipped - evidence: line 103: $this->markTestSkipped('Redis extension is not configured to support the igbinary serializer.'); - Integration/Cache/Psr6RedisTest.php - Has zero assertions - evidence: line 29: public function testTransactionIsNotOpenedWhenSerializationFails($redisClient): void - Integration/Cache/RedisStoreTest.php - Contains skipped tests - evidence: line 259: $this->markTestSkipped('Test makes no sense anymore. Application must explicitly wrap such code in runClean() when used with serialization/compression enabled.'); - Uses forbidden pattern: markTestSkipped - evidence: line 259: $this->markTestSkipped('Test makes no sense anymore. Application must explicitly wrap such code in runClean() when used with serialization/compression enabled.'); - Integration/Console/PromptsValidationTest.php - Has zero assertions - evidence: line 21: public function testValidationForPrompts(): void - Integration/Database/EloquentDeleteTest.php - Contains skipped tests - evidence: line 39: $this->markTestSkipped('The limit keyword is not supported on MSSQL.'); - Uses forbidden pattern: markTestSkipped - evidence: line 39: $this->markTestSkipped('The limit keyword is not supported on MSSQL.'); - Integration/Database/EloquentTransactionWithAfterCommitTest.php - Has zero assertions - Integration/Database/EloquentTransactionWithAfterCommitUsingDatabaseMigrationsTest.php - Has zero assertions - Integration/Database/EloquentTransactionWithAfterCommitUsingDatabaseTransactionsTest.php - Contains skipped tests - evidence: line 31: $this->markTestSkipped('Test cannot be used with in-memory SQLite connection.'); - Uses forbidden pattern: markTestSkipped - evidence: line 31: $this->markTestSkipped('Test cannot be used with in-memory SQLite connection.'); - Has zero assertions - Integration/Database/EloquentTransactionWithAfterCommitUsingRefreshDatabaseTest.php - Has zero assertions - Integration/Database/EloquentUpdateTest.php - Contains skipped tests - evidence: line 52: $this->markTestSkipped('The limit keyword is not supported on MSSQL.'); - Uses forbidden pattern: markTestSkipped - evidence: line 52: $this->markTestSkipped('The limit keyword is not supported on MSSQL.'); - Integration/Database/MariaDb/DatabaseEmulatePreparesMariaDbConnectionTest.php - Has zero assertions - Integration/Database/MySql/DatabaseEmulatePreparesMySqlConnectionTest.php - Has zero assertions - Integration/Database/MySql/JoinLateralTest.php - Contains skipped tests - evidence: line 60: $this->markTestSkipped('Lateral joins are not supported on MariaDB'.__CLASS__); - Uses forbidden pattern: markTestSkipped - evidence: line 60: $this->markTestSkipped('Lateral joins are not supported on MariaDB'.__CLASS__); - Integration/Database/QueryBuilderWhereLikeTest.php - Contains skipped tests - evidence: line 68: $this->markTestSkipped('The case-sensitive whereLike clause is not supported on MSSQL.'); - Uses forbidden pattern: markTestSkipped - evidence: line 68: $this->markTestSkipped('The case-sensitive whereLike clause is not supported on MSSQL.'); - Integration/Database/Queue/BatchableTransactionTest.php - Contains skipped tests - evidence: line 29: $this->markTestSkipped('Test does not support using :memory: database connection'); - Uses forbidden pattern: markTestSkipped - evidence: line 29: $this->markTestSkipped('Test does not support using :memory: database connection'); - Integration/Database/Queue/QueueTransactionTest.php - Contains skipped tests - evidence: line 29: $this->markTestSkipped('Test does not support using :memory: database connection'); - Uses forbidden pattern: markTestSkipped - evidence: line 29: $this->markTestSkipped('Test does not support using :memory: database connection'); - Integration/Database/SchemaBuilderSchemaNameTest.php - Contains skipped tests - evidence: line 18: $this->markTestSkipped('Test cannot be run using :memory: database connection, SQLite test file is here: \Illuminate\Tests\Integration\Database\Sqlite\SchemaBuilderSchemaNameTest'); - Uses forbidden pattern: markTestSkipped - evidence: line 18: $this->markTestSkipped('Test cannot be run using :memory: database connection, SQLite test file is here: \Illuminate\Tests\Integration\Database\Sqlite\SchemaBuilderSchemaNameTest'); - Integration/Database/SchemaBuilderTest.php - Contains skipped tests - evidence: line 201: $this->markTestSkipped('Compound primary key with an auto increment column is not supported on SQLite.'); - Uses forbidden pattern: markTestSkipped - evidence: line 201: $this->markTestSkipped('Compound primary key with an auto increment column is not supported on SQLite.'); - Integration/Database/Sqlite/SchemaBuilderSchemaNameTest.php - Has zero assertions - Integration/Database/Sqlite/SchemaStateTest.php - Contains skipped tests - evidence: line 40: $this->markTestSkipped('Test cannot be run using :in-memory: database connection'); - Uses forbidden pattern: markTestSkipped - evidence: line 40: $this->markTestSkipped('Test cannot be run using :in-memory: database connection'); - Integration/Foundation/Console/ClosureCommandTest.php - Has zero assertions - evidence: line 19: public function testItCanRunClosureCommand() - Integration/Http/ResponseTest.php - Has zero assertions - evidence: line 12: public function testResponseWithInvalidJsonThrowsException() - Integration/Notifications/SendingMailNotificationsTest.php - Has zero assertions - evidence: line 60: public function testMailIsSent() - Integration/Queue/CustomPayloadTest.php - Has zero assertions - evidence: line 30: public function test_custom_payload_gets_cleared_for_each_data_provider(string $websites) - Integration/Queue/QueueConnectionTest.php - Has zero assertions - evidence: line 28: public function testJobWontGetDispatchedInsideATransaction() - Integration/Redis/PredisConnectionTest.php - Contains skipped tests - evidence: line 20: return $this->markTestSkipped('Skipped tests on predis/predis dependency without '.SearchArguments::class); - Uses forbidden pattern: markTestSkipped - evidence: line 20: return $this->markTestSkipped('Skipped tests on predis/predis dependency without '.SearchArguments::class); - Integration/Support/AuthFacadeTest.php - Has zero assertions - evidence: line 11: public function testItFailsIfTheUiPackageIsMissing() - Integration/Support/ManagerTest.php - Has zero assertions - evidence: line 11: public function testDefaultDriverCannotBeNull() - Integration/Testing/TestCaseTest.php - Has zero assertions - evidence: line 10: public function test_without_vite_clear_facade_resolved_instance() - Integration/Testing/TestWithoutDatabaseParallelTest.php - Has zero assertions - evidence: line 41: public function testRunningParallelTestWithoutDatabaseShouldNotCrashOnDefaultConnection() - JsonSchema/SerializerTest.php - Has zero assertions - evidence: line 11: public function test_it_does_not_know_how_to_serialize_unknown_types(): void - Notifications/NotificationDatabaseChannelTest.php - Has zero assertions - evidence: line 19: public function testDatabaseChannelCreatesDatabaseRecordWithProperData() - Notifications/NotificationSenderTest.php - Has zero assertions - evidence: line 31: public function testItCanSendQueuedNotificationsWithAStringVia() - Queue/FailoverQueueTest.php - Has zero assertions - evidence: line 21: public function test_push_fails_over_on_exception() - Queue/PruneBatchesCommandTest.php - Has zero assertions - evidence: line 21: public function testAllowPruningAllUnfinishedBatches() - Queue/QueueBeanstalkdJobTest.php - Has zero assertions - evidence: line 27: public function testFireProperlyCallsTheJobHandler() - Queue/QueueRedisJobTest.php - Has zero assertions - evidence: line 19: public function testFireProperlyCallsTheJobHandler() - Redis/RedisConnectionTest.php - Contains skipped tests - evidence: line 580: $this->markTestSkipped('PhpRedis does not support persistent connections with PHP_ZTS enabled.'); - Uses forbidden pattern: markTestSkipped - evidence: line 580: $this->markTestSkipped('PhpRedis does not support persistent connections with PHP_ZTS enabled.'); - Support/OnceTest.php - Contains skipped tests - evidence: line 274: $this->markTestSkipped('This test shows a limitation of the current implementation.'); - Uses forbidden pattern: markTestSkipped - evidence: line 274: $this->markTestSkipped('This test shows a limitation of the current implementation.'); - Support/SupportCollectionTest.php - Contains skipped tests - evidence: line 449: $this->assertInstanceOf($collection, $chunks->skip(1)->first()); - Support/SupportComposerTest.php - Has zero assertions - evidence: line 20: public function testDumpAutoloadRunsTheCorrectCommand() - Support/SupportHelpersTest.php - Contains skipped tests - evidence: line 1579: $this->markTestSkipped(); - Uses forbidden pattern: markTestSkipped - evidence: line 1579: $this->markTestSkipped(); - Support/SupportLazyCollectionIsLazyTest.php - Contains skipped tests - evidence: line 1027: $collection->skip(10); - Testing/Concerns/TestDatabasesTest.php - Has zero assertions - evidence: line 34: public function testSwitchToDatabaseWithoutUrl() 📊 AGGREGATE SUMMARY -------------------- FILES_SCANNED=877 FILES_INVALID=317 MANUAL_TESTS_DISCOVERED=10451 MANUAL_TESTS_APPROVED=5451 PRE_DEBUG_GATES=failed DISCOVERY_GATE=passed (enabled=false) TEST_FILE_GATE=failed NO_CACHE=false FILES_FROM=(none) TOP_FAILING_GATES=NO_TEST_METHODS:7, DB_LIFECYCLE_TRAIT_REQUIRED:189, JOB_SERIALIZATION_VALIDATOR:10, FORBIDDEN_MOCKS:24, NO_ASSERTIONS:35, ASSERTION_PLACEMENT:19, FORBIDDEN_ESCAPE_HATCH:25, RESULT_ANCHORED_OBSERVABLE_ASSERTION:8 🛑 VERIFICATION FAILED ---------------------- Invalid tests: 317/877 Fix the issues below, then re-run: npm run verify:tests VALIDATOR SUMMARY (phase-ordered): - Failures: 317 - Gates (ordered): NO_TEST_METHODS, DB_LIFECYCLE_TRAIT_REQUIRED, JOB_SERIALIZATION_VALIDATOR, FORBIDDEN_MOCKS, NO_ASSERTIONS, ASSERTION_PLACEMENT, FORBIDDEN_ESCAPE_HATCH, RESULT_ANCHORED_OBSERVABLE_ASSERTION - Counts: NO_TEST_METHODS:7, DB_LIFECYCLE_TRAIT_REQUIRED:189, JOB_SERIALIZATION_VALIDATOR:10, FORBIDDEN_MOCKS:24, NO_ASSERTIONS:35, ASSERTION_PLACEMENT:19, FORBIDDEN_ESCAPE_HATCH:25, RESULT_ANCHORED_OBSERVABLE_ASSERTION:8 ❌ EloquentTransactionWithAfterCommitTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentTransactionWithAfterCommitTest.php) Test rejected: No test methods found. Gate: NO_TEST_METHODS Why: - The file appears to be a test artifact but contains no discoverable PHPUnit/Pest test definitions. Fix: - Add at least one PHPUnit test method (public function testX()) or a Pest test() / it() block. Pre-debug gates: no violations for this file. ❌ EloquentTransactionWithAfterCommitUsingDatabaseMigrationsTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentTransactionWithAfterCommitUsingDatabaseMigrationsTest.php) Test rejected: No test methods found. Gate: NO_TEST_METHODS Why: - The file appears to be a test artifact but contains no discoverable PHPUnit/Pest test definitions. Fix: - Add at least one PHPUnit test method (public function testX()) or a Pest test() / it() block. Pre-debug gates: no violations for this file. ❌ EloquentTransactionWithAfterCommitUsingDatabaseTransactionsTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentTransactionWithAfterCommitUsingDatabaseTransactionsTest.php) Test rejected: No test methods found. Gate: NO_TEST_METHODS Why: - The file appears to be a test artifact but contains no discoverable PHPUnit/Pest test definitions. Fix: - Add at least one PHPUnit test method (public function testX()) or a Pest test() / it() block. Pre-debug gates: no violations for this file. ❌ EloquentTransactionWithAfterCommitUsingRefreshDatabaseTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentTransactionWithAfterCommitUsingRefreshDatabaseTest.php) Test rejected: No test methods found. Gate: NO_TEST_METHODS Why: - The file appears to be a test artifact but contains no discoverable PHPUnit/Pest test definitions. Fix: - Add at least one PHPUnit test method (public function testX()) or a Pest test() / it() block. Pre-debug gates: no violations for this file. ❌ DatabaseEmulatePreparesMariaDbConnectionTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/MariaDb/DatabaseEmulatePreparesMariaDbConnectionTest.php) Test rejected: No test methods found. Gate: NO_TEST_METHODS Why: - The file appears to be a test artifact but contains no discoverable PHPUnit/Pest test definitions. Fix: - Add at least one PHPUnit test method (public function testX()) or a Pest test() / it() block. Pre-debug gates: no violations for this file. ❌ DatabaseEmulatePreparesMySqlConnectionTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/MySql/DatabaseEmulatePreparesMySqlConnectionTest.php) Test rejected: No test methods found. Gate: NO_TEST_METHODS Why: - The file appears to be a test artifact but contains no discoverable PHPUnit/Pest test definitions. Fix: - Add at least one PHPUnit test method (public function testX()) or a Pest test() / it() block. Pre-debug gates: no violations for this file. ❌ SchemaBuilderSchemaNameTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/Sqlite/SchemaBuilderSchemaNameTest.php) Test rejected: No test methods found. Gate: NO_TEST_METHODS Why: - The file appears to be a test artifact but contains no discoverable PHPUnit/Pest test definitions. Fix: - Add at least one PHPUnit test method (public function testX()) or a Pest test() / it() block. Pre-debug gates: no violations for this file. ❌ AuthDatabaseTokenRepositoryTest.php (/home/amari/projects/manual/laravel-framework/tests/Auth/AuthDatabaseTokenRepositoryTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 34: $results = $repo->create($user); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 10 test(s) with violations; 23 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ BusBatchTest.php (/home/amari/projects/manual/laravel-framework/tests/Bus/BusBatchTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 343: $repository = new DatabaseBatchRepository(new BatchFactory($queue), DB::connection(), 'job_batches'); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 14 test(s) with violations; 31 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 3 file-level violation(s). Rules: BOOTSTRAP_PURITY_SUPERGLOBALS, BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET, FORBIDDEN_MOCK_TARGET ❌ CacheCommandMutexTest.php (/home/amari/projects/manual/laravel-framework/tests/Console/CacheCommandMutexTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 59: $actual = $this->mutex->create($this->command); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 9 test(s) with violations; 17 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ CacheEventMutexTest.php (/home/amari/projects/manual/laravel-framework/tests/Console/Scheduling/CacheEventMutexTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 51: $this->cacheMutex->create($this->event); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 6 test(s) with violations; 7 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ CacheSchedulingMutexTest.php (/home/amari/projects/manual/laravel-framework/tests/Console/Scheduling/CacheSchedulingMutexTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 59: $this->assertTrue($this->cacheMutex->create($this->event, $this->time)); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 7 test(s) with violations; 7 (test×rule) violations. Rules: ACT_ONCE_RULE Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseEloquentBelongsToManyAggregateTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentBelongsToManyAggregateTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 67: $this->schema()->create('orders', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 3 test(s) with violations; 3 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DatabaseEloquentBelongsToManyChunkByIdTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentBelongsToManyChunkByIdTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 34: $this->schema()->create('users', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DatabaseEloquentBelongsToManyEachByIdTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentBelongsToManyEachByIdTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 33: $this->schema()->create('users', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseEloquentBelongsToManyExpressionTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentBelongsToManyExpressionTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 88: $this->schema()->create('posts', fn (Blueprint $t) => $t->id()); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ DatabaseEloquentBelongsToManyLazyByIdTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentBelongsToManyLazyByIdTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 33: $this->schema()->create('users', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseEloquentBelongsToManySyncReturnValueTypeTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentBelongsToManySyncReturnValueTypeTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 33: $this->schema()->create('users', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DatabaseEloquentBelongsToManySyncTouchesParentTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentBelongsToManySyncTouchesParentTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 35: $this->schema()->create('articles', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DatabaseEloquentBelongsToManyWithAttributesPendingTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentBelongsToManyWithAttributesPendingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 34: $pivot = DB::table('pending_attributes_pivot')->first(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ DatabaseEloquentBelongsToManyWithAttributesTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentBelongsToManyWithAttributesTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 34: $pivot = DB::table('with_attributes_pivot')->first(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ DatabaseEloquentCollectionTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentCollectionTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 43: $this->schema()->create('users', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 46 test(s) with violations; 75 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseEloquentFactoryTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentFactoryTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 1009: $user = DB::table('users')->sole(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 46 test(s) with violations; 63 (test×rule) violations. Rules: ACT_ONCE_RULE, BOOTSTRAP_PURITY_SUPERGLOBALS, BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseEloquentHasManyTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentHasManyTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 58: $this->assertEquals($created, $relation->create(['name' => 'taylor'])); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 25 test(s) with violations; 51 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseEloquentHasManyThroughIntegrationTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentHasManyThroughIntegrationTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 37: $this->schema()->create('users', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 25 test(s) with violations; 30 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseEloquentHasOneOfManyTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentHasOneOfManyTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 35: $this->schema()->create('users', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 33 test(s) with violations; 44 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseEloquentHasOneTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentHasOneTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 129: $this->assertEquals($created, $relation->create(['name' => 'taylor'])); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 19 test(s) with violations; 33 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseEloquentHasOneThroughIntegrationTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentHasOneThroughIntegrationTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 35: $this->schema()->create('users', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 15 test(s) with violations; 17 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseEloquentHasOneThroughOfManyTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentHasOneThroughOfManyTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 165: $user = HasOneThroughOfManyTestUser::factory()->hasIntermediates(2)->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ DatabaseEloquentIntegrationTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentIntegrationTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 212: DB::flushQueryLog(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 114 test(s) with violations; 140 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseEloquentIntegrationWithTablePrefixTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentIntegrationWithTablePrefixTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 37: $this->schema('default')->create('users', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ DatabaseEloquentInverseRelationHasManyTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentInverseRelationHasManyTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 63: HasManyInverseUserModel::factory()->count(3)->withPosts()->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 11 test(s) with violations; 11 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DatabaseEloquentInverseRelationHasOneTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentInverseRelationHasOneTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 62: HasOneInverseChildModel::factory(5)->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 9 test(s) with violations; 9 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DatabaseEloquentInverseRelationMorphManyTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentInverseRelationMorphManyTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 63: MorphManyInversePostModel::factory()->withComments()->count(3)->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 15 test(s) with violations; 15 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DatabaseEloquentInverseRelationMorphOneTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentInverseRelationMorphOneTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 62: MorphOneInverseImageModel::factory(6)->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 11 test(s) with violations; 11 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DatabaseEloquentIrregularPluralTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentIrregularPluralTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 28: $this->schema()->create('irregular_plural_humans', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 4 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseEloquentModelTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentModelTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 3521: $instance = EloquentModelWithUseFactoryAttribute::factory()->make(['name' => 'test name']); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 182 test(s) with violations; 268 (test×rule) violations. Rules: ACT_ONCE_RULE, BOOTSTRAP_PURITY_SUPERGLOBALS, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 2 file-level violation(s). Rules: BOOTSTRAP_PURITY_SUPERGLOBALS, FORBIDDEN_MOCK_TARGET ❌ DatabaseEloquentMorphOneOfManyTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentMorphOneOfManyTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 33: $this->schema()->create('products', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 9 test(s) with violations; 10 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseEloquentMorphTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentMorphTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 131: $this->assertEquals($created, $relation->create(['name' => 'taylor'])); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 31 test(s) with violations; 76 (test×rule) violations. Rules: ACT_ONCE_RULE, BOOTSTRAP_PURITY_SUPERGLOBALS, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseEloquentPolymorphicIntegrationTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentPolymorphicIntegrationTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 33: $this->schema()->create('users', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 6 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DatabaseEloquentPolymorphicRelationsIntegrationTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentPolymorphicRelationsIntegrationTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 34: $this->schema('default')->create('posts', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 3 test(s) with violations; 4 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseEloquentSoftDeletesIntegrationTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentSoftDeletesIntegrationTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 45: $this->schema()->create('users', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 47 test(s) with violations; 56 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseEloquentWithAttributesPendingTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentWithAttributesPendingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 94: $query->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ DatabaseEloquentWithAttributesTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentWithAttributesTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 99: $query->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ DatabaseEloquentWithCastsTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentWithCastsTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 32: $this->schema()->create('times', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 4 test(s) with violations; 5 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseIntegrationTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseIntegrationTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 25: $connection = DB::connection(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ DatabaseMariaDbSchemaGrammarTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseMariaDbSchemaGrammarTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 30: $blueprint->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 113 test(s) with violations; 224 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseMigrationCreatorTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseMigrationCreatorTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 30: $creator->create('create_bar', 'foo'); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 5 test(s) with violations; 12 (test×rule) violations. Rules: ACT_ONCE_RULE, BOOTSTRAP_PURITY_SUPERGLOBALS, BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseMySqlSchemaGrammarTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseMySqlSchemaGrammarTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 30: $blueprint->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 119 test(s) with violations; 236 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabasePostgresSchemaGrammarTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabasePostgresSchemaGrammarTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 28: $blueprint->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 99 test(s) with violations; 196 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseQueryExceptionTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseQueryExceptionTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 27: DB::shouldReceive('connection')->andReturn($connection); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 4 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseSchemaBuilderIntegrationTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseSchemaBuilderIntegrationTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 46: $this->db->connection()->getSchemaBuilder()->create('table1', function (Blueprint $table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 4 test(s) with violations; 4 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DatabaseSQLiteSchemaGrammarTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseSQLiteSchemaGrammarTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 28: $blueprint->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 80 test(s) with violations; 156 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseSqlServerSchemaGrammarTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseSqlServerSchemaGrammarTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 25: $blueprint->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 80 test(s) with violations; 157 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ EloquentModelCustomCastingTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/EloquentModelCustomCastingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 45: $this->schema()->create('casting_table', function (Blueprint $table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 7 test(s) with violations; 9 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ PruneCommandTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/PruneCommandTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 99: DB::connection('default')->getSchemaBuilder()->create('prunables', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 9 test(s) with violations; 11 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ FoundationApplicationBuilderTest.php (/home/amari/projects/manual/laravel-framework/tests/Foundation/FoundationApplicationBuilderTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 26: $app = Application::configure(__DIR__.'/as-arg')->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 8 test(s) with violations; 14 (test×rule) violations. Rules: ACT_ONCE_RULE, BOOTSTRAP_PURITY_SUPERGLOBALS Pre-debug (file-level): 1 file-level violation(s). Rules: BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET ❌ FoundationInteractsWithDatabaseTest.php (/home/amari/projects/manual/laravel-framework/tests/Foundation/FoundationInteractsWithDatabaseTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 45: $this->assertDatabaseHas($this->table, $this->data); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 28 test(s) with violations; 39 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ HttpTestingFileFactoryTest.php (/home/amari/projects/manual/laravel-framework/tests/Http/HttpTestingFileFactoryTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 110: (new FileFactory)->create('someaudio.webm', 0, 'audio/webm')->getMimeType() Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 7 test(s) with violations; 10 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ ConnectionThreadsCountTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/ConnectionThreadsCountTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 11: $count = DB::connection()->threadCount(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseCacheStoreTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/DatabaseCacheStoreTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 29: $this->assertDatabaseMissing($this->getCacheTableName(), ['key' => $this->withCachePrefix('foo')]); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 19 test(s) with violations; 21 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseConnectionsTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/DatabaseConnectionsTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 126: DB::setTablePrefix('prefix_'); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 7 test(s) with violations; 14 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseCustomCastsTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/DatabaseCustomCastsTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 50: $model->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 5 test(s) with violations; 5 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DatabaseEloquentBroadcastingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/DatabaseEloquentBroadcastingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 37: $model->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 7 test(s) with violations; 7 (test×rule) violations. Rules: ACT_ONCE_RULE Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseEloquentModelAttributeCastingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/DatabaseEloquentModelAttributeCastingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 16 test(s) with violations; 28 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseEloquentModelCustomCastingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/DatabaseEloquentModelCustomCastingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 161: $model->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 10 test(s) with violations; 11 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseLockTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/DatabaseLockTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 59: DB::table('cache_locks')->update(['expiration' => now()->subDays(1)->getTimestamp()]); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 5 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET ❌ DatabaseTransactionsTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/DatabaseTransactionsTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 29: DB::transaction(function () use ($secondObject, $firstObject) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 4 test(s) with violations; 5 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentAggregateTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentAggregateTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 4 test(s) with violations; 4 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentBelongsToManyTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentBelongsToManyTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 202: DB::table('posts_tags')->insert([ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 63 test(s) with violations; 79 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentBelongsToTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentBelongsToTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 9 test(s) with violations; 9 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentCollectionFreshTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentCollectionFreshTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentCollectionLoadCountTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentCollectionLoadCountTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 45: DB::enableQueryLog(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 5 test(s) with violations; 5 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentCollectionLoadMissingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentCollectionLoadMissingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 74: DB::enableQueryLog(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 11 test(s) with violations; 11 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentCursorPaginateTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentCursorPaginateTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 138: $query->select(DB::raw(1)) Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 12 test(s) with violations; 12 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentCustomPivotCastTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentCustomPivotCastTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 6 test(s) with violations; 11 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentDeleteTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentDeleteTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 89: $post = Post::query()->create([]); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 5 test(s) with violations; 9 (test×rule) violations. Rules: ACT_ONCE_RULE, BOOTSTRAP_PURITY_SUPERGLOBALS, BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET ❌ EloquentEagerLoadingLimitTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentEagerLoadingLimitTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 69: DB::table('role_user')->insert([ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ EloquentHasManyTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentHasManyTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 81: DB::transaction(function () use ($user, $post1) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 5 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentHasManyThroughTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentHasManyThroughTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 291: $newArticle = DB::transaction(fn () => $team->articles()->createOrFirst( Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 16 test(s) with violations; 19 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentHasOneIsTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentHasOneIsTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 25: $post->attachment()->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 6 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentHasOneOfManyTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentHasOneOfManyTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 45: $user->latest_login()->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 3 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentLazyEagerLoadingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentLazyEagerLoadingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 41: DB::enableQueryLog(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentMassPrunableTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentMassPrunableTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 3 test(s) with violations; 4 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ EloquentModelCustomEventsTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelCustomEventsTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 3 test(s) with violations; 5 (test×rule) violations. Rules: BOOTSTRAP_PURITY_SUPERGLOBALS, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: BOOTSTRAP_PURITY_SUPERGLOBALS ❌ EloquentModelDateCastingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelDateCastingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 5 test(s) with violations; 5 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentModelDecimalCastingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelDecimalCastingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 10 test(s) with violations; 18 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentModelEncryptedCastingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelEncryptedCastingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 58: $this->assertDatabaseHas('encrypted_casts', [ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 5 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ EloquentModelEnumCastingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelEnumCastingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 38: DB::table('enum_casts')->insert([ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 6 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentModelHashedCastingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelHashedCastingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 33: $this->assertDatabaseHas('hashed_casts', [ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 17 test(s) with violations; 31 (test×rule) violations. Rules: ACT_ONCE_RULE, BOOTSTRAP_PURITY_CONFIG_SET, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentModelImmutableDateCastingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelImmutableDateCastingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentModelJsonCastingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelJsonCastingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ EloquentModelLoadCountTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelLoadCountTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 48: DB::enableQueryLog(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 3 test(s) with violations; 3 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentModelLoadMaxTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelLoadMaxTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 43: DB::enableQueryLog(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentModelLoadMinTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelLoadMinTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 43: DB::enableQueryLog(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentModelLoadMissingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelLoadMissingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 56: DB::enableQueryLog(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentModelLoadSumTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelLoadSumTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 42: DB::enableQueryLog(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentModelRefreshTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelRefreshTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 5 test(s) with violations; 7 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentModelRelationAutoloadTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelRelationAutoloadTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 58: DB::enableQueryLog(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 7 test(s) with violations; 7 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentModelStringCastingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelStringCastingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentModelTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 131: $this->assertDatabaseHas('actions', [ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 4 test(s) with violations; 4 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentModelWithoutEventsTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentModelWithoutEventsTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 27: $model->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentMorphConstrainTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentMorphConstrainTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 32: (new Comment)->commentable()->associate($post1)->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ EloquentMorphCountEagerLoadingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentMorphCountEagerLoadingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 42: tap((new Like)->post()->associate($post))->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentMorphCountLazyEagerLoadingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentMorphCountLazyEagerLoadingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 31: tap((new Like)->post()->associate($post))->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentMorphEagerLoadingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentMorphEagerLoadingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 45: $post = tap((new Post)->user()->associate($user))->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 4 test(s) with violations; 5 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentMorphLazyEagerLoadingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentMorphLazyEagerLoadingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 31: $post = tap((new Post)->user()->associate($user))->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentMorphManyTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentMorphManyTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 45: $comment = tap((new Comment(['name' => 'foo']))->commentable()->associate($post))->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 3 test(s) with violations; 3 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentMorphOneIsTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentMorphOneIsTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 26: $post->attachment()->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 6 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentMorphToGlobalScopesTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentMorphToGlobalScopesTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 28: (new Comment)->commentable()->associate($post)->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 4 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentMorphToIsTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentMorphToIsTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 26: (new Comment)->commentable()->associate($post)->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 6 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentMorphToLazyEagerLoadingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentMorphToLazyEagerLoadingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 48: DB::enableQueryLog(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentMorphToSelectTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentMorphToSelectTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 26: (new Comment)->commentable()->associate($post)->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 4 test(s) with violations; 4 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentMorphToTouchesTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentMorphToTouchesTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 32: DB::enableQueryLog(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentPaginateTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentPaginateTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 4 test(s) with violations; 4 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentPivotEventsTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentPivotEventsTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 180: $project->equipments()->save($equipment); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 6 test(s) with violations; 13 (test×rule) violations. Rules: ACT_ONCE_RULE, BOOTSTRAP_PURITY_SUPERGLOBALS, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: BOOTSTRAP_PURITY_SUPERGLOBALS ❌ EloquentPivotSerializationTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentPivotSerializationTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 61: $class->pivot->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 4 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentPivotTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentPivotTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentPivotWithoutTimestampTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentPivotWithoutTimestampTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 27: $this->assertDatabaseHas('role_user', [ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentPrunableTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentPrunableTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 159: ])->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 5 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentPushTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentPushTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 36: $user->posts()->create(['title' => 'Test title']); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentStrictLoadingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentStrictLoadingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 10 test(s) with violations; 15 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentThroughTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentThroughTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 34: $post = tap(new Post(['public' => true]))->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ EloquentTouchParentWithGlobalScopeTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentTouchParentWithGlobalScopeTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 35: $post->comments()->create(['title' => Str::random()]); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentTransactionWithAfterCommitUsingRefreshDatabaseOnMultipleConnectionsTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentTransactionWithAfterCommitUsingRefreshDatabaseOnMultipleConnectionsTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 29: DB::afterCommit(function () use (&$called) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 3 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentUniqueStringPrimaryKeysTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentUniqueStringPrimaryKeysTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ EloquentUpdateTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentUpdateTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 163: $model->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 9 test(s) with violations; 9 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentWhereHasMorphTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentWhereHasMorphTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 52: $comment->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 20 test(s) with violations; 21 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentWhereHasTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentWhereHasTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 59: $query = DB::table('users')->whereExists($callbackQuery); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 17 test(s) with violations; 17 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentWhereTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentWhereTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 177: $query = DB::table('users')->select('name')->where('id', '=', 1); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 11 test(s) with violations; 12 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentWithCountTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentWithCountTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 37: $two = $one->twos()->Create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 3 test(s) with violations; 4 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseEloquentMariaDbIntegrationTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/MariaDb/DatabaseEloquentMariaDbIntegrationTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 66: DB::transaction(function () use ($user1) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ DatabaseMariaDbConnectionTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/MariaDb/DatabaseMariaDbConnectionTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 39: DB::table(self::TABLE)->insert([self::JSON_COL => '{"rank":'.self::FLOAT_VAL.'}']); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 6 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DatabaseMariaDbSchemaBuilderAlterTableWithEnumTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/MariaDb/DatabaseMariaDbSchemaBuilderAlterTableWithEnumTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DatabaseMariaDbSchemaBuilderTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/MariaDb/DatabaseMariaDbSchemaBuilderTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 22: $tableInfo = DB::table('information_schema.tables') Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentCastTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/MariaDb/EloquentCastTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 3 test(s) with violations; 3 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ FulltextTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/MariaDb/FulltextTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 34: DB::table('articles')->insert([ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ JsonLikeTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/MariaDb/JsonLikeTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 32: DB::table('tasks')->insert([ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ MigrateWithRealpathTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/MigrateWithRealpathTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 37: $this->assertDatabaseHas('migrations', [ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ ModelInspectorTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/ModelInspectorTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ DatabaseEloquentMySqlIntegrationTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/MySql/DatabaseEloquentMySqlIntegrationTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 66: DB::transaction(function () use ($user1) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ DatabaseMySqlConnectionTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/MySql/DatabaseMySqlConnectionTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 40: DB::table(self::TABLE)->insert([self::JSON_COL => '{"rank":'.self::FLOAT_VAL.'}']); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 7 test(s) with violations; 7 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DatabaseMySqlSchemaBuilderAlterTableWithEnumTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/MySql/DatabaseMySqlSchemaBuilderAlterTableWithEnumTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DatabaseMySqlSchemaBuilderTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/MySql/DatabaseMySqlSchemaBuilderTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 23: $tableInfo = DB::table('information_schema.tables') Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentCastTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/MySql/EloquentCastTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 3 test(s) with violations; 3 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ FulltextTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/MySql/FulltextTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 34: DB::table('articles')->insert([ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ JoinLateralTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/MySql/JoinLateralTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 43: DB::table('users')->insert([ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 4 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseEloquentPostgresIntegrationTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/Postgres/DatabaseEloquentPostgresIntegrationTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 66: DB::transaction(function () use ($user1) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ DatabasePostgresConnectionTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/Postgres/DatabasePostgresConnectionTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 33: DB::table('json_table')->insert(['json_col' => json_encode($value)]); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 4 test(s) with violations; 4 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ FulltextTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/Postgres/FulltextTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 35: DB::table('articles')->insert([ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ JoinLateralTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/Postgres/JoinLateralTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 41: DB::table('users')->insert([ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 4 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ PostgresSchemaBuilderTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/Postgres/PostgresSchemaBuilderTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 27: DB::statement('create schema if not exists private'); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 9 test(s) with violations; 11 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ QueryBuilderTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/QueryBuilderTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 27: DB::table('posts')->insert([ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 31 test(s) with violations; 34 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ QueryBuilderUpdateTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/QueryBuilderUpdateTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 45: $this->assertDatabaseHas('example', [ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ QueryBuilderWhereLikeTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/QueryBuilderWhereLikeTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 29: DB::table('users')->insert([ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 5 test(s) with violations; 5 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ QueryingWithEnumsTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/QueryingWithEnumsTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 25: DB::table('enum_casts')->insert([ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ RefreshCommandTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/RefreshCommandTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 42: DB::table('members')->insert(['name' => 'foo', 'email' => 'foo@bar', 'password' => 'secret']); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 3 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ SchemaBuilderSchemaNameTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/SchemaBuilderSchemaNameTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 27: DB::connection('without-prefix')->statement("attach database ':memory:' as my_schema"); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 16 test(s) with violations; 17 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ SchemaBuilderTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/SchemaBuilderTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 39: DB::statement('create view foo (id) as select 1'); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 31 test(s) with violations; 33 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ ConnectorTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/Sqlite/ConnectorTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 27: $schema = DB::build([ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ MigrateFreshCommandWithJournalModeWalTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/Sqlite/Console/MigrateFreshCommandWithJournalModeWalTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ DatabaseSchemaBlueprintTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/Sqlite/DatabaseSchemaBlueprintTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 30: DB::connection()->getSchemaBuilder()->create('users', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 16 test(s) with violations; 20 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseSchemaBuilderTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/Sqlite/DatabaseSchemaBuilderTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 57: $connection = DB::connection('sqlite-with-prefix'); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 5 test(s) with violations; 7 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseSqliteConnectionTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/Sqlite/DatabaseSqliteConnectionTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 45: DB::table('json_table')->insert([ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DatabaseSqliteSchemaBuilderTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/Sqlite/DatabaseSqliteSchemaBuilderTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 66: DB::connection('conn1')->statement(<<<'SQL' Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 3 test(s) with violations; 3 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EloquentModelConnectionsTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/Sqlite/EloquentModelConnectionsTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 45: Schema::connection('conn2')->create('parent', function (Blueprint $table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 3 test(s) with violations; 3 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ SchemaStateTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/Sqlite/SchemaStateTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 43: $connection = DB::connection(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DatabaseEloquentSqlServerIntegrationTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/SqlServer/DatabaseEloquentSqlServerIntegrationTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 66: DB::transaction(function () use ($user1) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ DatabaseSqlServerConnectionTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/SqlServer/DatabaseSqlServerConnectionTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 33: DB::table('json_table')->insert([ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DatabaseSqlServerSchemaBuilderTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/SqlServer/DatabaseSqlServerSchemaBuilderTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 25: DB::statement('drop view if exists users_view'); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 3 test(s) with violations; 4 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ JoinLateralTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/SqlServer/JoinLateralTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 37: DB::table('users')->insert([ Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 2 test(s) with violations; 4 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ TimestampTypeTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/TimestampTypeTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 3 test(s) with violations; 3 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ ShouldDispatchAfterCommitEventTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Events/ShouldDispatchAfterCommitEventTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 35: DB::transaction(function () { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 12 test(s) with violations; 12 (test×rule) violations. Rules: OBSERVABLE_OUTCOME_REQUIRED ❌ WithScheduleTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Foundation/Configuration/WithScheduleTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 32: })->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: OBSERVABLE_OUTCOME_REQUIRED ❌ RouteServiceProviderHealthTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Foundation/Support/Providers/RouteServiceProviderHealthTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 24: )->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ RouteServiceProviderTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Foundation/Support/Providers/RouteServiceProviderTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 38: })->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: OBSERVABLE_OUTCOME_REQUIRED ❌ JsonApiCollectionTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Http/Resources/JsonApi/JsonApiCollectionTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 14: $users = User::factory()->times(5)->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 4 test(s) with violations; 4 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ JsonApiResourceTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Http/Resources/JsonApi/JsonApiResourceTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 16: $user = User::factory()->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 10 test(s) with violations; 10 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ MigratorTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Migration/MigratorTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 53: $this->assertTrue(DB::getSchemaBuilder()->hasTable('people')); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 8 test(s) with violations; 8 (test×rule) violations. Rules: ACT_ONCE_RULE Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ SendingMailNotificationsTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Notifications/SendingMailNotificationsTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 9 test(s) with violations; 26 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ SendingNotificationsWithLocaleTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Notifications/SendingNotificationsWithLocaleTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 9 test(s) with violations; 17 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DeleteModelWhenMissingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Queue/DeleteModelWhenMissingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 57: $this->assertNull(\DB::table('failed_jobs')->first()); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ UniqueUntilProcessingJobTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Queue/UniqueUntilProcessingJobTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 36: $this->assertDatabaseCount('jobs', 0); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ ImplicitModelRouteBindingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Routing/ImplicitModelRouteBindingTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 166: $post = $user->posts()->create(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 10 test(s) with violations; 10 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ FileValidationTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Validation/Rules/FileValidationTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 19: $file = UploadedFile::fake()->create('laravel.png', 1, 'image/png'); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ ValidatorTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Validation/ValidatorTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (test-level): no test-level violations. Pre-debug (file-level): 2 file-level violation(s). Rules: BOOTSTRAP_PURITY_SUPERGLOBALS, BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET ❌ DatabaseFailedJobProviderTest.php (/home/amari/projects/manual/laravel-framework/tests/Queue/DatabaseFailedJobProviderTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 188: $db->getConnection()->getSchemaBuilder()->create('failed_jobs', function (Blueprint $table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 12 test(s) with violations; 13 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseUuidFailedJobProviderTest.php (/home/amari/projects/manual/laravel-framework/tests/Queue/DatabaseUuidFailedJobProviderTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 188: $db->getConnection()->getSchemaBuilder()->create('failed_jobs', function (Blueprint $table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 11 test(s) with violations; 12 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ QueueDatabaseQueueIntegrationTest.php (/home/amari/projects/manual/laravel-framework/tests/Queue/QueueDatabaseQueueIntegrationTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 67: $this->schema()->create($this->table, function (Blueprint $table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 7 test(s) with violations; 11 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EncryptedSessionStoreTest.php (/home/amari/projects/manual/laravel-framework/tests/Session/EncryptedSessionStoreTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 42: $session->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ SessionStoreTest.php (/home/amari/projects/manual/laravel-framework/tests/Session/SessionStoreTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 121: $session->save(); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 41 test(s) with violations; 41 (test×rule) violations. Rules: ACT_ONCE_RULE Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ InteractsWithDatabaseTest.php (/home/amari/projects/manual/laravel-framework/tests/Testing/Concerns/InteractsWithDatabaseTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 157: DB::shouldReceive('connection')->with(null)->andReturn($connection); Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 5 test(s) with violations; 5 (test×rule) violations. Rules: ACT_ONCE_RULE Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ TestResponseTest.php (/home/amari/projects/manual/laravel-framework/tests/Testing/TestResponseTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 2775: $store->save(); // Required to serialize error bag to JSON Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug gates: no violations for this file. ❌ ValidationExistsRuleTest.php (/home/amari/projects/manual/laravel-framework/tests/Validation/ValidationExistsRuleTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 268: $this->schema('default')->create('users', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 9 test(s) with violations; 12 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ ValidationFileRuleTest.php (/home/amari/projects/manual/laravel-framework/tests/Validation/ValidationFileRuleTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 29: UploadedFile::fake()->create('foo.bar'), Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 22 test(s) with violations; 44 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_UNGUARDED_UNLINK ❌ ValidationUniqueRuleTest.php (/home/amari/projects/manual/laravel-framework/tests/Validation/ValidationUniqueRuleTest.php) Test rejected: Database interaction detected without a DB lifecycle trait. If a test touches the database, it must declare a lifecycle trait (RefreshDatabase / DatabaseTransactions / DatabaseMigrations / LazilyRefreshDatabase). Gate: DB_LIFECYCLE_TRAIT_REQUIRED Why: - This prevents flaky tests and cross-test state leakage (trust boundary for learning). - Evidence at line 200: $this->connection()->getSchemaBuilder()->create('table', function ($table) { Fix: - Add one of the following to the test class: - `use RefreshDatabase;` (recommended) - `use DatabaseTransactions;` - `use DatabaseMigrations;` - `use LazilyRefreshDatabase;` - Or for Pest: `uses(RefreshDatabase::class);` Pre-debug (for this file): 6 test(s) with violations; 11 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ BroadcastManagerTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Broadcasting/BroadcastManagerTest.php) Gate: JOB_SERIALIZATION_VALIDATOR Job BroadcastEvent is not serializable under Laravel queue rules. Reason: missing_autoload: Laravel autoload.php not found Evidence: details={"autoload":"/home/amari/projects/manual/laravel-framework/vendor/autoload.php"} Pre-debug (for this file): 5 test(s) with violations; 7 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ ConsoleApplicationTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Console/ConsoleApplicationTest.php) Gate: JOB_SERIALIZATION_VALIDATOR Job QueuedCommand is not serializable under Laravel queue rules. Reason: missing_autoload: Laravel autoload.php not found Evidence: details={"autoload":"/home/amari/projects/manual/laravel-framework/vendor/autoload.php"} Pre-debug gates: no violations for this file. ❌ JobSchedulingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Console/JobSchedulingTest.php) Gate: JOB_SERIALIZATION_VALIDATOR Job JobWithDefaultQueue is not serializable under Laravel queue rules. Reason: missing_autoload: Laravel autoload.php not found Evidence: details={"autoload":"/home/amari/projects/manual/laravel-framework/vendor/autoload.php"} Pre-debug gates: no violations for this file. ❌ UniqueJobSchedulingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Console/UniqueJobSchedulingTest.php) Gate: JOB_SERIALIZATION_VALIDATOR Job TestJob is not serializable under Laravel queue rules. Reason: missing_autoload: Laravel autoload.php not found Evidence: details={"autoload":"/home/amari/projects/manual/laravel-framework/vendor/autoload.php"} Pre-debug gates: no violations for this file. ❌ QueuedClosureListenerTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Events/QueuedClosureListenerTest.php) Gate: JOB_SERIALIZATION_VALIDATOR Job CallQueuedListener is not serializable under Laravel queue rules. Reason: missing_autoload: Laravel autoload.php not found Evidence: details={"autoload":"/home/amari/projects/manual/laravel-framework/vendor/autoload.php"} Pre-debug (for this file): 3 test(s) with violations; 3 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ SendingQueuedMailTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Mail/SendingQueuedMailTest.php) Gate: JOB_SERIALIZATION_VALIDATOR Job SendQueuedMailable is not serializable under Laravel queue rules. Reason: missing_autoload: Laravel autoload.php not found Evidence: details={"autoload":"/home/amari/projects/manual/laravel-framework/vendor/autoload.php"} Pre-debug gates: no violations for this file. ❌ QueuedListenersTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Queue/QueuedListenersTest.php) Gate: JOB_SERIALIZATION_VALIDATOR Job CallQueuedListener is not serializable under Laravel queue rules. Reason: missing_autoload: Laravel autoload.php not found Evidence: details={"autoload":"/home/amari/projects/manual/laravel-framework/vendor/autoload.php"} Pre-debug gates: no violations for this file. ❌ QueueFakeTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Queue/QueueFakeTest.php) Gate: JOB_SERIALIZATION_VALIDATOR Job TestJob is not serializable under Laravel queue rules. Reason: missing_autoload: Laravel autoload.php not found Evidence: details={"autoload":"/home/amari/projects/manual/laravel-framework/vendor/autoload.php"} Pre-debug (for this file): 5 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ UniqueJobTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Queue/UniqueJobTest.php) Gate: JOB_SERIALIZATION_VALIDATOR Job UniqueTestJob is not serializable under Laravel queue rules. Reason: missing_autoload: Laravel autoload.php not found Evidence: details={"autoload":"/home/amari/projects/manual/laravel-framework/vendor/autoload.php"} Pre-debug (for this file): 8 test(s) with violations; 8 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ SupportFacadesQueueTest.php (/home/amari/projects/manual/laravel-framework/tests/Support/SupportFacadesQueueTest.php) Gate: JOB_SERIALIZATION_VALIDATOR Job QueueJobStub is not serializable under Laravel queue rules. Reason: missing_autoload: Laravel autoload.php not found Evidence: details={"autoload":"/home/amari/projects/manual/laravel-framework/vendor/autoload.php"} Pre-debug (for this file): 7 test(s) with violations; 8 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ AuthGuardTest.php (/home/amari/projects/manual/laravel-framework/tests/Auth/AuthGuardTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (for this file): 43 test(s) with violations; 97 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ CacheApcStoreTest.php (/home/amari/projects/manual/laravel-framework/tests/Cache/CacheApcStoreTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (for this file): 11 test(s) with violations; 19 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ CacheFileStoreTest.php (/home/amari/projects/manual/laravel-framework/tests/Cache/CacheFileStoreTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (for this file): 23 test(s) with violations; 46 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ RateLimiterTest.php (/home/amari/projects/manual/laravel-framework/tests/Cache/RateLimiterTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseConcernsPreventsCircularRecursionTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseConcernsPreventsCircularRecursionTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (for this file): 6 test(s) with violations; 9 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseConnectionTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseConnectionTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (for this file): 39 test(s) with violations; 85 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseEloquentBelongsToManyCreateOrFirstTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentBelongsToManyCreateOrFirstTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (test-level): no test-level violations. Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseEloquentBuilderCreateOrFirstTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentBuilderCreateOrFirstTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (test-level): no test-level violations. Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseEloquentHasManyCreateOrFirstTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentHasManyCreateOrFirstTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (test-level): no test-level violations. Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseEloquentHasManyThroughCreateOrFirstTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentHasManyThroughCreateOrFirstTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (test-level): no test-level violations. Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseMariaDbSchemaStateTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseMariaDbSchemaStateTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (test-level): no test-level violations. Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseMySqlSchemaStateTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseMySqlSchemaStateTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (for this file): 1 test(s) with violations; 3 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseProcessorTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseProcessorTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (for this file): 1 test(s) with violations; 3 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseQueryBuilderTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseQueryBuilderTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (for this file): 409 test(s) with violations; 534 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ QueuedEventsTest.php (/home/amari/projects/manual/laravel-framework/tests/Events/QueuedEventsTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (for this file): 16 test(s) with violations; 38 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ MiddlewareTest.php (/home/amari/projects/manual/laravel-framework/tests/Foundation/Configuration/MiddlewareTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (for this file): 7 test(s) with violations; 10 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET ❌ InteractsWithContainerTest.php (/home/amari/projects/manual/laravel-framework/tests/Foundation/Testing/Concerns/InteractsWithContainerTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (for this file): 7 test(s) with violations; 8 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET ❌ RendererTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Foundation/Exceptions/RendererTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (for this file): 7 test(s) with violations; 10 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET ❌ ThrottlesExceptionsTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Queue/ThrottlesExceptionsTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (for this file): 11 test(s) with violations; 21 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ MailSesTransportTest.php (/home/amari/projects/manual/laravel-framework/tests/Mail/MailSesTransportTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (test-level): no test-level violations. Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ MailSesV2TransportTest.php (/home/amari/projects/manual/laravel-framework/tests/Mail/MailSesV2TransportTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (test-level): no test-level violations. Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ CacheBasedSessionHandlerTest.php (/home/amari/projects/manual/laravel-framework/tests/Session/CacheBasedSessionHandlerTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (test-level): no test-level violations. Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ FileSessionHandlerTest.php (/home/amari/projects/manual/laravel-framework/tests/Session/FileSessionHandlerTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (for this file): 3 test(s) with violations; 5 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_UNGUARDED_UNLINK, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ AuthenticateSessionTest.php (/home/amari/projects/manual/laravel-framework/tests/Session/Middleware/AuthenticateSessionTest.php) Test rejected: Forbidden mocks detected. Mocks of internal/domain/framework request targets are not allowed. Gate: FORBIDDEN_MOCKS Why: - Detected mock usage (not facade fake). - Policy: mocks are allowed ONLY for third-party/infrastructure targets. - Internal namespaces are derived from composer.json psr-4 autoload prefixes (trust boundary). Approved remediation patterns: - Replace mocks with Laravel facade fakes - Execute real code paths and assert observable side effects Fix: - Prefer facade fakes (allowed): - `Http::fake()`, `Queue::fake()`, `Bus::fake()`, `Mail::fake()`, `Event::fake()`, `Notification::fake()`, `Storage::fake()`, `Cache::fake()` - Note: env-based allowlists are intentionally disabled; if you need allowlist behavior, wire it explicitly at the CLI boundary. Pre-debug (for this file): 8 test(s) with violations; 18 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ AuthListenersSendEmailVerificationNotificationHandleFunctionTest.php (/home/amari/projects/manual/laravel-framework/tests/Auth/AuthListenersSendEmailVerificationNotificationHandleFunctionTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 3 test(s) with violations; 7 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ AblyBroadcasterTest.php (/home/amari/projects/manual/laravel-framework/tests/Broadcasting/AblyBroadcasterTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 6 test(s) with violations; 12 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ ClearCommandTest.php (/home/amari/projects/manual/laravel-framework/tests/Cache/ClearCommandTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 7 test(s) with violations; 9 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseEloquentBelongsToManyWithDefaultAttributesTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentBelongsToManyWithDefaultAttributesTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 2 test(s) with violations; 5 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseMariaDbBuilderTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseMariaDbBuilderTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 2 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseMigrationInstallCommandTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseMigrationInstallCommandTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 2 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseMigrationMakeCommandTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseMigrationMakeCommandTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 6 test(s) with violations; 18 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseMigrationMigrateCommandTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseMigrationMigrateCommandTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 6 test(s) with violations; 18 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseMigrationRollbackCommandTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseMigrationRollbackCommandTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 4 test(s) with violations; 12 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseMySqlBuilderTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseMySqlBuilderTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 2 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseSqliteSchemaStateTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseSqliteSchemaStateTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (test-level): no test-level violations. Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ DatabaseTransactionsTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseTransactionsTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 7 test(s) with violations; 14 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ SqlServerBuilderTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/SqlServerBuilderTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 2 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseMigrationsTest.php (/home/amari/projects/manual/laravel-framework/tests/Foundation/Testing/DatabaseMigrationsTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 3 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ RefreshDatabaseTest.php (/home/amari/projects/manual/laravel-framework/tests/Foundation/Testing/RefreshDatabaseTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 3 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ ApiAuthenticationWithEloquentTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Auth/ApiAuthenticationWithEloquentTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 1 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ Psr6RedisTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Cache/Psr6RedisTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug gates: no violations for this file. ❌ PromptsValidationTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Console/PromptsValidationTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug gates: no violations for this file. ❌ ClosureCommandTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Foundation/Console/ClosureCommandTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: OBSERVABLE_OUTCOME_REQUIRED ❌ ResponseTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Http/ResponseTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 1 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ CustomPayloadTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Queue/CustomPayloadTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 1 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ QueueConnectionTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Queue/QueueConnectionTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 6 test(s) with violations; 18 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ AuthFacadeTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Support/AuthFacadeTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: OBSERVABLE_OUTCOME_REQUIRED ❌ ManagerTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Support/ManagerTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 1 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ TestCaseTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Testing/TestCaseTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 1 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ TestWithoutDatabaseParallelTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Testing/TestWithoutDatabaseParallelTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 2 file-level violation(s). Rules: BOOTSTRAP_PURITY_SUPERGLOBALS, BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET ❌ SerializerTest.php (/home/amari/projects/manual/laravel-framework/tests/JsonSchema/SerializerTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug gates: no violations for this file. ❌ NotificationDatabaseChannelTest.php (/home/amari/projects/manual/laravel-framework/tests/Notifications/NotificationDatabaseChannelTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 3 test(s) with violations; 6 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ NotificationSenderTest.php (/home/amari/projects/manual/laravel-framework/tests/Notifications/NotificationSenderTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 9 test(s) with violations; 27 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ FailoverQueueTest.php (/home/amari/projects/manual/laravel-framework/tests/Queue/FailoverQueueTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 1 test(s) with violations; 3 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ PruneBatchesCommandTest.php (/home/amari/projects/manual/laravel-framework/tests/Queue/PruneBatchesCommandTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 2 test(s) with violations; 4 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ QueueBeanstalkdJobTest.php (/home/amari/projects/manual/laravel-framework/tests/Queue/QueueBeanstalkdJobTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 5 test(s) with violations; 12 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ QueueRedisJobTest.php (/home/amari/projects/manual/laravel-framework/tests/Queue/QueueRedisJobTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 3 test(s) with violations; 7 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ SupportComposerTest.php (/home/amari/projects/manual/laravel-framework/tests/Support/SupportComposerTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 6 test(s) with violations; 12 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ TestDatabasesTest.php (/home/amari/projects/manual/laravel-framework/tests/Testing/Concerns/TestDatabasesTest.php) Test rejected: No assertions found. Gate: NO_ASSERTIONS Why: - Tests without assertions do not validate behavior and must not enter execution/learning. Fix: - Add at least one assertion (PHPUnit assert*() or Pest expect(...)->...). Pre-debug (for this file): 2 test(s) with violations; 2 (test×rule) violations. Rules: OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 3 file-level violation(s). Rules: BOOTSTRAP_PURITY_SUPERGLOBALS, BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET, FORBIDDEN_MOCK_TARGET ❌ AuthAccessGateTest.php (/home/amari/projects/manual/laravel-framework/tests/Auth/AuthAccessGateTest.php) Test rejected: Unsafe assertion placement detected. Gate: ASSERTION_PLACEMENT Rule: - Assertions must be standalone statements. - Assertions must never appear inside array literals, function arguments, or other expressions/conditionals. - If asserting an HTTP response variable (e.g. $result), the assertion must appear after that variable is assigned from $this->get/post/...Json(). Why: - Assertions must be standalone statements (not part of an assignment/expression). Evidence: - line 797: $this->assertSame(1, $user->id); Approved remediation patterns: - Move assertions to standalone statements after the Act - Avoid assertions inside expressions, arrays, or callbacks Fix: - After assigning $result, add at least two distinct assertions on $result as standalone statements. - Example: - `$result = $this->postJson(...);` - `$result->assertOk();` - `$result->assertJsonStructure(['data']);` Pre-debug (for this file): 92 test(s) with violations; 116 (test×rule) violations. Rules: ACT_ONCE_RULE, BOOTSTRAP_PURITY_SUPERGLOBALS, BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: BOOTSTRAP_PURITY_SUPERGLOBALS ❌ CacheEventsTest.php (/home/amari/projects/manual/laravel-framework/tests/Cache/CacheEventsTest.php) Test rejected: Unsafe assertion placement detected. Gate: ASSERTION_PLACEMENT Rule: - Assertions must be standalone statements. - Assertions must never appear inside array literals, function arguments, or other expressions/conditionals. - If asserting an HTTP response variable (e.g. $result), the assertion must appear after that variable is assigned from $this->get/post/...Json(). Why: - Assertions must not appear inside array literals, function arguments, or any nested expression context. Evidence: - line 37: $dispatcher->shouldReceive('dispatch')->once()->with($this->assertEventMatches(RetrievingKey::class, ['storeName' => 'array', 'key' => 'foo'])); Approved remediation patterns: - Move assertions to standalone statements after the Act - Avoid assertions inside expressions, arrays, or callbacks Fix: - After assigning $result, add at least two distinct assertions on $result as standalone statements. - Example: - `$result = $this->postJson(...);` - `$result->assertOk();` - `$result->assertJsonStructure(['data']);` Pre-debug (for this file): 13 test(s) with violations; 17 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ InteractsWithIOTest.php (/home/amari/projects/manual/laravel-framework/tests/Console/Concerns/InteractsWithIOTest.php) Test rejected: Unsafe assertion placement detected. Gate: ASSERTION_PLACEMENT Rule: - Assertions must be standalone statements. - Assertions must never appear inside array literals, function arguments, or other expressions/conditionals. - If asserting an HTTP response variable (e.g. $result), the assertion must appear after that variable is assigned from $this->get/post/...Json(). Why: - Assertions must be standalone statements (not part of an assignment/expression). Evidence: - line 41: $this->assertInstanceOf(ProgressBar::class, $bar); Approved remediation patterns: - Move assertions to standalone statements after the Act - Avoid assertions inside expressions, arrays, or callbacks Fix: - After assigning $result, add at least two distinct assertions on $result as standalone statements. - Example: - `$result = $this->postJson(...);` - `$result->assertOk();` - `$result->assertJsonStructure(['data']);` Pre-debug (for this file): 2 test(s) with violations; 4 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ DatabaseEloquentTimestampsTest.php (/home/amari/projects/manual/laravel-framework/tests/Database/DatabaseEloquentTimestampsTest.php) Test rejected: Unsafe assertion placement detected. Gate: ASSERTION_PLACEMENT Rule: - Assertions must be standalone statements. - Assertions must never appear inside array literals, function arguments, or other expressions/conditionals. - If asserting an HTTP response variable (e.g. $result), the assertion must appear after that variable is assigned from $this->get/post/...Json(). Why: - Assertions must not appear inside array literals, function arguments, or any nested expression context. Evidence: - line 115: $this->assertFalse($user->usesTimestamps()); Approved remediation patterns: - Move assertions to standalone statements after the Act - Avoid assertions inside expressions, arrays, or callbacks Fix: - After assigning $result, add at least two distinct assertions on $result as standalone statements. - Example: - `$result = $this->postJson(...);` - `$result->assertOk();` - `$result->assertJsonStructure(['data']);` Pre-debug (for this file): 7 test(s) with violations; 7 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ EventsDispatcherTest.php (/home/amari/projects/manual/laravel-framework/tests/Events/EventsDispatcherTest.php) Test rejected: Unsafe assertion placement detected. Gate: ASSERTION_PLACEMENT Rule: - Assertions must be standalone statements. - Assertions must never appear inside array literals, function arguments, or other expressions/conditionals. - If asserting an HTTP response variable (e.g. $result), the assertion must appear after that variable is assigned from $this->get/post/...Json(). Why: - Assertions must be standalone statements (not part of an assignment/expression). Evidence: - line 50: $this->assertArrayNotHasKey('__event.test', $_SERVER); Approved remediation patterns: - Move assertions to standalone statements after the Act - Avoid assertions inside expressions, arrays, or callbacks Fix: - After assigning $result, add at least two distinct assertions on $result as standalone statements. - Example: - `$result = $this->postJson(...);` - `$result->assertOk();` - `$result->assertJsonStructure(['data']);` Pre-debug (for this file): 38 test(s) with violations; 111 (test×rule) violations. Rules: ACT_ONCE_RULE, BOOTSTRAP_PURITY_SUPERGLOBALS, BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ FoundationViteTest.php (/home/amari/projects/manual/laravel-framework/tests/Foundation/FoundationViteTest.php) Test rejected: Unsafe assertion placement detected. Gate: ASSERTION_PLACEMENT Rule: - Assertions must be standalone statements. - Assertions must never appear inside array literals, function arguments, or other expressions/conditionals. - If asserting an HTTP response variable (e.g. $result), the assertion must appear after that variable is assigned from $this->get/post/...Json(). Why: - Assertions must not appear inside array literals, function arguments, or any nested expression context. Evidence: - line 812: $this->assertSame([ Approved remediation patterns: - Move assertions to standalone statements after the Act - Avoid assertions inside expressions, arrays, or callbacks Fix: - After assigning $result, add at least two distinct assertions on $result as standalone statements. - Example: - `$result = $this->postJson(...);` - `$result->assertOk();` - `$result->assertJsonStructure(['data']);` Pre-debug (for this file): 51 test(s) with violations; 79 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_UNGUARDED_UNLINK, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_UNGUARDED_UNLINK ❌ HttpClientTest.php (/home/amari/projects/manual/laravel-framework/tests/Http/HttpClientTest.php) Test rejected: Unsafe assertion placement detected. Gate: ASSERTION_PLACEMENT Rule: - Assertions must be standalone statements. - Assertions must never appear inside array literals, function arguments, or other expressions/conditionals. - If asserting an HTTP response variable (e.g. $result), the assertion must appear after that variable is assigned from $this->get/post/...Json(). Why: - Assertions must be standalone statements (not part of an assignment/expression). Evidence: - line 2301: $this->assertInstanceOf(PendingRequest::class, $request); Approved remediation patterns: - Move assertions to standalone statements after the Act - Avoid assertions inside expressions, arrays, or callbacks Fix: - After assigning $result, add at least two distinct assertions on $result as standalone statements. - Example: - `$result = $this->postJson(...);` - `$result->assertOk();` - `$result->assertJsonStructure(['data']);` Pre-debug (for this file): 205 test(s) with violations; 300 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, FORBIDDEN_UNGUARDED_UNLINK, OBSERVABLE_OUTCOME_REQUIRED ❌ RedirectIfAuthenticatedTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Auth/Middleware/RedirectIfAuthenticatedTest.php) Test rejected: Unsafe assertion placement detected. Gate: ASSERTION_PLACEMENT Rule: - Assertions must be standalone statements. - Assertions must never appear inside array literals, function arguments, or other expressions/conditionals. - If asserting an HTTP response variable (e.g. $result), the assertion must appear after that variable is assigned from $this->get/post/...Json(). Why: - Assertion on $response appears before its HTTP assignment ($response = $this->...). Evidence: - line 56: $response = $this->actingAs($this->user)->get('/login'); Approved remediation patterns: - Move assertions to standalone statements after the Act - Avoid assertions inside expressions, arrays, or callbacks Fix: - After assigning $result, add at least two distinct assertions on $result as standalone statements. - Example: - `$result = $this->postJson(...);` - `$result->assertOk();` - `$result->assertJsonStructure(['data']);` Pre-debug (for this file): 3 test(s) with violations; 3 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ ConcurrencyTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Concurrency/ConcurrencyTest.php) Test rejected: Unsafe assertion placement detected. Gate: ASSERTION_PLACEMENT Rule: - Assertions must be standalone statements. - Assertions must never appear inside array literals, function arguments, or other expressions/conditionals. - If asserting an HTTP response variable (e.g. $result), the assertion must appear after that variable is assigned from $this->get/post/...Json(). Why: - Assertions must be standalone statements (not part of an assignment/expression). Evidence: - line 38: ->assertOk(); Approved remediation patterns: - Move assertions to standalone statements after the Act - Avoid assertions inside expressions, arrays, or callbacks Fix: - After assigning $result, add at least two distinct assertions on $result as standalone statements. - Example: - `$result = $this->postJson(...);` - `$result->assertOk();` - `$result->assertJsonStructure(['data']);` Pre-debug (for this file): 6 test(s) with violations; 10 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ AfterQueryTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/AfterQueryTest.php) Test rejected: Unsafe assertion placement detected. Gate: ASSERTION_PLACEMENT Rule: - Assertions must be standalone statements. - Assertions must never appear inside array literals, function arguments, or other expressions/conditionals. - If asserting an HTTP response variable (e.g. $result), the assertion must appear after that variable is assigned from $this->get/post/...Json(). Why: - Assertions must be standalone statements (not part of an assignment/expression). Evidence: - line 48: $this->assertInstanceOf(AfterQueryUser::class, $user); Approved remediation patterns: - Move assertions to standalone statements after the Act - Avoid assertions inside expressions, arrays, or callbacks Fix: - After assigning $result, add at least two distinct assertions on $result as standalone statements. - Example: - `$result = $this->postJson(...);` - `$result->assertOk();` - `$result->assertJsonStructure(['data']);` Pre-debug (for this file): 10 test(s) with violations; 12 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EloquentMultiDimensionalArrayEagerLoadingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EloquentMultiDimensionalArrayEagerLoadingTest.php) Test rejected: Unsafe assertion placement detected. Gate: ASSERTION_PLACEMENT Rule: - Assertions must be standalone statements. - Assertions must never appear inside array literals, function arguments, or other expressions/conditionals. - If asserting an HTTP response variable (e.g. $result), the assertion must appear after that variable is assigned from $this->get/post/...Json(). Why: - Assertions must not appear inside array literals, function arguments, or any nested expression context. Evidence: - line 120: $users[0]->posts->every(fn ($post) => $this->assertEquals(1, $post->comments_count)); Approved remediation patterns: - Move assertions to standalone statements after the Act - Avoid assertions inside expressions, arrays, or callbacks Fix: - After assigning $result, add at least two distinct assertions on $result as standalone statements. - Example: - `$result = $this->postJson(...);` - `$result->assertOk();` - `$result->assertJsonStructure(['data']);` Pre-debug (for this file): 5 test(s) with violations; 5 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DeferEventsTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Events/DeferEventsTest.php) Test rejected: Unsafe assertion placement detected. Gate: ASSERTION_PLACEMENT Rule: - Assertions must be standalone statements. - Assertions must never appear inside array literals, function arguments, or other expressions/conditionals. - If asserting an HTTP response variable (e.g. $result), the assertion must appear after that variable is assigned from $this->get/post/...Json(). Why: - Assertions must be standalone statements (not part of an assignment/expression). Evidence: - line 22: $this->assertArrayNotHasKey('__event.test', $_SERVER); Approved remediation patterns: - Move assertions to standalone statements after the Act - Avoid assertions inside expressions, arrays, or callbacks Fix: - After assigning $result, add at least two distinct assertions on $result as standalone statements. - Example: - `$result = $this->postJson(...);` - `$result->assertOk();` - `$result->assertJsonStructure(['data']);` Pre-debug (for this file): 4 test(s) with violations; 8 (test×rule) violations. Rules: ACT_ONCE_RULE, BOOTSTRAP_PURITY_SUPERGLOBALS, BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET ❌ RoutingServiceProviderTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Foundation/RoutingServiceProviderTest.php) Test rejected: Unsafe assertion placement detected. Gate: ASSERTION_PLACEMENT Rule: - Assertions must be standalone statements. - Assertions must never appear inside array literals, function arguments, or other expressions/conditionals. - If asserting an HTTP response variable (e.g. $result), the assertion must appear after that variable is assigned from $this->get/post/...Json(). Why: - Assertion on $response appears before its HTTP assignment ($response = $this->...). Evidence: - line 21: ])); Approved remediation patterns: - Move assertions to standalone statements after the Act - Avoid assertions inside expressions, arrays, or callbacks Fix: - After assigning $result, add at least two distinct assertions on $result as standalone statements. - Example: - `$result = $this->postJson(...);` - `$result->assertOk();` - `$result->assertJsonStructure(['data']);` Pre-debug (for this file): 7 test(s) with violations; 7 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ UrlSigningTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Routing/UrlSigningTest.php) Test rejected: Unsafe assertion placement detected. Gate: ASSERTION_PLACEMENT Rule: - Assertions must be standalone statements. - Assertions must never appear inside array literals, function arguments, or other expressions/conditionals. - If asserting an HTTP response variable (e.g. $result), the assertion must appear after that variable is assigned from $this->get/post/...Json(). Why: - Assertions must not appear inside array literals, function arguments, or any nested expression context. Evidence: - line 365: tap($this->get($oldestURL), fn ($response) => $this->assertSame('invalid', $response->original)); Approved remediation patterns: - Move assertions to standalone statements after the Act - Avoid assertions inside expressions, arrays, or callbacks Fix: - After assigning $result, add at least two distinct assertions on $result as standalone statements. - Example: - `$result = $this->postJson(...);` - `$result->assertOk();` - `$result->assertJsonStructure(['data']);` Pre-debug (for this file): 24 test(s) with violations; 27 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ MailMailerTest.php (/home/amari/projects/manual/laravel-framework/tests/Mail/MailMailerTest.php) Test rejected: Unsafe assertion placement detected. Gate: ASSERTION_PLACEMENT Rule: - Assertions must be standalone statements. - Assertions must never appear inside array literals, function arguments, or other expressions/conditionals. - If asserting an HTTP response variable (e.g. $result), the assertion must appear after that variable is assigned from $this->get/post/...Json(). Why: - Assertions must be standalone statements (not part of an assignment/expression). Evidence: - line 94: $this->assertInstanceOf(Message::class, $data['message']); Approved remediation patterns: - Move assertions to standalone statements after the Act - Avoid assertions inside expressions, arrays, or callbacks Fix: - After assigning $result, add at least two distinct assertions on $result as standalone statements. - Example: - `$result = $this->postJson(...);` - `$result->assertOk();` - `$result->assertJsonStructure(['data']);` Pre-debug (test-level): no test-level violations. Pre-debug (file-level): 2 file-level violation(s). Rules: BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET, FORBIDDEN_MOCK_TARGET ❌ PipelineTest.php (/home/amari/projects/manual/laravel-framework/tests/Pipeline/PipelineTest.php) Test rejected: Unsafe assertion placement detected. Gate: ASSERTION_PLACEMENT Rule: - Assertions must be standalone statements. - Assertions must never appear inside array literals, function arguments, or other expressions/conditionals. - If asserting an HTTP response variable (e.g. $result), the assertion must appear after that variable is assigned from $this->get/post/...Json(). Why: - Assertions must be standalone statements (not part of an assignment/expression). Evidence: - line 382: $this->assertSame(3, $std->value); Approved remediation patterns: - Move assertions to standalone statements after the Act - Avoid assertions inside expressions, arrays, or callbacks Fix: - After assigning $result, add at least two distinct assertions on $result as standalone statements. - Example: - `$result = $this->postJson(...);` - `$result->assertOk();` - `$result->assertJsonStructure(['data']);` Pre-debug (for this file): 15 test(s) with violations; 26 (test×rule) violations. Rules: ACT_ONCE_RULE, BOOTSTRAP_PURITY_SUPERGLOBALS, BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: BOOTSTRAP_PURITY_SUPERGLOBALS ❌ QueueSqsQueueTest.php (/home/amari/projects/manual/laravel-framework/tests/Queue/QueueSqsQueueTest.php) Test rejected: Unsafe assertion placement detected. Gate: ASSERTION_PLACEMENT Rule: - Assertions must be standalone statements. - Assertions must never appear inside array literals, function arguments, or other expressions/conditionals. - If asserting an HTTP response variable (e.g. $result), the assertion must appear after that variable is assigned from $this->get/post/...Json(). Why: - Assertions must be standalone statements (not part of an assignment/expression). Evidence: - line 532: $this->assertEquals($this->mockedPayload, $payload); Approved remediation patterns: - Move assertions to standalone statements after the Act - Avoid assertions inside expressions, arrays, or callbacks Fix: - After assigning $result, add at least two distinct assertions on $result as standalone statements. - Example: - `$result = $this->postJson(...);` - `$result->assertOk();` - `$result->assertJsonStructure(['data']);` Pre-debug (for this file): 31 test(s) with violations; 56 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ SupportHelpersTest.php (/home/amari/projects/manual/laravel-framework/tests/Support/SupportHelpersTest.php) Test rejected: Unsafe assertion placement detected. Gate: ASSERTION_PLACEMENT Rule: - Assertions must be standalone statements. - Assertions must never appear inside array literals, function arguments, or other expressions/conditionals. - If asserting an HTTP response variable (e.g. $result), the assertion must appear after that variable is assigned from $this->get/post/...Json(). Why: - Assertions must be standalone statements (not part of an assignment/expression). Evidence: - line 1070: $this->assertInstanceOf(RuntimeException::class, $exception); Approved remediation patterns: - Move assertions to standalone statements after the Act - Avoid assertions inside expressions, arrays, or callbacks Fix: - After assigning $result, add at least two distinct assertions on $result as standalone statements. - Example: - `$result = $this->postJson(...);` - `$result->assertOk();` - `$result->assertJsonStructure(['data']);` Pre-debug (for this file): 85 test(s) with violations; 165 (test×rule) violations. Rules: ACT_ONCE_RULE, BOOTSTRAP_PURITY_SUPERGLOBALS, BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: BOOTSTRAP_PURITY_SUPERGLOBALS ❌ ValidationRuleParserTest.php (/home/amari/projects/manual/laravel-framework/tests/Validation/ValidationRuleParserTest.php) Test rejected: Unsafe assertion placement detected. Gate: ASSERTION_PLACEMENT Rule: - Assertions must be standalone statements. - Assertions must never appear inside array literals, function arguments, or other expressions/conditionals. - If asserting an HTTP response variable (e.g. $result), the assertion must appear after that variable is assigned from $this->get/post/...Json(). Why: - Assertions must be standalone statements (not part of an assignment/expression). Evidence: - line 188: $this->assertSame('Taylor Otwell', $value); Approved remediation patterns: - Move assertions to standalone statements after the Act - Avoid assertions inside expressions, arrays, or callbacks Fix: - After assigning $result, add at least two distinct assertions on $result as standalone statements. - Example: - `$result = $this->postJson(...);` - `$result->assertOk();` - `$result->assertJsonStructure(['data']);` Pre-debug (for this file): 6 test(s) with violations; 11 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ BusPendingBatchTest.php (/home/amari/projects/manual/laravel-framework/tests/Bus/BusPendingBatchTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - Detected Act output assignment: `$result = ...` - Evidence: - line 260: no-assertions escape: $this->expectNotToPerformAssertions(); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 7 test(s) with violations; 20 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ CacheArrayStoreTest.php (/home/amari/projects/manual/laravel-framework/tests/Cache/CacheArrayStoreTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - Detected Act output assignment: `$result = ...` - Evidence: - line 270: reflection usage: $this->assertFalse(property_exists($retrievedObject, 'bar')); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 25 test(s) with violations; 27 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ CacheRepositoryTest.php (/home/amari/projects/manual/laravel-framework/tests/Cache/CacheRepositoryTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - Detected Act output assignment: `$result = ...` - Evidence: - line 228: reflection usage: $this->assertFalse(method_exists(ArrayStore::class, 'add'), 'This store should not have add method on it.'); - line 243: reflection usage: $this->assertFalse(method_exists(ArrayStore::class, 'add'), 'This store should not have add method on it.'); - line 375: reflection usage: $this->assertFalse(method_exists($store, 'tags'), 'Store should not support tagging.'); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 38 test(s) with violations; 58 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ AfterResolvingAttributeCallbackTest.php (/home/amari/projects/manual/laravel-framework/tests/Container/AfterResolvingAttributeCallbackTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - `$result = ...` assignment may be missing. - Evidence: - line 34: reflection usage: fn ($_, $instance, Container $container) => method_exists($instance, 'booting') && $container->call([$instance, 'booting']) Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 4 test(s) with violations; 5 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ EventsSubscriberTest.php (/home/amari/projects/manual/laravel-framework/tests/Events/EventsSubscriberTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - `$result = ...` assignment may be missing. - Evidence: - line 19: no-assertions escape: $this->expectNotToPerformAssertions(); - line 31: no-assertions escape: $this->expectNotToPerformAssertions(); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 3 test(s) with violations; 8 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ FilesystemAdapterTest.php (/home/amari/projects/manual/laravel-framework/tests/Filesystem/FilesystemAdapterTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - `$result = ...` assignment may be missing. - Evidence: - line 489: tautology: $this->assertTrue(true); - line 504: tautology: $this->assertTrue(true); - line 523: tautology: $this->assertTrue(true); - line 542: tautology: $this->assertTrue(true); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 48 test(s) with violations; 68 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ CliDumperTest.php (/home/amari/projects/manual/laravel-framework/tests/Foundation/Console/CliDumperTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - `$result = ...` assignment may be missing. - Evidence: - line 28: debug/exit: $output = $this->dump('string'); - line 37: debug/exit: $output = $this->dump(1); - line 46: debug/exit: $output = $this->dump(1.1); - line 55: debug/exit: $output = $this->dump(['string', 1, 1.1, ['string', 1, 1.1]]); - line 79: debug/exit: $output = $this->dump(true); - line 91: debug/exit: $output = $this->dump($user); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 8 test(s) with violations; 10 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ FoundationFormRequestTest.php (/home/amari/projects/manual/laravel-framework/tests/Foundation/FoundationFormRequestTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - `$result = ...` assignment may be missing. - Evidence: - line 195: reflection usage: if (property_exists($e, 'validator')) { Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 16 test(s) with violations; 20 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 1 file-level violation(s). Rules: FORBIDDEN_MOCK_TARGET ❌ HtmlDumperTest.php (/home/amari/projects/manual/laravel-framework/tests/Foundation/Http/HtmlDumperTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - `$result = ...` assignment may be missing. - Evidence: - line 33: debug/exit: $output = $this->dump('string'); - line 42: debug/exit: $output = $this->dump(1); - line 51: debug/exit: $output = $this->dump(1.1); - line 60: debug/exit: $output = $this->dump(['string', 1, 1.1, ['string', 1, 1.1]]); - line 69: debug/exit: $output = $this->dump(true); - line 81: debug/exit: $output = $this->dump($user); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 7 test(s) with violations; 9 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED Pre-debug (file-level): 2 file-level violation(s). Rules: FORBIDDEN_SUPPRESSED_UNLINK, FORBIDDEN_UNGUARDED_UNLINK ❌ HttpRequestTest.php (/home/amari/projects/manual/laravel-framework/tests/Http/HttpRequestTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - `$result = ...` assignment may be missing. - Evidence: - line 1758: reflection usage: if (! method_exists(SymfonyRequest::class, 'getPayload')) { - line 1772: reflection usage: if (! method_exists(SymfonyRequest::class, 'getPayload')) { - line 1788: reflection usage: if (! method_exists(SymfonyRequest::class, 'getPayload')) { Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 104 test(s) with violations; 129 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ CommandDurationThresholdTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Console/CommandDurationThresholdTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - `$result = ...` assignment may be missing. - Evidence: - line 207: tautology: $this->assertTrue(true); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (test-level): no test-level violations. Pre-debug (file-level): 1 file-level violation(s). Rules: BOOTSTRAP_PURITY_CONFIG_SET ❌ CommandSchedulingTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Console/CommandSchedulingTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - `$result = ...` assignment may be missing. - Evidence: - line 206: debug/exit: exit(\$status); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug gates: no violations for this file. ❌ RequestDurationThresholdTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Http/RequestDurationThresholdTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - `$result = ...` assignment may be missing. - Evidence: - line 195: tautology: $this->assertTrue(true); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 10 test(s) with violations; 18 (test×rule) violations. Rules: ACT_ONCE_RULE, BOOTSTRAP_PURITY_CONFIG_SET, OBSERVABLE_OUTCOME_REQUIRED ❌ LoggingIntegrationTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Log/LoggingIntegrationTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - `$result = ...` assignment may be missing. - Evidence: - line 15: no-assertions escape: $this->expectNotToPerformAssertions(); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: OBSERVABLE_OUTCOME_REQUIRED ❌ DynamoBatchTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Queue/DynamoBatchTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - `$result = ...` assignment may be missing. - Evidence: - line 101: tautology: $this->assertTrue(true); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 6 test(s) with violations; 7 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ ModelSerializationTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Queue/ModelSerializationTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - `$result = ...` assignment may be missing. - Evidence: - line 411: tautology: $this->assertTrue(true); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 16 test(s) with violations; 20 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ RedisQueueTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Queue/RedisQueueTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - Detected Act output assignment: `$result = ...` - Evidence: - line 114: debug/exit: exit; Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 16 test(s) with violations; 21 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ ExceptionsFacadeTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Support/ExceptionsFacadeTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - `$result = ...` assignment may be missing. - Evidence: - line 227: tautology: $this->assertTrue(true); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 39 test(s) with violations; 67 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ LogManagerTest.php (/home/amari/projects/manual/laravel-framework/tests/Log/LogManagerTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - `$result = ...` assignment may be missing. - Evidence: - line 538: reflection usage: if (method_exists($expectedFingersCrossedHandler, 'getHandler')) { Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 26 test(s) with violations; 33 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ ProcessTest.php (/home/amari/projects/manual/laravel-framework/tests/Process/ProcessTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - Detected Act output assignment: `$result = ...` - Evidence: - line 495: tautology: $this->assertTrue(true); - line 660: tautology: $this->assertTrue(true); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 52 test(s) with violations; 71 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ ImplicitRouteBindingTest.php (/home/amari/projects/manual/laravel-framework/tests/Routing/ImplicitRouteBindingTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - `$result = ...` assignment may be missing. - Evidence: - line 114: no-assertions escape: $this->expectNotToPerformAssertions(); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 6 test(s) with violations; 9 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ SleepTest.php (/home/amari/projects/manual/laravel-framework/tests/Support/SleepTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - Detected Act output assignment: `$result = ...` - Evidence: - line 588: tautology: $this->assertTrue(true); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 42 test(s) with violations; 57 (test×rule) violations. Rules: ACT_ONCE_RULE, BOOTSTRAP_PURITY_SUPERGLOBALS, BOOTSTRAP_PURITY_SUPERGLOBALS_UNSET, OBSERVABLE_OUTCOME_REQUIRED ❌ SupportCollectionTest.php (/home/amari/projects/manual/laravel-framework/tests/Support/SupportCollectionTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - Detected Act output assignment: `$result = ...` - Evidence: - line 5982: reflection usage: if (method_exists($this, $accessor)) { - line 5993: reflection usage: if (method_exists($this, $accessor)) { - line 4757: debug/exit: (new $collection([1, 2, 3]))->dump('one', 'two'); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 277 test(s) with violations; 312 (test×rule) violations. Rules: ACT_ONCE_RULE, FORBIDDEN_MOCK_TARGET, OBSERVABLE_OUTCOME_REQUIRED ❌ SupportTimeboxTest.php (/home/amari/projects/manual/laravel-framework/tests/Support/SupportTimeboxTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - `$result = ...` assignment may be missing. - Evidence: - line 15: tautology: $this->assertTrue(true); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 6 test(s) with violations; 11 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ ValidationAddFailureTest.php (/home/amari/projects/manual/laravel-framework/tests/Validation/ValidationAddFailureTest.php) Test rejected: Forbidden 'escape hatch' test patterns detected. These patterns let tests pass without asserting real behavior and are not allowed. Gate: FORBIDDEN_ESCAPE_HATCH Why: - `$result = ...` assignment may be missing. - Evidence: - line 27: reflection usage: $this->assertTrue(method_exists($validator, $method_name)); Fix: - Remove/replace these forbidden shortcuts (they do NOT prove behavior): - reflection/signature checks: `method_exists(...)`, `property_exists(...)` - tautologies: `assertTrue(true)`, `assertFalse(false)` - self-comparisons: `assertSame($result, $result)`, `expect($result)->toEqual($result)` - always-true checks: `assertGreaterThanOrEqual(0, count($result))`, `assertGreaterThan(0, strlen($result))` - vacuous regex/contains: `/.*/`, `contains('')` - no-assertions escapes: `@doesNotPerformAssertions`, `expectNotToPerformAssertions()` - debug/early-exit: `dd()`, `dump()`, `var_dump()`, `die/exit` - Replace type-meta assertions like `is_bool($result) || is_null($result)` with behavior assertions. - Add semantic assertions that validate actual outcomes, e.g.: - arrays: keys/values (`toHaveKey`, `assertArrayHasKey`, `assertSame` on a field) - strings: exact substring/pattern (`assertStringContainsString`, regex match) - booleans: assert expected true/false in a meaningful arranged scenario (not just that it's a boolean). Pre-debug (for this file): 1 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE, OBSERVABLE_OUTCOME_REQUIRED ❌ ForgotPasswordTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Auth/ForgotPasswordTest.php) Test rejected: Observable assertion is not causally anchored to the Act result (manual/refine). Gate: RESULT_ANCHORED_OBSERVABLE_ASSERTION Rule: A test that uses observable assertions must causally anchor them to an Act statement. Accepted anchoring paths (deterministic): - HTTP result anchoring: response assertions must be on the SAME variable assigned from $this->get/post/...Json() - DB causal anchoring: assertDatabase* requires an Act statement BEFORE it (HTTP/service/job/command) - Facade causal anchoring: Facade::assert* requires Facade::fake() AND an Act statement BEFORE it Why: - Notification::assert* requires an Act statement BEFORE it (HTTP/service/job/command). None found. Evidence: - line 60: Notification::assertSentTo( Fix: - Add an explicit Act line before the observable assertion, and assert on the Act output/side effect. - For HTTP: `$response = $this->postJson(...);` then add at least two distinct `$response->assert*();` as standalone statements. - For DB: perform an Act that can persist (HTTP/service/job/command) before assertDatabase*. - For facade: call the Act after Facade::fake(), then assert the side effect. HINT: File-level Act ambiguity If a test file contains multiple Acts (multiple service calls, HTTP calls, or domain operations), SATE may be unable to reliably determine which Act caused an observable assertion. This commonly occurs when: - Multiple scenarios exist in one test file - Result variables (e.g. $result) are reused - Earlier Acts remain valid candidates for later assertions Recommended fix (fast + reliable): - Split the file into one scenario per file - Ensure one primary Act per file - Keep assertions top-level and directly attributable to that Act - For services, prefer a dedicated Action with execute() or run() This is not a workaround — it removes causal ambiguity and improves learnability. Pre-debug (for this file): 4 test(s) with violations; 4 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ ForgotPasswordWithoutDefaultRoutesTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Auth/ForgotPasswordWithoutDefaultRoutesTest.php) Test rejected: Observable assertion is not causally anchored to the Act result (manual/refine). Gate: RESULT_ANCHORED_OBSERVABLE_ASSERTION Rule: A test that uses observable assertions must causally anchor them to an Act statement. Accepted anchoring paths (deterministic): - HTTP result anchoring: response assertions must be on the SAME variable assigned from $this->get/post/...Json() - DB causal anchoring: assertDatabase* requires an Act statement BEFORE it (HTTP/service/job/command) - Facade causal anchoring: Facade::assert* requires Facade::fake() AND an Act statement BEFORE it Why: - Notification::assert* requires an Act statement BEFORE it (HTTP/service/job/command). None found. Evidence: - line 57: Notification::assertSentTo( Fix: - Add an explicit Act line before the observable assertion, and assert on the Act output/side effect. - For HTTP: `$response = $this->postJson(...);` then add at least two distinct `$response->assert*();` as standalone statements. - For DB: perform an Act that can persist (HTTP/service/job/command) before assertDatabase*. - For facade: call the Act after Facade::fake(), then assert the side effect. HINT: File-level Act ambiguity If a test file contains multiple Acts (multiple service calls, HTTP calls, or domain operations), SATE may be unable to reliably determine which Act caused an observable assertion. This commonly occurs when: - Multiple scenarios exist in one test file - Result variables (e.g. $result) are reused - Earlier Acts remain valid candidates for later assertions Recommended fix (fast + reliable): - Split the file into one scenario per file - Ensure one primary Act per file - Keep assertions top-level and directly attributable to that Act - For services, prefer a dedicated Action with execute() or run() This is not a workaround — it removes causal ambiguity and improves learnability. Pre-debug (for this file): 3 test(s) with violations; 3 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ GatePolicyResolutionTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Auth/GatePolicyResolutionTest.php) Test rejected: Observable assertion is not causally anchored to the Act result (manual/refine). Gate: RESULT_ANCHORED_OBSERVABLE_ASSERTION Rule: A test that uses observable assertions must causally anchor them to an Act statement. Accepted anchoring paths (deterministic): - HTTP result anchoring: response assertions must be on the SAME variable assigned from $this->get/post/...Json() - DB causal anchoring: assertDatabase* requires an Act statement BEFORE it (HTTP/service/job/command) - Facade causal anchoring: Facade::assert* requires Facade::fake() AND an Act statement BEFORE it Why: - Event::assert* requires an Act statement BEFORE it (HTTP/service/job/command). None found. Evidence: - line 24: Event::assertDispatched(GateEvaluated::class); Fix: - Add an explicit Act line before the observable assertion, and assert on the Act output/side effect. - For HTTP: `$response = $this->postJson(...);` then add at least two distinct `$response->assert*();` as standalone statements. - For DB: perform an Act that can persist (HTTP/service/job/command) before assertDatabase*. - For facade: call the Act after Facade::fake(), then assert the side effect. HINT: File-level Act ambiguity If a test file contains multiple Acts (multiple service calls, HTTP calls, or domain operations), SATE may be unable to reliably determine which Act caused an observable assertion. This commonly occurs when: - Multiple scenarios exist in one test file - Result variables (e.g. $result) are reused - Earlier Acts remain valid candidates for later assertions Recommended fix (fast + reliable): - Split the file into one scenario per file - Ensure one primary Act per file - Keep assertions top-level and directly attributable to that Act - For services, prefer a dedicated Action with execute() or run() This is not a workaround — it removes causal ambiguity and improves learnability. Pre-debug (for this file): 4 test(s) with violations; 4 (test×rule) violations. Rules: OBSERVABLE_OUTCOME_REQUIRED ❌ EventConnectionEstablishedTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Database/EventConnectionEstablishedTest.php) Test rejected: Observable assertion is not causally anchored to the Act result (manual/refine). Gate: RESULT_ANCHORED_OBSERVABLE_ASSERTION Rule: A test that uses observable assertions must causally anchor them to an Act statement. Accepted anchoring paths (deterministic): - HTTP result anchoring: response assertions must be on the SAME variable assigned from $this->get/post/...Json() - DB causal anchoring: assertDatabase* requires an Act statement BEFORE it (HTTP/service/job/command) - Facade causal anchoring: Facade::assert* requires Facade::fake() AND an Act statement BEFORE it Why: - Event::assert* requires an Act statement BEFORE it (HTTP/service/job/command). None found. Evidence: - line 26: Event::assertDispatched(ConnectionEstablished::class); Fix: - Add an explicit Act line before the observable assertion, and assert on the Act output/side effect. - For HTTP: `$response = $this->postJson(...);` then add at least two distinct `$response->assert*();` as standalone statements. - For DB: perform an Act that can persist (HTTP/service/job/command) before assertDatabase*. - For facade: call the Act after Facade::fake(), then assert the side effect. HINT: File-level Act ambiguity If a test file contains multiple Acts (multiple service calls, HTTP calls, or domain operations), SATE may be unable to reliably determine which Act caused an observable assertion. This commonly occurs when: - Multiple scenarios exist in one test file - Result variables (e.g. $result) are reused - Earlier Acts remain valid candidates for later assertions Recommended fix (fast + reliable): - Split the file into one scenario per file - Ensure one primary Act per file - Keep assertions top-level and directly attributable to that Act - For services, prefer a dedicated Action with execute() or run() This is not a workaround — it removes causal ambiguity and improves learnability. Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ HttpClientTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Http/HttpClientTest.php) Test rejected: Observable assertion is not causally anchored to the Act result (manual/refine). Gate: RESULT_ANCHORED_OBSERVABLE_ASSERTION Rule: A test that uses observable assertions must causally anchor them to an Act statement. Accepted anchoring paths (deterministic): - HTTP result anchoring: response assertions must be on the SAME variable assigned from $this->get/post/...Json() - DB causal anchoring: assertDatabase* requires an Act statement BEFORE it (HTTP/service/job/command) - Facade causal anchoring: Facade::assert* requires Facade::fake() AND an Act statement BEFORE it Why: - Event::assert* requires an Act statement BEFORE it (HTTP/service/job/command). None found. Evidence: - line 26: Event::assertDispatched(RequestSending::class, function (RequestSending $event) { Fix: - Add an explicit Act line before the observable assertion, and assert on the Act output/side effect. - For HTTP: `$response = $this->postJson(...);` then add at least two distinct `$response->assert*();` as standalone statements. - For DB: perform an Act that can persist (HTTP/service/job/command) before assertDatabase*. - For facade: call the Act after Facade::fake(), then assert the side effect. HINT: File-level Act ambiguity If a test file contains multiple Acts (multiple service calls, HTTP calls, or domain operations), SATE may be unable to reliably determine which Act caused an observable assertion. This commonly occurs when: - Multiple scenarios exist in one test file - Result variables (e.g. $result) are reused - Earlier Acts remain valid candidates for later assertions Recommended fix (fast + reliable): - Split the file into one scenario per file - Ensure one primary Act per file - Keep assertions top-level and directly attributable to that Act - For services, prefer a dedicated Action with execute() or run() This is not a workaround — it removes causal ambiguity and improves learnability. Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ DatabaseNotificationTest.php (/home/amari/projects/manual/laravel-framework/tests/Integration/Notifications/DatabaseNotificationTest.php) Test rejected: Observable assertion is not causally anchored to the Act result (manual/refine). Gate: RESULT_ANCHORED_OBSERVABLE_ASSERTION Rule: A test that uses observable assertions must causally anchor them to an Act statement. Accepted anchoring paths (deterministic): - HTTP result anchoring: response assertions must be on the SAME variable assigned from $this->get/post/...Json() - DB causal anchoring: assertDatabase* requires an Act statement BEFORE it (HTTP/service/job/command) - Facade causal anchoring: Facade::assert* requires Facade::fake() AND an Act statement BEFORE it Why: - Notification::assert* requires an Act statement BEFORE it (HTTP/service/job/command). None found. Evidence: - line 30: Notification::assertSentTo($user, NotificationStub::class, function ($notification, $channels, $notifiable) use ($user) { Fix: - Add an explicit Act line before the observable assertion, and assert on the Act output/side effect. - For HTTP: `$response = $this->postJson(...);` then add at least two distinct `$response->assert*();` as standalone statements. - For DB: perform an Act that can persist (HTTP/service/job/command) before assertDatabase*. - For facade: call the Act after Facade::fake(), then assert the side effect. HINT: File-level Act ambiguity If a test file contains multiple Acts (multiple service calls, HTTP calls, or domain operations), SATE may be unable to reliably determine which Act caused an observable assertion. This commonly occurs when: - Multiple scenarios exist in one test file - Result variables (e.g. $result) are reused - Earlier Acts remain valid candidates for later assertions Recommended fix (fast + reliable): - Split the file into one scenario per file - Ensure one primary Act per file - Keep assertions top-level and directly attributable to that Act - For services, prefer a dedicated Action with execute() or run() This is not a workaround — it removes causal ambiguity and improves learnability. Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ PipelineTransactionTest.php (/home/amari/projects/manual/laravel-framework/tests/Pipeline/PipelineTransactionTest.php) Test rejected: Observable assertion is not causally anchored to the Act result (manual/refine). Gate: RESULT_ANCHORED_OBSERVABLE_ASSERTION Rule: A test that uses observable assertions must causally anchor them to an Act statement. Accepted anchoring paths (deterministic): - HTTP result anchoring: response assertions must be on the SAME variable assigned from $this->get/post/...Json() - DB causal anchoring: assertDatabase* requires an Act statement BEFORE it (HTTP/service/job/command) - Facade causal anchoring: Facade::assert* requires Facade::fake() AND an Act statement BEFORE it Why: - Event::assert* requires an Act statement BEFORE it (HTTP/service/job/command). None found. Evidence: - line 29: Event::assertDispatchedTimes(TransactionBeginning::class, 1); Fix: - Add an explicit Act line before the observable assertion, and assert on the Act output/side effect. - For HTTP: `$response = $this->postJson(...);` then add at least two distinct `$response->assert*();` as standalone statements. - For DB: perform an Act that can persist (HTTP/service/job/command) before assertDatabase*. - For facade: call the Act after Facade::fake(), then assert the side effect. HINT: File-level Act ambiguity If a test file contains multiple Acts (multiple service calls, HTTP calls, or domain operations), SATE may be unable to reliably determine which Act caused an observable assertion. This commonly occurs when: - Multiple scenarios exist in one test file - Result variables (e.g. $result) are reused - Earlier Acts remain valid candidates for later assertions Recommended fix (fast + reliable): - Split the file into one scenario per file - Ensure one primary Act per file - Keep assertions top-level and directly attributable to that Act - For services, prefer a dedicated Action with execute() or run() This is not a workaround — it removes causal ambiguity and improves learnability. Pre-debug (for this file): 1 test(s) with violations; 1 (test×rule) violations. Rules: ACT_ONCE_RULE ❌ SupportMailTest.php (/home/amari/projects/manual/laravel-framework/tests/Support/SupportMailTest.php) Test rejected: Observable assertion is not causally anchored to the Act result (manual/refine). Gate: RESULT_ANCHORED_OBSERVABLE_ASSERTION Rule: A test that uses observable assertions must causally anchor them to an Act statement. Accepted anchoring paths (deterministic): - HTTP result anchoring: response assertions must be on the SAME variable assigned from $this->get/post/...Json() - DB causal anchoring: assertDatabase* requires an Act statement BEFORE it (HTTP/service/job/command) - Facade causal anchoring: Facade::assert* requires Facade::fake() AND an Act statement BEFORE it Why: - Mail::assert* requires an Act statement BEFORE it (HTTP/service/job/command). None found. Evidence: - line 40: Mail::assertSent(TestMail::class); Fix: - Add an explicit Act line before the observable assertion, and assert on the Act output/side effect. - For HTTP: `$response = $this->postJson(...);` then add at least two distinct `$response->assert*();` as standalone statements. - For DB: perform an Act that can persist (HTTP/service/job/command) before assertDatabase*. - For facade: call the Act after Facade::fake(), then assert the side effect. HINT: File-level Act ambiguity If a test file contains multiple Acts (multiple service calls, HTTP calls, or domain operations), SATE may be unable to reliably determine which Act caused an observable assertion. This commonly occurs when: - Multiple scenarios exist in one test file - Result variables (e.g. $result) are reused - Earlier Acts remain valid candidates for later assertions Recommended fix (fast + reliable): - Split the file into one scenario per file - Ensure one primary Act per file - Keep assertions top-level and directly attributable to that Act - For services, prefer a dedicated Action with execute() or run() This is not a workaround — it removes causal ambiguity and improves learnability. Pre-debug (for this file): 2 test(s) with violations; 2 (test×rule) violations. Rules: ACT_ONCE_RULE EXIT:1